码云链接
https://gitee.com/A5320/pair_programming_code
需求分析
- 实现一个命令行程序,要求:
1.自动生成小学四则运算题目(加、减、乘、除)
2.支持整数
3.支持多运算符(比如生成包含100个运算符的题目)
4.支持真分数
5.统计正确率 - 从题目要求可知,我们需要实现以下几个功能:
1.随机生成个四则运算题目,并可手动控制生成的题目数目
2.能将计算的结果转化为分数
3.自动计算生成题目的结果,并能判断用户输入是否与运算结果相同 - 现阶段已实现要求2、3,要求4虽已初步实现但仍存在一些问题,我们将会在下一阶段中实现所有项目要求的功能,并可拓展以下功能:
1.随机生成题目
2.题目去重
3.生成题目后从文件读入并判题
设计思路
- 本周主要考虑要求2,3,4
- 参考2016-2017-2 《Java 程序设计》课堂实践项目学习了如何对逆波兰式求值以及如何将输入的中缀表达式转化为后缀表达式
- 借鉴教材上第100页的例子22封装了有理数类Rational,实现了对真分数的支持,并考虑到在分母为零时输出错误提示
UML类图
运行过程截图
结对感受
本次结对伊始,我跟搭档先各自独立研究项目,各有着重点,比如我主要研究分数运算,小伙伴着重于中缀式转换为后缀式,在后期将代码合成的时候,我们发现想要将数据类型整合在一起需要进行比较麻烦的修改,由此吸取教训,以后分配任务的时候应当提前规划好这些细节。
对结对的小伙伴做出评价
我的结对搭档是龚仕杰,在合作的过程中他是牵头人,他对小组做出了很大的贡献,在编程过程中我们互相学习,在遇到困难时不独自发愁,而是一起讨论解决办法。希望能在以后的任务中继续合作密切配合。
PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) | |
---|---|---|---|---|
Planning | 计划 | 15 | 30 | |
Development | 开发 | |||
Analysis | 需求分析 (包括学习新技术) | 25 | 35 | |
Design Spec | 生成设计文档 | 30 | 30 | |
Design Review | 设计复审 (和同事审核设计文档) | 20 | 30 | |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 35 | 45 | |
Design | 具体设计 | 60 | 80 | |
Coding | 具体编码 | 150 | 300 | |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 35 | |
Size Measurement | 计算工作量 | 10 | 20 | |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 35 | |
合计 | 435 | 670 |