2017-2018-2 20172315 『Java程序设计』课程 结对编程练习_四则运算
结对人员
- 20172315胡智韬:中缀转后缀及对后缀表达式的计算
- 20172312彭霖:分式相关的程序及解决细小问题
- 20172318陆大岳:题目生成及驱动类的编译
需求分析
目标
1.自动生成题目
可独立使用(能实现自己编写测试类单独生成题目的功能)
可生成不同等级题目,类似于:
1级题目:2 + 5 =;
10 - 5 =
之类的两个数,一个运算符的题目
2.题目运算(判题)
可独立使用
实现中缀表达式转为后缀表达式并计算
判断用户答题正误,并输出正确结果
3.支持真分数
可独立使用
实现分数算式的计算
3.题目去重(扩展需求,加分项)
可独立使用
实现对自动生成表达式的去重:如下
若生成:2 + 5 =;
5 + 2 =
为同一题目
分析
- 需要设计个空的栈,依靠栈进行中缀转后缀及后缀的计算
- 需要一个类来生成题目,类中要有题目分级的方法
- 需要分数相关方法,实现分式的计算
- 需要一个驱动类来实现以上所有功能
后续拓展
- 对于分数还没有彻底实现,下周补上
- 对于题目去重还未实现,下周补上
设计思路
- 首先编译个StringToArithmetic类,实现中缀转后缀及对其进行计算
- 再创建分数类,实现分数的计算
- 再创建题目生成类,分等级随机生成题目
- 最后创建主类,实现用户作答,判断对错等功能
遇到的困难及解决办法
- 关于去重的问题,这个功能的实现我们组研究了很长的时间,还没有得出一个确切的方法。不过,我相信这个问题将会在下周得以解决。
- 关于判断题目的正确率出现了一些小问题
经过组内讨论后,得出了解决方案,如下图
UML
PSP
| PSP2.1 | Personal Software Process Stages| 预估耗时(分钟)|实际耗时(分钟)|
| -------- | :----------------😐:----------------😐:---------------: |:-----😐
|Planning |计划 | 55 | 75 | |
| Estimate |估计这个任务需要多少时间 | 3 | 5 | |
| Development | 开发 | 2400 | 3000 | |
| Analysis | 需求分析 (包括学习新技术) | 300 | 360 | |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 15 | |
| Design UML |设计项目UML类图 | 60 | 120 | |
| Coding | 具体编码 | 2000 | 2400 | |
| Code Review | 代码复审 | 30 | 40 | |
| Test | 测试(自我测试,修改代码,提交修改) | 240 | 300 | |
| Size Measurement |计算工作量(实际时间 ) | 5 | 5 | |
|Postmortem & Process Improvement Plan |事后总结, 并提出过程改进计划 | 30 | 60 | |
| |合计 | 5153 | 6380 | |