21xrx.com
2025-07-14 17:41:47 Monday
文章检索 我的文章 写文章
C++编程实现简单的计算器
2023-07-04 13:02:55 深夜i     19     0
C++ 编程 计算器 实现 简单

作为一款被广泛使用的编程语言,C++可以实现许多应用程序。 在这篇文章中,我们将使用C++编程语言创建一个简单的计算器,帮助我们执行基础的数学运算。

首先,我们需要定义我们的变量。我们需要从用户上面获取算术表达式,并将其存储在字符串变量中。例如:

string expression;

接下来,我们需要将该字符串表达式分解为数字和运算符。对于这个任务,我们可以使用for循环并遍历每个字符。在此过程中,我们需要在数字后面紧接着运算符,然后将其一一存储。例如:

for(int i=0; i<expression.length(); i++) {
  if(expression[i]>='0' && expression[i]<='9') { //数字
    number += expression[i];
  } else { //运算符
    numbers.push_back(stoi(number)); //将之前存储的数字转换为整数并压入vector
    number = ""; //清空数字
    operators.push_back(expression[i]); //运算符存入vector
  }
}
numbers.push_back(stoi(number)); //最后一个数字要压入vector

现在,我们需要定义一个函数来计算表达式的结果。我们可以调用该函数来解决我们存储的每个运算符和数字组合。这里有一个示例函数,可以计算两个数字的加法,减法,乘法和除法。它还包括处理括号的代码。

int calculate(int num1, int num2, char op) {
  int result;
  switch(op) {
    case '+':
      result = num1 + num2;
      break;
    case '-':
      result = num1 - num2;
      break;
    case '*':
      result = num1 * num2;
      break;
    case '/':
      result = num1 / num2;
      break;
  }
  return result;
}
int evaluate(vector<int> numbers, vector<char> operators) {
  for(int i=0; i<operators.size(); i++) {
    if(operators[i] == '*' || operators[i] == '/') { //先处理乘除
      int result = calculate(numbers[i], numbers[i+1], operators[i]);
      numbers[i] = result;
      numbers.erase(numbers.begin()+i+1);
      operators.erase(operators.begin()+i);
      i--;
    }
  }
  for(int i=0; i<operators.size(); i++) { //最后处理加减
    int result = calculate(numbers[i], numbers[i+1], operators[i]);
    numbers[i] = result;
    numbers.erase(numbers.begin()+i+1);
    operators.erase(operators.begin()+i);
    i--;
  }
  return numbers[0];
}

最后,我们只需要将所有的代码连接在一起并进行测试。以下是完整的C++代码示例:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int calculate(int num1, int num2, char op) {
  int result;
  switch(op) {
    case '+':
      result = num1 + num2;
      break;
    case '-':
      result = num1 - num2;
      break;
    case '*':
      result = num1 * num2;
      break;
    case '/':
      result = num1 / num2;
      break;
  }
  return result;
}
int evaluate(vector<int> numbers, vector<char> operators) {
  for(int i=0; i<operators.size(); i++) {
    if(operators[i] == '*' || operators[i] == '/') { //先处理乘除
      int result = calculate(numbers[i], numbers[i+1], operators[i]);
      numbers[i] = result;
      numbers.erase(numbers.begin()+i+1);
      operators.erase(operators.begin()+i);
      i--;
    }
  }
  for(int i=0; i<operators.size(); i++) { //最后处理加减
    int result = calculate(numbers[i], numbers[i+1], operators[i]);
    numbers[i] = result;
    numbers.erase(numbers.begin()+i+1);
    operators.erase(operators.begin()+i);
    i--;
  }
  return numbers[0];
}
int main() {
  string expression;
  cout << "请输入表达式:";
  cin >> expression;
  vector<int> numbers;
  vector<char> operators;
  string number;
  for(int i=0; i<expression.length(); i++) {
    if(expression[i]>='0' && expression[i]<='9') { //数字
      number += expression[i];
    } else { //运算符
      numbers.push_back(stoi(number)); //将之前存储的数字转换为整数并压入vector
      number = ""; //清空数字
      operators.push_back(expression[i]); //运算符存入vector
    }
  }
  numbers.push_back(stoi(number)); //最后一个数字要压入vector
  int result = evaluate(numbers, operators);
  cout << "计算结果为:" << result << endl;
  return 0;
}

当我们运行程序并输入表达式时,我们将得到以下输出:

请输入表达式:2+3*4
计算结果为:14

在这篇文章中,我们使用C++编程语言创建了一个简单的计算器。这个计算器可以解决基本的数学问题,并且可以扩展以支持更多的功能和运算符。您可以使用此代码作为起始点,对其进行修改和改进,从而创建定制的计算器应用程序。

  
  

评论区