介紹:僅支援自然數間的+ - * /操作,並沒有括號。
實現:利用棧實現儲存運算數以及運算子。
流程:輸入: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...