需求分析
- 能够根据输入要求生成一定数量和数值范围的题目
- 对题目自动计算得到正确的答案
- 支持作答并检查计算结果
功能设计
-
随机数以及运算符产生
- 用产生随机数的原理,对已经定义好的运算符数组进行匹配,并加以数量控制,产生符合要求的算式
- 利用字符串数组存储生成的题目
-
利用栈计算题目
- 将算数表达式分成运算符和运算数两部分,分别存储在两个栈中,一边扫描表达式一边计算,提高计算效率。因此对于运算符要判断运算符的优先级,比如当前优先级若低于栈顶的优先级,则先把高的优先级运算符计算出来。
- 用与题目数组同样大小的字符串数组存储计算结果,可以使题目与答案一一对应
设计实现
- 题目生成类:
Create.java
- 计算类:
Calculate.java
- 分数类:
Fraction.java
- 主控制类:
Main.java
测试运行
PSP统计
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
---|---|---|---|
Planning | 计划 | 30 | 15 |
Estimate | 估计这个任务需要多少时间 | 40 | 46 |
Development | 开发 | 35 | 80 |
Analysis | 需求分析 (包括学习新技术) | 4 | 7 |
Design Spec | 生成设计文档 | 4 | 6 |
Design Review | 设计复审 | 4 | 6 |
Coding Standard | 代码规范 | 3 | 3 |
Design | 具体设计 | 10 | 12 |
Coding | 具体编码 | 10 | 10 |
Code Review | 代码复审 | 3 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 3 | 15 |
Reporting | 报告 | 9 | 10 |
测试报告 | 2 | 1 | |
计算工作量 | 4 | 6 | |
并提出过程改进计划 | 3 | 3 |
作业小结
- 未实现将题目与答案存入文件以及题目查重的功能,仍需继续完善
源码地址: https://coding.net/u/NInjaHong/p/firstwork/git?public=true