20165228 结对学习 四则运算
一、需求分析
- 题目生成
可独立使用
考虑可扩展支持配置生成不同难度的题目,比如通过参数指定:
运算符个数范围 - 题目合法性判断
- 测试生成题目的正确性
- 输入的合法性检测
- 题目运算(判断正误)
- 转换为后缀表达式
- 题目去重
- 考虑支持不同的去重级别测试
- 题目生成测试
二、设计思路
1.首先我们按计算难度设定了不同的等级
level1: 100以内整数的加减运算
level2:50以内整数的乘除运算
level3:分数(分子和分母都取0-50范围以内的整数)的加减乘除
level4:带有括号的算式的四则运算
2.我们设定了可调整生成的随机题目的数量
3.每完成一道题,都会显示计算的结果正误,并在做完所有题目后统计并在屏幕输出正确率
4.使用堆栈来实现“中缀表达式-->后缀表达式”的转换
运行结果截图
三、码云链接
四、UML图
五、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 |
六、结对编程照片
七、结对学习的感受
- 结对编程需要两人都要有相当的知识储备,这样在一起编程才会比较好。因为我的搭档是我的室友,所以我们互相了解,在关于一些有分歧的问题上,很容易就可以达成一致的想法,相互学习,相互吸收优点。在两人都不明白的代码或者知识时,能够各自去查找并且将所得到的解答相互沟通,从而达到了事半功倍的效果。
- 对于“领航员”和“驾驶员”的角色,我们总是轮流着来,不仅要有思想沟通,还应当学会在什么位置扮演什么角色,需要做什么事,需要考虑的因素等。只有角色互换,才能达到应有的默契。