结对编程项目-四则运算整体总结
需求分析
实现一个命令行程序,要求:
- 自动生成小学四则运算题目(加、减、乘、除)
- 生成题目去重
- 支持多运算符(比如生成包含100个运算符的题目)
- 支持真分数
- 统计正确率
- 处理生成题目并输出到文件,生成题目后从文件读入并判题
- 多语言支持
我们需要实现以下几个功能:
- 可通过输入设置语言
- 随机生成四则运算题目,通过循环使得生成的题目的计算过程不含负数且不重复,并可通过输入控制生成的题目数目以及数值的范围
- 能将生成的题目输出到文件,并从文件中获取题目实现自动计算从而判断回答是否正确
- 能将计算的结果转化为分数(如真分数五分之三表示为3/5,真分数二又八分之三表示为2’3/8。)
- 能计算通过统计正确的题数来计算正确率
设计思路
上周中我们已经实现了中缀表达式的计算以及分数的转换(2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结)。
根据需求,程序还需要新定义方法来实现随机生成运算题目、多种语言的支持。并且需要在主类中实现文件操作、生成题目的合法性检验、判断用户的回答是否正确以及调用其他的类的功能。于是我们新定义了生成题目的Produce类和支持多语言的Language类,并重写了MyDCTester类的方法。
UML类图
运行过程截图
遇到的困难及解决方法
- 问题一:测试时IDEA自带的junit3无法正常使用
- 问题一解决办法:本地下载JUnitGenerator.jar包,在Intellij中依次选择File->Setings->Plugins,在Install plugin from disk导入JUnitGenerator.jar包即可
代码托管地址
https://gitee.com/A5320/pair_programming_code
对结对的小伙伴做出评价
我的结对搭档是龚仕杰,在本周的编程过程中,我遇到了许多的问题,通过与搭档的讨论成功得到了解决,在这过程中他不遗余力地帮助我,希望下次还有合作的机会。
PSP
|PSP2.1| Personal Software Process Stages| 预估耗时(分钟)|实际耗时(分钟)|
| -------- | :----------------😐:----------------😐:---------------: |:-----😐
|Planning|计划|15|30|
|Development|开发|||
|Analysis| 需求分析 (包括学习新技术)|35|60|
|Design Spec|生成设计文档|45|45|
|Design Review|设计复审 (和同事审核设计文档)|30|25|
|Coding Standard|代码规范 (为目前的开发制定合适的规范)|30|35|
|Design|具体设计|130|150|
|Coding|具体编码|230|300|
|Test|测试(自我测试,修改代码,提交修改)|30|35|
|Reporting|报告|60|80|
|Size Measurement|计算工作量|15|25|
|Postmortem & Process Improvement Plan|事后总结, 并提出过程改进计划|25|25|
||合计|680|855|