{/'title/': /'C++实现四则运算计算器:帮助小Tu解决数学难题/', /'description/': /'本程序使用C++语言实现一个四则运算计算器,可以根据运算顺序计算混合运算表达式,并输出计算结果。它能帮助像小Tu一样的学生解决数学难题,并学习运算顺序的知识。/', /'keywords/': /'四则运算, 计算器, C++, 混合运算, 运算顺序, 数学, 编程/', /'content/': /'#include ///'iostream///'//n#include ///'stack///'//n#include ///'string///'//n#include ///'sstream///'//n#include ///'vector///'//n//n// 判断运算符的优先级//nint getPriority(char op) {//n if (op == '+' || op == '-') {//n return 1;//n } else if (op == '' || op == '/') {//n return 2;//n }//n return 0;//n}//n//n// 计算两个操作数的结果//nint calculate(int num1, int num2, char op) {//n switch(op) {//n case '+': return num1 + num2;//n case '-': return num1 - num2;//n case '': return num1 * num2;//n case '/': return num1 / num2;//n }//n return 0;//n}//n//n// 将字符串表达式转换为后缀表达式//nstd::vectorstd::string convertToPostfix(std::string expression) {//n std::stack opStack;//n std::vectorstd::string postfix;//n//n std::istringstream iss(expression);//n std::string token;//n while (getline(iss, token, ' ')) {//n if (token == /'=/') {//n while (!opStack.empty()) {//n postfix.push_back(std::string(1, opStack.top()));//n opStack.pop();//n }//n break;//n } else if (token == /'(/') {//n opStack.push('(');//n } else if (token == /')/') {//n while (!opStack.empty() && opStack.top() != '(') {//n postfix.push_back(std::string(1, opStack.top()));//n opStack.pop();//n }//n if (!opStack.empty() && opStack.top() == '(') {//n opStack.pop();//n }//n } else if (token == /'+/' || token == /'-/' || token == /'/' || token == /'//') {//n while (!opStack.empty() && opStack.top() != '(' && getPriority(token[0]) <= getPriority(opStack.top())) {//n postfix.push_back(std::string(1, opStack.top()));//n opStack.pop();//n }//n opStack.push(token[0]);//n } else {//n postfix.push_back(token);//n }//n }//n//n return postfix;//n}//n//n// 计算后缀表达式的结果//nint calculatePostfix(std::vectorstd::string postfix) {//n std::stack numStack;//n//n for (std::string token : postfix) {//n if (token == /'+/' || token == /'-/' || token == /'/' || token == /'//') {//n int num2 = numStack.top();//n numStack.pop();//n int num1 = numStack.top();//n numStack.pop();//n int result = calculate(num1, num2, token[0]);//n numStack.push(result);//n } else {//n int num = std::stoi(token);//n numStack.push(num);//n }//n }//n//n return numStack.top();//n}//n//nint main() {//n std::string expression;//n getline(std::cin, expression);//n//n std::vectorstd::string postfix = convertToPostfix(expression);//n int result = calculatePostfix(postfix);//n//n std::cout << result << std::endl;//n//n return 0;//n}/

C++实现四则运算计算器:帮助小Tu解决数学难题

原文地址: https://www.cveoy.top/t/topic/qyhH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录