C++简单计算器实现(四则运算加括号)

您所在的位置:网站首页 c语言四则运算器 C++简单计算器实现(四则运算加括号)

C++简单计算器实现(四则运算加括号)

2023-07-25 09:36| 来源: 网络整理| 查看: 265

先说一下实现思路,使用两个栈,一个存放数字,一个存放运算符。这样比较运算符和取出运算的数字都非常方便。再者,在压入栈的过程中,把要压入的运算符和前一个运算符进行比较,如果优先级小于或者等于,就要将前一个运算符进行计算。

ps:支持带括号带负数四则运算。

#include #include #include using namespace std; stack num_stk; stack oper_stk; string experssion; double result; int number_flag; void pop_caculate(); int cal_priority(char c); string::size_type get_number_size(string &expr,string::size_type currentPos); bool is_number(char c); void caculate(string expr); int main() { cout experssion) { number_flag = 0; caculate(experssion); } } /* * get number length from currentPos of string expr */ string::size_type get_number_size(string &expr,string::size_type currentPos) { string numbers = "0123456789."; return expr.find_first_not_of(numbers,currentPos) - currentPos; } /* * char c is number? */ bool is_number(char c) { string numbers = "0123456789-"; if (numbers.find(c) == string::npos) { return false; } return true; } /* * the main caculate method */ void caculate(string expr) { string::size_type size = 0; double num = 0; for (string::size_type i=0;i


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3