博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四则运算03
阅读量:4977 次
发布时间:2019-06-12

本文共 7049 字,大约阅读时间需要 23 分钟。

题目要求:

  1.学生写的程序必须能判定用户的输入答案是否正确

  2.程序必须能处理四种运算的混合算式

  3.要求两人合作分析,单独编程,单独撰写博客

团队成员:胡浩特、朱子嘉()

 

源代码:

1 //四则运算3  2 //朱子嘉、胡浩特 2015/3/17  3   4 #include
5 using namespace std; 6 7 #include
8 #include
9 #include
10 int display(int number, int mul, int num, int neg, int remainder)//打印方式控制输出列数 11 { 12 int *a = new int[number]; 13 int *b = new int[number]; 14 int *c = new int[number]; 15 int *d = new int[number]; 16 int *e = new int[number]; 17 18 int m;//控制题目避免重复 19 int t;//中间变量 20 int n1 = 0;//保存正确题目数量 21 int n2 = 0;//保存错误题目数量 22 double result;//用户输入的题目结果 23 for (int i = 0; i
> result; 54 if (result == a[i] + b[i]) 55 { 56 cout << "回答正确!" << endl; 57 n1++; 58 } 59 else 60 { 61 cout << "回答错误!" << endl; 62 cout << "正确结果为:" << a[i] + b[i] << endl; 63 n2++; 64 } 65 break; 66 case 1: 67 if (neg == 0)//减法没有负数 68 { 69 if (a[i]
> result; 78 if (result == a[i] - b[i]) 79 { 80 cout << "回答正确!" << endl; 81 n1++; 82 } 83 else 84 { 85 cout << "回答错误!" << endl; 86 cout << "正确结果为:" << a[i] - b[i] << endl; 87 n2++; 88 } 89 break; 90 } 91 92 else if (neg == 1)//减法有负数 93 { 94 cout << a[i] << "-" << b[i] << "=" << endl; 95 cout << "请输入结果:" << endl; 96 cin >> result; 97 if (result == a[i] - b[i]) 98 { 99 cout << "回答正确!" << endl;100 n1++;101 }102 else103 {104 cout << "回答错误!" << endl;105 cout << "正确结果为:" << a[i] - b[i] << endl;106 n2++;107 }108 break;109 }110 case 2:111 cout << a[i] << "+" << b[i] << "*" << d[i] << "-" << e[i] << "=" << endl;112 cout << "请输入结果:" << endl;113 cin >> result;114 if (result == a[i] + b[i] * d[i] - e[i])115 {116 cout << "回答正确!" << endl;117 n1++;118 }119 else120 {121 cout << "回答错误!" << endl;122 cout << "正确结果为:" << a[i] + b[i] * d[i] - e[i] << endl;123 n2++;124 }125 break;126 case 3:127 cout << a[i] << "+" << b[i] << "-" << d[i] << "-" << e[i] << "=" << endl;128 cout << "请输入结果:" << endl;129 cin >> result;130 if (result == a[i] + b[i] - d[i] - e[i])131 {132 cout << "回答正确!" << endl;133 n1++;134 }135 else136 {137 cout << "回答错误!" << endl;138 cout << "正确结果为:" << a[i] + b[i] - d[i] - e[i] << endl;139 n2++;140 }141 break;142 case 4:143 cout << a[i] << "+" << b[i] << "+" << d[i] << "-" << e[i] << "=" << endl;144 cout << "请输入结果:" << endl;145 cin >> result;146 if (result == a[i] + b[i] + d[i] - e[i])147 {148 cout << "回答正确!" << endl;149 n1++;150 }151 else152 {153 cout << "回答错误!" << endl;154 cout << "正确结果为:" << a[i] + b[i] + d[i] - e[i] << endl;155 n2++;156 }157 break;158 case 5:159 if (neg == 0)//结果没有负数160 {161 if (a[i]
> result;170 if (result == a[i] - b[i] * c[i] + d[i] / e[i])171 {172 cout << "回答正确!" << endl;173 n1++;174 }175 else176 {177 cout << "回答错误!" << endl;178 cout << "正确结果为:" << a[i] - b[i] * c[i] + d[i] / e[i] << endl;179 n2++;180 }181 break;182 }183 184 else if (neg == 1)//结果有负数185 {186 cout << a[i] << "-" << b[i] << "*" << c[i] << "+" << d[i] << "/" << e[i] << "=" << endl;187 cout << "请输入结果:" << endl;188 cin >> result;189 if (result == a[i] - b[i] * c[i] + d[i] / e[i])190 {191 cout << "回答正确!" << endl;192 n1++;193 }194 else195 {196 cout << "回答错误!" << endl;197 cout << "正确结果为:" << a[i] - b[i] * c[i] + d[i] / e[i] << endl;198 n2++;199 }200 break;201 }202 203 case 6:204 cout << a[i] << "*" << b[i] << "*" << d[i] << "/" << e[i] << "=" << endl;205 cout << "请输入结果:" << endl;206 cin >> result;207 if (result == a[i] * b[i] * d[i] / e[i])208 {209 cout << "回答正确!" << endl;210 n1++;211 }212 else213 {214 cout << "回答错误!" << endl;215 cout << "正确结果为:" << a[i] * b[i] * d[i] / e[i] << endl;216 n2++;217 }218 break;219 case 7:220 if (b[i] == 0)//分母为零则不计入总数221 {222 i = i - 1; break;223 }224 else if (remainder == 0)//除法没有余数225 {226 if (a[i] % b[i] == 0)227 {228 cout << a[i] << "/" << b[i] << "=" << endl;229 cout << "请输入结果:" << endl;230 cin >> result;231 if (result == a[i] / b[i])232 {233 cout << "回答正确!" << endl;234 n1++;235 }236 else237 {238 cout << "回答错误!" << endl;239 cout << "正确结果为:" << a[i] / b[i] << endl;240 n2++;241 }242 break;243 }244 else245 {246 i = i - 1; break;247 }248 }249 else if (remainder == 1)//除法有余数250 {251 if (a[i] % b[i] != 0)252 {253 cout << a[i] << "/" << b[i] << "=" << endl;254 cout << "请输入结果:" << endl;255 cin >> result;256 if (result == (double)a[i] / b[i])257 {258 cout << "回答正确!" << endl;259 n1++;260 }261 else262 {263 cout << "回答错误!" << endl;264 cout << "正确结果为:" << (double)a[i] / b[i] << endl;265 n2++;266 }267 break;268 }269 else270 {271 i = i - 1; break;272 }273 }274 275 }276 break;//跳出循环277 }278 }279 cout << "您一共答对" << n1 << "道题目" << endl;280 cout << "您一共答错" << n2 << "道题目" << endl;281 return 0;282 }283 void main()284 {285 int number;//题目数量286 int mul;//乘除法287 int num;//数值范围288 int neg;//负数289 int remainder;//余数290 int c;//循环变量291 292 srand((unsigned)time(NULL));//调用随机函数发生器293 cout << "---------------------------------" << endl;294 cout << "| 四则运算 |" << endl;295 cout << "---------------------------------" << endl;296 cout << "请输入要打印的题目数量:" << endl;297 cin >> number;298 299 while (number<0)300 {301 cout << "输入错误!" << endl;302 cout << "请输入要打印的题目数量:" << endl;303 cin >> number;304 }305 306 cout << "是否有乘除法(0表示没有;1表示有)" << endl;307 cin >> mul;308 while (mul != 0 && mul != 1)309 {310 cout << "输入错误,请重新输入!是否有乘除法(0表示没有;1表示有)" << endl;311 cin >> mul;312 }313 if (mul == 1)314 {315 cout << "除法有无余数(0表示没有;1表示有)" << endl;316 cin >> remainder;317 while (remainder != 0 && remainder != 1)318 {319 cout << "输入错误,请重新输入!除法有无余数(0表示没有;1表示有)" << endl;320 cin >> remainder;321 }322 }323 cout << "请输入正整数的数值范围(即最大数):" << endl;324 cin >> num;325 cout << "减法有无负数(0表示没有;1表示有)" << endl;326 cin >> neg;327 while (neg != 0 && neg != 1)328 {329 cout << "输入错误,请重新输入!" << endl;330 cout << "减法有无负数(0表示没有;1表示有)" << endl;331 cin >> neg;332 }333 display(number, mul, num, neg, remainder);334 cout << "继续请输入1,退出请输入0" << endl;335 cin >> c;336 }

 

