四则运算表达式题目生成及答案校对器

一、第二次小组作业

这个作业属于哪个课程 软件工程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

二、完成的需求

  1. 使用 -n 参数控制生成题目的个数
  2. 使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围
  3. 生成的题目中计算过程不产生负数,即e1≥ e2。
  4. 生成的题目中如果存在形如e1÷ e2的子表达式,那么其结果应是真分数。
  5. 每道题目中出现的运算符个数不超过3个。
  6. 程序一次运行生成的题目不能重复。
  7. 生成的题目存入执行程序的当前目录下的Exercises.txt文件
  8. 真分数在输入输出时采用如下格式,真分数五分之三表示为3/5,真分数二又八分之三表示为2'3/8。
  9. 在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件.
  10. 程序应能支持一万道题目的生成。
  11. 程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计
  12. 统计结果输出到文件Grade.txt







三、一些错误逻辑处理机制




四、具体功能设计

  1. 程序运行流程图

  1. 功能模块
  • 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 这一强大的集成开发环境,实现了项目所有需求。以下是我们对这次结对项目的总结:

  1. 成果与收获:
  • 我们成功地实现了四则运算表达式题目的生成和校对功能,提升了对 Java 编程语言的应用能力。
  • 通过结对编程,我们互相学习、交流经验,提高了沟通与合作能力。
  • 项目的完成增强了我们解决问题的能力,培养了耐心与细致的工作态度。
  1. 失败与教训:
  • 在项目过程中,我们遇到了一些代码逻辑错误和理解偏差,导致了一些时间浪费。这提醒我们在编程过程中要更加仔细思考和审查代码。
  • 有时候在冲突处理方面存在意见分歧,我们意识到需要更好地沟通和妥协,以达成更好的解决方案。

六、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
posted @ 2024-03-22 17:00  Serendipity-whl  阅读(138)  评论(2编辑  收藏  举报