本次作业要求来自: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 |