结果截图:

设计思路:

本次实验的主要功是:能够判定用户的输入答案是否正确和能够处理四种运算的混合运算。这两个基本要求基本都可以实现,虽然实现的方法比较笨重,就是各自分别计算结构,然后再判断是否正确。这次实验没有实现括号的功能,本想运用递归的思想,把两个操作数的运算看成一个操作数,然后再参与运算,直到满足功能需求,但是这个想法没有实现,还有一个问题就是:括号问题,不知道怎么用合适的方法把括号添加到运算式中,最后也没有想到比较合适的方法。总之,这次实验还是很费力的,花费的时间也很长,但是自己也没有比较好的完成。

工作照片:

 

周活动总结表:

 

日期/任务 听课 编写程序 阅读课本 准备考试 日总计
周日   60 60   120
周一 100    60   160
周二     100   100
周三   100 60   160
周四 100 60     160
周五     120   120
周六   240 100   340
周总结 200 460 500   1160

时间记录日志:  

 

日期 开始时间 结束时间 中断时间 净时间 活动 备注
3.14 19:00 9:30 30 120

构建之法

数据结构

 
3.16

2:00

4:30

4:00

6:00

120

90

编写程序

阅读

 
3.18

4:30

7:30

6:30

9:30

30

15

90

105

阅读

