定义:

计算器是近代人发明的可以进行数字运算的机器。

也就是说,计算器不等同于算盘,前者能自行运算,后者只能简便计算过程,在古代,人们发明了许多计算工具,如算筹、算盘、计算尺等,随着社会的发展和科技的进步,计算工具也经历了由简单到复杂,由低级向高级的发展变化。进入20世纪后,人们发明了计算器。计算器的出现解决了很多比较复杂的计算问题。计算器的使用非常简单,它的运算规则是从左往右算,输入数据后可以一眨眼就得出结果。

计算器不局限与四则运算,还可以进行如开方,对数,三角函数之类的复杂运算,更有甚者,可以进行之类,或矩阵运算了。

今天,让我们来用C++编写简易计算器。

代码1:

#include<iostream>
using namespace std;int add(int num1, int num2)
{int sum = num1 + num2;return sum;
}
int m(int num1, int num2)
{int sum = num1 - num2;return sum;
}
int time(int num1, int num2)
{int sum = num1 * num2;return sum;
}
int chu(int num1, int num2)
{int sum = num1 / num2;return sum;
}
int mod(int num1, int num2)
{int sum = num1 % num2;return sum;
}int main()
{system("color 2E");float a, b,d;short c;printf("欢迎使用计算器,该计算器只支持整数输出\n");printf("加请按1,减请按2,乘请按3,除请按4,取余数请按5\n");u:cout << "请输入两个数" <<endl;cin >> a>> b;cout << "请输入运算类型:" << endl;cin >> c;switch (c){case 1:d = add(a, b);break;case 2:d = m(a, b);break;case 3:d = time(a, b);break;case 4:d = chu(a, b);break;case 5:d = mod(a, b);break;default:break;}if ((a + b) > 32677 && (a - b) < -32678)cout << "溢出警报\a" << endl;elsecout << d << endl;goto u;
}

这个计算器有诸多限制,它只能进行五种运算(还不能处理浮点),容易溢出,所以我做了改进。

代码2:

#include<cstdio>
#include<iostream>
using namespace std;int main()
{system("color 2E");int a, b;char ch;
y:cout << "请输入算式:" << endl;cin>>a>>ch>>b;if (ch != '+' && ch != '-' && ch != '*' && ch != '/' && ch != '%'){printf("Error\n");}else{cout<< a<<" " << ch <<" "<<b << " = ";}switch (ch){case '+':{cout << a + b << endl;break;}case '-':{cout  << a - b << endl;break;}case '*': {cout << a * b << endl;break;}case '/': {cout << a / b << endl;break;}case '%':{cout << a % b << endl;break; }}goto y;
}

好用一点,可以输出算式了。

最后一点,无论什么计算器,如果要进行大于结果的运算或超过15位有效数字的浮点运算,需要高精度算法,详见:

https://blog.csdn.net/u011386173/article/details/109912035?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166477380516782395356593%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166477380516782395356593&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-109912035-null-null.142^v51^control,201^v3^control_2&utm_term=%E9%AB%98%E7%B2%BE%E5%BA%A6%E8%AE%A1%E7%AE%97&spm=1018.2226.3001.4187

谢谢。

C++简易计算器的实现相关推荐

  1. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  2. python表达式计算器_Python正则表达式实现简易计算器功能示例

    本文实例讲述了Python正则表达式实现简易计算器功能.分享给大家供大家参考,具体如下: 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:1*2*((1+2)/(2+3)+ ...

  3. PyQt5 简易计算器

    剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它 [知识点] 1.利用循环添加按钮部件,及给每个按钮设置信号/槽 2.给按钮设置固定大小:button.setFixedSi ...

  4. JAVA(利用jsp+javabean+servlet)实现简易计算器

    代码解释基本都在代码中给出 1 <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...

  5. 简单计算器的设计java_(基于java的简易计算器的设计.doc

    (基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 ...

  6. 数据结构:栈实现简易计算器

    文章目录 栈实现简易计算器 思路 代码实现 栈结构 运算方法 测试 栈实现简易计算器 之前的博客已经介绍了栈数据结构,栈有着数据先进后出的特点,因此用于实现简易计算器时相当方便.本博文中将介绍如何用栈 ...

  7. linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

  8. 简易计算器 (C语言)作业

    从Github下载 从CSDN下载 // // ViewController.h // SimpleCalculator // // Created by Mewlan Musajan on 11/2 ...

  9. Python之实现一个简易计算器

    自己动手写计算器 一.功能分析 用户输入一个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式里 ...

  10. java简单计算器课程设计_java仿windows简易计算器课程设计 源码+报告

    [实例简介] java仿windows简易计算器课程设计 源码+报告 课直接运行. [实例截图] [核心代码] Java课设-简易计算器 └── Java课设-简易计算器 ├── Java课程设计.d ...

最新文章

  1. 深度学习也利用进化论!李飞飞谈创建具身智能体,学动物进化法则
  2. php fpm安装curl后,nginx出现connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied)的错误...
  3. 设置window代理的命令
  4. 网站主机和服务器选哪个,虚拟主机和服务器 你的网站该选择哪一个?
  5. linux线程同步互斥说法,linux线程间的同步与互斥知识点总结
  6. java 线程池的使用_Java 使用线程池执行若干任务
  7. bzoj 1665: [Usaco2006 Open]The Climbing Wall 攀岩(最短路)
  8. Ubuntu18.04配置Jupyter
  9. 双击IE出现打开方式解决办法
  10. vue实现的随意拖拽的自定义表单,用于医院文书开发,提高实施效率
  11. 程序员职业发展路径图:从菜鸟工程师到高级架构师(转)
  12. Excel 中 IRR 函数
  13. 谷歌google搜索打不开、谷歌gmail邮箱及相关服务无法登录的解决的方法
  14. 那些以玩笑说出口的话,往往是最真的表达
  15. jcr多久更新一次_JCR-2017更新 | 快来看看你的影响影子吧
  16. C语言中的int类型的范围是由什么决定的
  17. elementui3
  18. cpu实时数据是什么意思?
  19. C++题解:【NOIP2006PJ】Jam的计数法(count)
  20. 立体几何中常见的建系类型汇总

热门文章

  1. 1-10 Java 继承、protected和abstract抽象类
  2. 流畅稳定免费的LinuxMint20.1桌面系统安装调试讲解
  3. 网校系统搭建服务有哪些优势?为什么要试水网校系统开发?
  4. 如何搭建在线网校最省钱
  5. (收藏)刘德华获奖全记录“经典”
  6. 转:前端 100 问:能搞懂80%的请把简历给我
  7. [易飞]易飞ERP系统权限管理之信息控制的运用【转载】
  8. Swing中EDT和SwingUtilities以及SwingWorker的简单深入
  9. Awake框架简介---分页
  10. 评估方法提高深度学习模型泛化能力