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 | |

posted @ 2018-05-01 23:00  大雪将烬  阅读(124)  评论(2编辑  收藏  举报