第三次作业:个人项目-小学四则运算 “软件”
本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
我的github远程仓库的地址:https://github.com/879539613/IT-apk
第一部分:要求
具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:23 - 3 * 4 = 11
第二部分:设计
1.需求分析
第三部分:实现
第四部分:解决
问题1:当exe文件脱离c++环境而单独打开时,往往在最后运行时直接关闭
解决:在main函数末尾加 system("pause"); 使得程序执行完毕之后可以停留。
问题2:结果的值与用户输入值的对比,精确度不高
解决:为保持结果除法时的正确性用了绝对值fabs(),使结果精确到小数点后一位
问题3:运算符优先级逻辑思维不一样,导致本来的代码更冗长一些
解决:初始想法,2个运算符有4种情况,即以switch(),case方法
① +,- ②+,-
① +,- ②*,/
①*,/ ② +,-
①*,/ ②*,/
后改成
用if()优先判断①是否*,/ ,再判断②是否*,/,这样的话,代码尽可能少一些。
问题4:容错率低,如果用脸滚键盘的话,肯定报错
解决:由于只是初步设计,需要不断更新才能进一步优化,需要以后改进。。。
附图:统计表
PSP2.1 |
Personal Software Process Stages |
Time Senior Student(h) |
Time(h) |
Planning |
计划 |
0.5 |
0.5 |
· Estimate |
估计这个任务需要多少时间 |
5 |
6 |
Development |
开发 |
1 |
1.5 |
· Analysis |
需求分析 (包括学习新技术) |
0.01 |
0.01 |
· Design Spec |
生成设计文档 |
0.5 |
0.5 |
· Design Review |
设计复审 |
0.1 |
0.1 |
· Coding Standard |
代码规范 |
0.1 |
0.1 |
· Design |
具体设计 |
0.5 |
0.3 |
· Coding |
具体编码 |
3 |
3.5 |
· Code Review |
代码复审 |
0.1 |
0.3 |
· Test |
测试(自我测试,修改代码,提交修改) |
0.1 |
0.1 |
Reporting |
报告 |
0.5 |
0.6 |
Test Report |
测试报告 |
0 |
0 |
·workload |
计算工作量 |
0 |
0.3 |
·correction |
并提出过程改进计划 |
0 |
0 |