20165228 结对学习 四则运算(第二周)
20165228 结对学习 四则运算
本次红色为优化和添加部分
一、需求分析
- 题目生成
可独立使用
考虑可扩展支持配置生成不同难度的题目,比如通过参数指定: - 题目合法性判断
- 测试生成题目的正确性
- 输入的合法性检测
- 题目运算(判断正误)
- 转换为后缀表达式
- 考虑支持不同的去重级别测试
- 题目生成测试
二、设计思路
1.首先我们按计算难度设定了不同的等级
level1: 100以内整数的加减运算
level2:50以内整数的乘除运算
level3:分数(分子和分母都取0-50范围以内的整数)的加减乘除
level4:带有括号的算式的四则运算
2.我们设定了可调整生成的随机题目的数量
3.每完成一道题,都会显示计算的结果正误,并在做完所有题目后统计并在屏幕输出正确率
4.使用堆栈来实现“中缀表达式-->后缀表达式”的转换
5.当所得的商小数位数>2时,只保留前两位小数
6.(已设计后缀转换算法,但多运算符计算的那部分还是出错,仍未实现)
7.本周优化了一点程序框架,便于编写junit测试
运行结果截图
level1:
level:2
level:3
三、码云链接
四、UML图
五、junit截图
六、PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 110 |
Estimate | 估计这个任务需要多少时间 | 400 | 500 |
Development | 开发 | 150 | 270 |
Analysis | 需求分析 (包括学习新技术) | 40 | 50 |
Design Spec | 生成设计文档 | 30 | 40 |
Design Review | 设计复审 (和同事审核设计文档) | 20 | 20 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 25 | 35 |
Design | 具体设计 | 100 | 150 |
Coding | 具体编码 | 200 | 240 |
Code Review | 代码复审 | 30 | 45 |
Test | 测试(自我测试,修改代码,提交修改) | 200 | 240 |
Reporting | 报告 | 20 | 25 |
Test Report | 测试报告 | 15 | 20 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 80 |
合计 | 1360 | 1835 |
七、结对编程照片
八、结对学习的感受
- 我和我的搭档对于多运算符的计算依然没有任何办法,有过一些头绪,经过尝试后并不能成功实现。
- 因为上一周写的基础程序十分混乱,对juni测试造成了很大的困难,这周的工程量主要是用来进行修改和优化吧
- 虽然我们俩现在的能力还十分弱,但我们都依然在共同成长
- 其实对于第一次合作,我们俩对这个结果一点都不满意。希望能在下次合作中得到更多的成长以及完成得更好