四则运算表达式题目生成及答案校对器
一、第二次小组作业
这个作业属于哪个课程 | 软件工程2024 |
---|---|
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13137 |
这个作业的目标 | 了解合作项目开发流程 |
项目成员 | 学号 | github仓库地址 |
---|---|---|
温惠兰 | 3222004641 | https://github.com/wenhuilan/RuanGong/tree/master |
徐天 | 3121000506 | https://github.com/sdscavawfaw/ALU |
二、完成的需求
- 使用 -n 参数控制生成题目的个数
- 使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围
- 生成的题目中计算过程不产生负数,即e1≥ e2。
- 生成的题目中如果存在形如e1÷ e2的子表达式,那么其结果应是真分数。
- 每道题目中出现的运算符个数不超过3个。
- 程序一次运行生成的题目不能重复。
- 生成的题目存入执行程序的当前目录下的Exercises.txt文件
- 真分数在输入输出时采用如下格式,真分数五分之三表示为3/5,真分数二又八分之三表示为2'3/8。
- 在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件.
- 程序应能支持一万道题目的生成。
- 程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计
- 统计结果输出到文件Grade.txt
三、一些错误逻辑处理机制
四、具体功能设计
- 程序运行流程图
- 功能模块
- Swing包:图形用户界面
- VisualVM Launcher 插件:IDEA集成性能分析工具
- Code Coverage for Java插件:代码覆盖率展示
类 | 主要功能 | 详细 |
---|---|---|
Main | 项目主入口 | 实现可视化窗口交互界面 |
FormExpression | 生成表达式 | 用两个数组分别存储随机得到的整数分数和运算符。如果表达式中有除运算符,将数值数组中的整数分数从1开始生成,以解决出现除号右边结果为0的情况;如果表达式中有减号,则比较减号两边结果大小,在需要时进行交换,以解决生成负数结果。 |
Expression | 四则运算表达式计算结果 | 将上面生成的表达式(以字符串存储)处理为列表形式,再将此列表中的中缀表达式变换为后缀表达式,再用后缀表达式计算最终结果。 |
Fenshu | 分数的加减乘除 | |
InResult | 计算给定的题目文件 | 把结果存入InAnswers.txt中 |
InputDialog | 弹出的输入框 | 填入参数 |
CorrectandWrong | 统计 | 对给定的题目文件和答案文件,判定答案中的对错并进行数量统计 |
bulid | 写入文件 | 输出表达式和答案到TXT文件 |
1. 性能分析
2. 覆盖率统计
3. 未完善问题
- 未实现括号,由于先实现了表达式的输出,未同时实现括号的加入
- 可视化窗口变化时,原本的输出信息不能保存展示到页面,文本框未实现下拉效果
五、项目总结
在这个项目中,我们共同合作实现了四则运算表达式题目生成和校对功能,通过使用 Java 编程语言和 IntelliJ IDEA 这一强大的集成开发环境,实现了项目所有需求。以下是我们对这次结对项目的总结:
- 成果与收获:
- 我们成功地实现了四则运算表达式题目的生成和校对功能,提升了对 Java 编程语言的应用能力。
- 通过结对编程,我们互相学习、交流经验,提高了沟通与合作能力。
- 项目的完成增强了我们解决问题的能力,培养了耐心与细致的工作态度。
- 失败与教训:
- 在项目过程中,我们遇到了一些代码逻辑错误和理解偏差,导致了一些时间浪费。这提醒我们在编程过程中要更加仔细思考和审查代码。
- 有时候在冲突处理方面存在意见分歧,我们意识到需要更好地沟通和妥协,以达成更好的解决方案。
六、PSP表格
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 30 |
· Estimate | · 估计这个任务需要多少时间 | 500 | 600 |
Development | 开发 | 600 | 500 |
· Analysis | · 需求分析 (包括学习新技术) | 50 | 60 |
· Design Spec | · 生成设计文档 | 30 | 34 |
· Design Review | · 设计复审 | 30 | 45 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 20 | 10 |
· Design | · 具体设计 | 20 | 20 |
· Coding | · 具体编码 | 300 | 200 |
· Code Review | · 代码复审 | 30 | 20 |
· Test | · 测试(自我测试,修改代码,提交修改) | 60 | 75 |
Reporting | 报告 | ||
· Test Repor | · 测试报告 | 30 | 30 |
· Size Measurement | · 计算工作量 | 60 | 60 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 50 | 40 |
· 合计 | 1300 | 1144 |