21xrx.com
2024-12-22 23:41:41 Sunday
登录
文章检索 我的文章 写文章
C++编程实现简单的计算器
2023-07-04 13:02:55 深夜i     --     --
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++编程语言创建了一个简单的计算器。这个计算器可以解决基本的数学问题,并且可以扩展以支持更多的功能和运算符。您可以使用此代码作为起始点,对其进行修改和改进,从而创建定制的计算器应用程序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复