21xrx.com
2024-11-22 07:35:46 Friday
登录
文章检索 我的文章 写文章
C++计算器代码编写
2023-06-29 17:58:24 深夜i     --     --
C++ Calculator Code Programming Functions

C++是一种面向对象的编程语言,广泛应用于软件开发和计算机科学领域。使用C++,可以轻松编写出各种应用程序,包括计算器。下面将介绍如何使用C++编写一个简单的计算器。

首先需要在C++中定义一些基本的运算符,例如加号、减号、乘号和除号。可以使用C++中的运算符重载功能,使其按照自定义规则进行计算。下面是一些示例代码:


class Calculator {

public:

  double operator + (double a, double b) { return a + b; }

  double operator - (double a, double b) return a - b;

  double operator * (double a, double b) { return a * b; }

  double operator / (double a, double b) return a / b;

};

上述代码中,定义了一个名为“Calculator”的类,包含加、减、乘、除四个基本运算符的定义。在C++中运算符重载以“operator”关键字开头,后面紧接着的是要重载的运算符符号。

接下来,需要读取用户的输入,封装成表达式,对其进行计算。可以使用C++中的“cin”语句读取用户输入,并使用C++标准库中的字符串操作函数进行字符串的拼接和分割。下面是一些示例代码:


#include <iostream>

#include <string>

#include <vector>

using namespace std;

int main() {

  string express;   // 定义用户输入的表达式

  vector<string> v;  // 定义字符串容器,用于存储表达式的数字和符号

  cout << "Please input an expression:" << endl;

  cin >> express;

  for (int i = 0; i < express.length(); ) {

    // 按照运算符将表达式分割为数字和运算符

    if (express[i] >= '0' && express[i] <= '9') {

      string s = "";

      while (i < express.length() && ((express[i] >= '0' && express[i] <= '9') || express[i] == '.')) {

        s += express[i];

        i++;

      }

      v.push_back(s);  // 将数字存入字符串容器中

    } else {

      string s = "";

      s += express[i];

      v.push_back(s);  // 将符号存入字符串容器中

      i++;

    }

  }

  double num1, num2; // 定义两个数字变量,用于存储计算过程中的中间结果

  Calculator c;    // 定义一个Calculator类的实例

  for (int i = 0; i < v.size(); i++) {

    if (v[i] == "+") {

      num2 = stod(v[i + 1]); // 将字符串转换为数字类型

      num1 = c + stod(v[i - 1]), num2;

      i++;

    } else if (v[i] == "-") {

      num2 = stod(v[i + 1]);

      num1 = c - stod(v[i - 1]), num2;

      i++;

    } else if (v[i] == "*") {

      num2 = stod(v[i + 1]);

      num1 = c * stod(v[i - 1]), num2;

      i++;

    } else if (v[i] == "/") {

      num2 = stod(v[i + 1]);

      num1 = c / stod(v[i - 1]), num2;

      i++;

    } else {

      num1 = stod(v[i]); // 如果是数字,则将其转化为double类型

    }

  }

  cout << "The result is: " << num1 << endl;

  return 0;

}

上述代码中,使用C++标准库中的vector类存储表达式中的数字和符号;使用C++中的“stod”函数将字符串转换为double类型的数字。最终,将计算过程中的结果输出即可。

综上所述,通过C++中的运算符重载和字符串操作函数,可以很容易地编写出一个简单的计算器。当然,上述代码还有很多可以改进的地方,例如输入合法性的判断以及对小数的处理等等,这里就不再赘述。

  
  

评论区

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