姓名 学号
张钟杰 3121005324
伊尔帕提江 3121005318
Github
作业概述
这个作业属于那个课程 | 软件工程 |
---|---|
这个作业的要求 | 结对项目 |
这个作业的目标 | 实现一个自动生成小学四则运算题目的命令行程序 |
PSP表
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 300 | 400 |
Development | 开发 | 120 | 200 |
Analysis | 需求分析 (包括学习新技术) | 60 | 60 |
Design Spec | 生成设计文档 | 60 | 60 |
Design Review | 设计复审 (和同事审核设计文档) | 30 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
Design | 具体设计 | 90 | 60 |
Coding | 具体编码 | 300 | 350 |
Code Review | 代码复审 | 60 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 90 |
Reporting | 报告 | 40 | 60 |
Test Report | 测试报告 | 60 | 60 |
Size Measurement | 计算工作量 | 60 | 60 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 120 | 30 |
合计 | 1450 | 1610 |
性能分析
思路设计设计实现过程
1.主要实现的两个功能模块:出题和检查题目对错
出题
输入-n和-r控制题目个数和数值范围
根据n,r随机生成中缀表示式
将中缀表达式生成后缀表达式
判断新增表达式与前面生成的是否相同,直到生成数量达到题目要求
输出Exercise.txt文件和Answers.txt文件。
检查题目对错
输入自拟的答案Ans.txt
跟Answers.txt进行检验对错
输出Grade.txt 结果文件
2.类的说明
Main类:主函数,调用其他类
Expression类:获取输入的操作数和操作符并随机生成表达式
Calculate类:生成后缀表达式,将中缀表达式转换为后缀表达式
Check类:实现表达式结果查重功能
Function类:创建并输出Exercises.txt文件和Answers.txt文件
CheckQuestion类:检验结果对错并输出Grade.txt文件
代码说明
主函数
将中缀表达式转换为后缀表达式,可以把括号去除,进行遍历的时候,遇到操作符则与栈弹出的两个有理数进行运算即可
检查答案对错
结果测试
项目小结
这次项目一开始以为挺简单的,看完题目,简单分析之后就有了逻辑,但是在具体实现代码的时候,发现也有点难度,比如要用到栈啊,考虑如何选择表达式来进行操作,如何将数据统一进行操作运算等等,做的过程,也有和队友进行了讨论,在做项目的过程中,又学习了一些新的技术,也更加熟系用java写程序代码了,最后参考了多篇博客,综合运用,终于完成了,也学会了和队友合作完成一个项目的经验