C++实现加减乘除计算器

 更新时间:2022年01月28日 09:20:33   作者:多壹  
这篇文章主要为大家详细介绍了C++实现加减乘除计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<BR>

本文实例为大家分享了C++实现加减乘除计算器的具体代码,供大家参考,具体内容如下

#include <iostream>
#include <conio.h>
#include <string>
void main()
{
    char str[0xFF];
    do
    {
        system("cls");
        float a{};
        float b{};
        int count = 1;
        int isOperating = -1;
        bool isFirst = true;
        std::string text{ "按任意键重置,继续计算\n" };
        std::cout << "------计算机------\n";
        std::cout << "请输入加减乘除:";
        std::cin >> str;
        for (int i = strlen(str) - 1; i >= 0; i--)
        {
            float* num = isFirst ? &b : &a;
            switch (str[i])
            {
            case '*':
                isOperating = 0;
                break;
            case '/':
                isOperating = 1;
                break;
            case '+':
                isOperating = 2;
                break;
            case '-':
                isOperating = 3;
                break;
            }
            if (!isFirst&&!isdigit(str[i])&& str[i]<=127&& str[i]>=0)
            {
                isOperating = 4;
                text = "暂只支持正整数加减乘除,不能输入中文,其他符号或运算符\n按任意键重新输入\n";
                break;
            }
            if (isOperating != -1 && count != 1 && isFirst)
            {
                isFirst = false;
                count = 1;
                if (i == 0 || i == strlen(str) - 1)
                {
                    isOperating = 4;
                    break;
                }
                continue;
            }
            *num += ((int)str[i] - 48) * count;
            count *= 10;
        }
        switch (isOperating)
        {
        case 0:
            std::cout << "结果为:" << a * b << std::endl;
            break;
        case 1:
            if (a == 0)
                text = "除数不能为0\n按任意键重置,继续计算\n";
            else
                std::cout << "结果为:" << a / b << std::endl;
            break;
        case 2:
            std::cout << "结果为:" << a + b << std::endl;
            break;
        case 3:
            std::cout << "结果为:" << a - b << std::endl;
            break;
        default:
            text = text == "按任意键重置,继续计算\n" ? "错误格式,按任意键重新输入\n" : text;
        }
        std::cout << text;
        _getch();
    } while (true);
}

用string接受做太简单了,用char数组比较好玩

#include<iostream>
using namespace std;

int main()
{
   double a,b;
   char op;
   cout << "enter a" << endl;
   cin >> a;
   cout << "enter operator" << endl;
   cin >> op;
   cout << "enter b" << endl;
   cin >> b;
   double result;
   if (op=='+')
   {
      result = a + b;
   }
   else if (op=='-')
   {
      result = a-b;
   }
   else if (op=='*')
   {
      result = a*b;
   }
   else if (op=='/'){
      if (b==0){
         cout << "cannot devided by 0\n";
         return 0;

      }
      else{
         result =a/b;
      }
   }
   else
   {
      cout << "invalid operator\n";
      return 0;
   }

   cout << "result is " << result << endl;
   return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C语言实现JSON解析器的方法步骤

    C语言实现JSON解析器的方法步骤

    JSON是一种非常流行的数据格式,本文主要介绍了C语言实现JSON解析器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • C++类模板与函数模板基础详细讲解

    C++类模板与函数模板基础详细讲解

    C++语言的模板技术包括函数模板和类模板,模板技术是一种代码重用技术,函数和类是C++语言中两种主要的重用代码形式,这篇文章主要介绍了C++函数模板和类模板,需要的朋友可以参考下
    2022-08-08
  • C语言联合体Union特点及运用全面讲解教程

    C语言联合体Union特点及运用全面讲解教程

    这篇文章主要为大家介绍了C语言联合体Union特点及运用的全面讲解教程有需要深度朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-10-10
  • C语言详细分析讲解流程控制语句用法

    C语言详细分析讲解流程控制语句用法

    C语言语句的执行默认顺序执行(从上往下依次执行),编程语言一般除了默认的顺序执行以外,还提供分支执行和循环执行的语法,让我们一起来看看
    2022-05-05
  • C++ cmake实现日志类的示例代码

    C++ cmake实现日志类的示例代码

    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。本文就来利用cmake实现日志类,感兴趣的小伙伴可以了解一下
    2023-03-03
  • C语言实现在windows服务中新建进程的方法

    C语言实现在windows服务中新建进程的方法

    这篇文章主要介绍了C语言实现在windows服务中新建进程的方法,涉及C语言进程操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • C语言实现合并字符串

    C语言实现合并字符串

    今天小编就为大家分享一篇C语言实现合并字符串,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • C++中const的用法详细总结

    C++中const的用法详细总结

    以下是对C++中const的用法进行了详细的总结分析,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-09-09
  • MFC设置对话框焦点的方法简述

    MFC设置对话框焦点的方法简述

    这篇文章主要介绍了MFC设置对话框焦点的方法简述,主要讲述了两种实现方法,需要的朋友可以参考下
    2014-10-10
  • C/C++实现蛇形矩阵的示例代码

    C/C++实现蛇形矩阵的示例代码

    本文主要介绍了C/C++实现蛇形矩阵的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论