四则运算生成器-结对作业1
| 这个作业属于哪个课程 | 软件工程2024 |
|---|---|
| 这个作业的要求在哪里 | 结对项目 |
| 这个作业的目标 | 学习并尝试团队项目开发(对Git的使用) |
| 项目成员 | 学号 | github仓库地址 |
|---|---|---|
| 陈耀安 | 3122004777 | https://github.com/YXCS-cya |
| 肖德栋 | 3122004792 | https://github.com/xswingx |
项目Github地址
1.题目及需求
题目
实现一个自动生成小学四则运算题目的程序。
完成的需求
1.用户可自定义算数范围,可控制题目数量(最大可达10000题)。
2.生成的题目中计算过程不能产生负数,
3.生成的题目中如果存在形如e1÷ e2的子表达式,那么其结果应是真分数。
4.每道题目中出现的运算符个数不超过3个。
5.生成的题目存入执行程序的当前目录下的Exercises.txt文件。
6.在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件。
7.程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计。
需求分析及分工
本次项目可大致分为四则运算式的生成及对给定文件的检查。
对于运算式生成,可以考虑使用字符串进行操作,将其与图形化界面联系起来,支持用户更加便利的使用程序。
因此,将项目拆分成为两个部分,一人负责生成四则运算式、保存至文件、交互界面;另一人负责对已有运算式文档进行读取与计算查错,并生成Grade.txt文档保存成绩
2.功能设计
1.程序流程

2.主要模块设计
| 类 | 功能 |
|---|---|
| Main | 生成四则运算式 |
| Menu | 程序的图形化界面 |
| FileTool | 四则运算式保存至文档 |
| NumberConverter | 输入浮点型,转真分数 |
| Result | 帮助判断生成式是否合理 |
| test | 校对所给题目与文件 |
3.程序实例
基本功能








错误反馈



4.版本控制


5.程序分析
性能分析


覆盖率统计

6.项目总结
回顾这次结对项目,最重要的难点在于两个人的分工,以及对各自负责部分有接触的内容的统一。例如纠错版块的Grade.txt文件可以调用生成器板块的类;生成器板块需要计算结果时也可以用纠错版块的方法。由于前期交流不足,开发过程中出现了类作用的重复,需求理解不一致等问题,额外花费了时间。
总的来说,从这次结对项目中,我们认识到团队项目里,前期的统筹规划的重要性,以及中期操作过程中版本控制的必要性。在以后的学习中,也会更加重视这两块内容。
7.PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 80 |
| Estimate | 估计这个任务需要多少时间 | 250 | 300 |
| Development | 开发 | 200 | 250 |
| Analysis | 需求分析 (包括学习新技术) | 100 | 150 |
| Design Spec | 生成设计文档 | 30 | 40 |
| Design Review | 设计复审 | 30 | 40 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 25 | 25 |
| Design | 具体设计 | 30 | 50 |
| Coding | 具体编码 | 30 | 50 |
| Code Review | 代码复审 | 30 | 60 |
| Test | 测试(自我测试,修改代码,提交修改) | 60 | 60 |
| Reporting | 报告 | 30 | 30 |
| Test Repor | 测试报告 | 30 | 30 |
| Size Measurement | 计算工作量 | 30 | 30 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 20 | 20 |
| 合计 | 955 | 1215 |

浙公网安备 33010602011771号