C 簡易計算器

2021-08-20 06:31:02 字數 1377 閱讀 4769

介紹:僅支援自然數間的+ - * /操作,並沒有括號。

實現:利用棧實現儲存運算數以及運算子。

流程:輸入:string exp

對exp進行處理:數字入數棧,運算子入字元棧。

對字元棧檢測,非空時進行:

計算

輸出:結果。

處理:數字則入數棧,字元就進行判斷,

1)棧空,字元入棧

2)而棧非空

棧頂運算級別》 =當前字元運算級,取棧頂運算子並出棧兩個數,

計算

,結果入數棧

3)字元入棧

計算:取棧頂運算子並出棧兩個數

計算

,結果入數棧

const int maxsize = 100;//棧的最大大小

templateclass stack ;

templatestack::stack()

templatevoid stack::push(const t& val)

templatet stack::top()const

templatevoid stack::pop()

templatevoid stack::clear()

templatebool stack::isfull()const

templatebool stack::isempty()const

class calculator 

void run();

void clear();//清空數棧以及字元棧

};

void calculator::run() 

cout << "結果:" << num.top() << endl;

clear();

}

新政:

void calculator::deal(const string& exp) 

else

} else

ch.push(exp[i]);

} ++i;

}}

計算:

void calculator::compute()  

else

left /= right;

break;

} num.push(left);

}}

int f(const char&c):將運算子優先順序轉為整數,便於比較

int f(const char& c)

簡易計算器

include include include char xpr expression int level char ch double calc int lim return ret int main cal的遞迴使用,利用了當 運算子運算完畢以後,仍然會留在這個位置 比如式子 3 5 2 的分析...

簡易計算器

cpp copyright c 2012,煙台大學計算機學院 all rights reserved.檔名稱 text.cpp 作 者 胡穎 完成日期 2013 年 6 月 28 日 版 本 號 v1.0 輸入描述 輸入操作指令及計算的數字 符號 問題描述 製作簡易計算器 程式輸出 輸出操作頁面及計...

簡易計算器

該程式實現了乙個簡易的四則運算計算器,功能強大之處在於輸入格式不受限制。你輸入的字串可以包含空格,也可以用括號包含優先順序。include include include include includeusing namespace std struct node string str stacks...