用C++编写简单计算器

限制:

1、只能使用分支语句与循环语句;
2、不能使用数组和自定义函数;
(即把自己当作只学到分支语句和循环语句的初学者)

计算器要求:

1、可以进行简单的加、减、乘、除四则运算;
2、如出现多个运算符号,必须考虑先乘除后加减的运算顺序;
3、不需要括号运算符;

一个比较简单的程序,但加上了上述的限制后,让我耗费了很大的功夫。

源代码如下:
#include<iostream>
using namespace std;int main()
{//首先要声明变量:double a0,a1,a2;//为了处理多位小数的运算,这里使用浮点型;char ca1,ca2;//字符型用于储存运算符号;//先考虑简单的情况————输入一个数后直接输入等号并输出结果;cin>>a0>>ca1;if(ca1=='=') cout<<a0<<endl;else{//若输入的第一个运算符不是等号,则可以继续输入;cin>>a1>>ca2;while(1)//此处进入第一个循环,用于处理仅有加减的运算;{            if(ca1=='=') {cout<<a0<<endl;break;} //用于跳出循环并输出结果;switch(ca2)//判断第二个输入的运算符;{case '='://如果第二个运算符是等号,则可直接进行前两个数的运算;switch(ca1){//将前两个数的运算结果存在第一个变量a0中,下同;case '+': a0=a0+a1;break;case '-': a0=a0-a1;break;case '*': a0=a0*a1;break;case '/': a0=a0/a1;}ca1=ca2;break;//将ca2的值赋给ca1后跳出switch;//由于跳出switch后就会回到循环的第一句,即可通过ca1的值判断是否继续循环,下同;case '+':case '-'://如果第二个运算符是加号或减号,也可以直接进行前两个数的运算;switch(ca1){case '+': a0=a0+a1;break;case '-': a0=a0-a1;break;case '*': a0=a0*a1;break;case '/': a0=a0/a1;}ca1=ca2;cin>>a1>>ca2;break;//由于ca2赋给ca1的值不是等号,因此会继续循环,所以必须要更新a1与ca2的值;case '*':case '/'://如果第二个运算符是乘号或除号,则要进入第二个循环处理连乘或连除的问题;while(1){//连乘或连除;switch(ca2){//此处要对第三个变量进行赋值,并将a1与a2的乘除结果存入a1中;case '*':cin>>a2;a1=a1*a2;cin>>ca2;break;case '/':cin>>a2;a1=a1/a2;cin>>ca2;//还要对ca2的值进行更新,用于处理接下来运算;}if(ca2=='=')//若ca2的值变为等号;{switch(ca1){//将之前乘除的结果a1与之前的a0进行加减运算,并将结果存入a0中;case '+': a0=a0+a1;break;case '-': a0=a0-a1;break;}ca1=ca2;break;//这也是跳出第二个循环的条件,且ca2为加号或减号时也要跳出循环;}if(ca2=='+'||ca2=='-'){switch(ca1){case '+': a0=a0+a1;break;case '-': a0=a0-a1;break;}ca1=ca2;cin>>a1>>ca2;break;}}}}}return 0;
}

注:

1、当ca2的值为加号或减号或等号时,就必须要出现ca2对ca1的赋值,不然没有办法处理接下来的运算或者跳出循环输出结果;
2、a0的作用是将加减的结果储存下来,而a1的作用是储存乘除的结果,考虑到运算顺序,因此最后的输出只能是a0;

运行结果:

用计算器验证一下结果:

结果正确!

c++——简单计算器相关推荐

  1. 模拟一个简单计算器_阅读模拟器的简单介绍

    模拟一个简单计算器 Read simulators are widely being used within the research community to create synthetic an ...

  2. PTA 基础编程题目集 7-12 两个数的简单计算器 C语言

    PTA 基础编程题目集 7-12 两个数的简单计算器 C语言 本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式 ...

  3. 7-12 两个数的简单计算器 (C语言)

    7-12 两个数的简单计算器 (10 分)本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次 ...

  4. 用Python解“两个数的简单计算器”题

    7-12 两个数的简单计算器 本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次输入操作数1 ...

  5. 用C语言解“两个数的简单计算器”题

    7-12 两个数的简单计算器 本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次输入操作数1 ...

  6. 06-1. 简单计算器(20)

    06-1. 简单计算器(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 模拟简单运算器的工作.假设计算器只 ...

  7. c语言对10求余不为7,【PTA | 基础编程题目集】7-12 两个数的简单计算器 (10分)

    本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次输入操作数1.运算符.操作数2,其间以1个 ...

  8. 重读The C programming Lanuage 笔记三:简单计算器程序

    1 //简单计算器 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <ctype.h> 6 #inc ...

  9. python实现简单计算器功能键介绍_Python实现的简单计算器功能详解

    本文实例讲述了Python实现的简单计算器功能.分享给大家供大家参考,具体如下: 使用python编写一款简易的计算器 计算器效果图 首先搭建计算器的面板: 计算器面板结构 建造一个继承于wx.Fra ...

  10. 一个用WPF做的简单计算器源代码

    一.界面设计XAML代码 <Window x:Class="fengjisuanqi.MainWindow"xmlns="http://schemas.micros ...

最新文章

  1. Linux 命令之 rcp -- 远程文件复制
  2. 鱼腥草可以随便吃吗?
  3. 十大经典算法总结(JavaScript描述)
  4. smbus协议的command_SMBus接口信号/应用框图/帧格式
  5. Java基础编程题50道题
  6. CROSS APPLY和OUTER APPLY的区别
  7. 在css中怎么做橡皮擦,js 实现橡皮擦 擦图效果(可用于刮刮卡)
  8. 口袋的天空(洛谷 P1195)
  9. Python打印简单杨辉三角形
  10. Android移动数据开关开启关闭方法
  11. 云时代,网络攻击已经“鸟枪换炮”,你的企业安全还在按兵不动?
  12. SQL 高级教程:SQL BETWEEN 操作符
  13. [C++] 小游戏—三国杀
  14. 传奇手游怎么开服?需要投资多少?需要那些东西?
  15. PMP考试关键字和黄金法则大全
  16. 【Caffe笔记】二.Forward and Backward(前传/反传)
  17. kl压缩 matlab,KL 变换实习matlab代码
  18. 【干货】Windows 服务器系统日志分析及安全
  19. 重装系统当识别不到硬盘的解决办法
  20. make和makefile的区别

热门文章

  1. 基于麒麟座开始TIM6操作
  2. 【华为OD机试真题 C语言】机器人走迷宫
  3. 流体仿真前处理,Fluent工程师的”基本功”和”看家本领”
  4. 常用排序:冒泡排序与快速排序详解,看完这篇就够了!风马博客
  5. vue input失焦事件
  6. 尚硅谷谷粒学院学习笔记9--前台用户登录,注册,整合jwt,微信登录
  7. 人生短暂,持之以恒地做一件事情就会成功
  8. git+github+jenkins自动发布
  9. win10在设备管理器里找不到蓝牙的三种解决办法
  10. c语言程序设计 大学考试题库,网络教育成考大学C语言程序设计考试题库及答案...