2.输入应生成的表达式数量
3.输入运算数的范围
题目已经生成并保存至文件中
题目文件 Exercise.txt
答案文件 Answers.txt
六、PSD统计:
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
|
Planning | 计划 | 30 | 20 |
|
· Estimate | 估计这个任务需要多少时间 | 800 | 700 |
|
Development | 开发 | 600 | 500 |
|
· Analysis | 需求分析 (包括学习新技术) | 10 | 5 |
|
· Design Spec | 生成设计文档 | 30 | 40 |
|
· Design Review | 设计复审 | 10 | 10 |
|
· Coding Standard | 代码规范 | 10 | 10 |
|
· Design | 具体设计 | 20 | 15 |
|
· Coding | 具体编码 | 600 | 500 |
|
· Code Review | 代码复审 | 10 | 10 |
|
· Test | 测试(自我测试,修改代码,提交修改) | 20 | 30 |
|
Reporting | 报告 | 30 | 60 |
|
· | 测试报告 | 10 | 10 |
|
· | 计算工作量 | 10 | 10 |
|
· | 并提出过程改进计划 | 5 | 5 |
|
|
|
|
|
|
(单位:分钟)
七、源代码:
程序源代码已提交至码云仓库 ,地址→
八、小结:
因为程序前期实现为使用JAVA String保存表达式,已实现表达式的生成和运算,但是查重应使用二叉树结构存储表达式才能实现,目前该程序还为实现查重功能。因此有待改进和完善。编写该程序的主要难点在于表达式括号的随机插入和对String类型的表达式进行分解操作数和运算符进行运算。其中遇到的最大问题在于如何对各种类型的操作数进行运算,最后的方案实现为通过将表达式中的自然数,真分数,带分数均转换为带有分母的分数形式。然后表达式带有了统一特征,即操作符和分子/分母形式,运算方式为对各种操作符实现分数的运算算法,并将最后结果进行约分得出答案。其中无疑会碰到int型无法存储超过32767数的分母,导致程序异常。最后用JAVA long类型解决该问题。