编写程序

 
3.19

9:00

2:00

11:30

5:30

30

30

120

180

编写程序

撰写博客

 
             
             

缺陷记录日志: 

 

日期 编号 类型 引入阶段 排除阶段 修复时间 修复缺陷
3.14 1 范围 设计 编译 10min  
描述:随机数范围输入时,出现错误。
3.16 2 循环 编码 编译 5min  
描述:在打印题目时,循环打印出现问题。
3.18 3 余数、乘除法 编码 编译 25min  
描述:在选择有无余数时,不能出现有余数的式子;乘除出现编译终止的问题
3.19 4 整合 编码 编译 5min  
描述:使用switch语句来进行各项的选择时没整和好

转载于:https://www.cnblogs.com/JYQ-hu/p/5296109.html

你可能感兴趣的文章
页面抓取匹配时,万恶的\r,\n,\t 要先替换掉为空,出现匹配有问题,都是这个引起的...
查看>>
利用Node.js调用Elasticsearch
查看>>
构造函数
查看>>
LeetCode N-Queens
查看>>
jstat 命令
查看>>
leetcode[155]Min Stack
查看>>
《代码不朽:编写可维护软件的10大要则(C#版)》读后感
查看>>
04、我的.net Core的学习 - 网页版Hello World
查看>>
分块学习
查看>>
[Git] 005 初识 Git 与 GitHub 之分支
查看>>
【自定义异常】
查看>>
pip install 后 importError no module named "*"
查看>>
springmvc跳转方式
查看>>
IOS 第三方管理库管理 CocoaPods
查看>>
背景色渐变(兼容各浏览器)
查看>>
MariaDB 和 MySQL 比较
查看>>
MYSQL: 1292 - Truncated incorrect DOUBLE value: '184B3C0A-C411-47F7-BE45-CE7C0818F420'
查看>>
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
查看>>
springMVC Controller 参数映射
查看>>
【bzoj题解】2186 莎拉公主的困惑
查看>>