20165312 结对学习 四则运算
我和我的cooperate起初认为四则运算很简单,因为书上就有一个类似的代码,但是看过具体要求之后,才发现需要系统自动生成算式,这就需要用到随机数的知识(包括数字以及加减乘除运算的随机性),我们上网查找了一些代码资料,发现邹欣老师曾经布置过类似的作业,发现了很多逻辑清楚的代码(代码1、代码2、代码3……)但是说实话,我们这周完成的代码在我们看来还是有很多的问题。。需要再下一周的结对学习中进一步改进。
一、码云链接
二、需求分析
- 实现一个命令行程序,要求:自动生成小学四则运算题目(加、减、乘、除)
- 可实现多个运算符一起运算
- 可以真分数形式输出结果
- 测试结果的正确性
- 统计题目完成数并计算正确率
三、设计思路
- 从命令行输入参数n,然后随机产生n道加减乘除练习题。
- 从命令行输入参数m,保证所有的运算在m以内
- 程序随机产生n道m以内的加减乘除运算题
- 从命令行输入n道题目的答案
- 程序判断答案正确,输出正确错误题目的数目以及题号。并将n道题目存入Exercise.txt中,答案存入Grade.txt中
四、运行结果截图
五、本代码存在的几个问题
- 本代码中的四则运算仅针对整数型运算,有局限性
- 若允许的四则运算范围过大,会报错
- 系统随机产生的算术式的符号为中缀表达式,容易产生误解,若修改为后缀表达式更佳
- 若在输入算术表达式结果为非整形时,系统不会提示输入错误,而是直接报错,用户体验不佳
- 算术表达式产生的Exercise.txt文件中,算术表达式会比我们键盘输入的表达式的个数少1
- 系统随机产生的算术表达式仅是计算一次的加减乘除运算,没有混合运算
六、结对学习的感受
- 两个人一起在网上找资料,可以提高效率
- 有一个“领航员”在“驾驶员”的身旁,可以更加客观的检查代码的用户体验、临界情况,更能发现代码中的问题。吴思佳在测试我们共同写的代码的时候,就发现了很多我没有发现的问题,这就可以让我们的程序更加完善吧
- 这道题目我们觉得还是有些难的,随机数的使用以及整个程序各个细节的思考之类的,但是有个搭档在一起感觉学习都有了监督和动力吧
- 第一周的完成程度差强人意,还存在很多问题,可能不止我们自己发现的这些,但是我们会在第二周继续加油的,继续完成接下来的深层次要求吧。
七、PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 120 |
Estimate | 估计这个任务需要多少时间 | 360 | 600 |
Development | 开发 | 200 | 400 |
Analysis | 需求分析 (包括学习新技术) | 60 | 120 |
Design Spec | 生成设计文档 | 30 | 45 |
Design Review | 设计复审 (和同事审核设计文档) | 30 | 120 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 40 | 150 |
Design | 具体设计 | 50 | 40 |
Coding | 具体编码 | 180 | 260 |
Code Review | 代码复审 | 30 | 50 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 90 |
Reporting | 报告 | 30 | 30 |
Test Report | 测试报告 | 30 | 30 |
Size Measurement | 计算工作量 | 30 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 120 |
合计 | 1250 | 2195 |