四则运算生成器-结对作业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 |