结对项目
这个作业属于哪个课程 | 网工1934 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 实现一个自动生成小学四则运算题目的命令行程序 |
项目成员:吴佳愉(3219005404),苏培霓(3219005403)
项目GitHub地址
一、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 40 |
· Estimate | · 估计这个任务需要多少时间 | 60 | 30 |
Development | 开发 | 960 | 1080 |
· Analysis | · 需求分析 (包括学习新技术) | 60 | 90 |
· Design Spec | · 生成设计文档 | 5 | 5 |
· Design Review | · 设计复审 | 30 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
· Design | · 具体设计 | 30 | 30 |
· Coding | · 具体编码 | 840 | 960 |
· Code Review | · 代码复审 | 60 | 90 |
· Test | · 测试(自我测试,修改代码,提交修改) | 60 | 90 |
Reporting | 报告 | 60 | 90 |
· Test Repor | · 测试报告 | 30 | 30 |
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 30 |
· 合计 | 1245 | 1425 |
二、实现需求
1.使用 -n 参数控制生成题目的个数
2.使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围
3.生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1− e2的子表达式,那么e1≥ e2。
4.生成的题目中如果存在形如e1÷ e2的子表达式,那么其结果应是真分数。
5.每道题目中出现的运算符个数不超过3个。
6.程序一次运行生成的题目不能重复。
7.生成的题目存入执行程序的当前目录下的Exercises.txt文件。
8.在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件。
9.程序应能支持一万道题目的生成。
10.程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计。
三、效能分析
四、设计实现
五、代码说明
1.随机生成分数
2.求m,n公约数
3.生成随机运算符
4.返回随机运算数
5.避免生成重复的式子
6.将练习答案和答案进行比对
7.创建文件并输出结果
8.进行格式转换
9.读取文件
六、测试运行
测试1. 公式数值需大于1
测试2.文件名输入错误
测试3.文件内容答题格式有误
测试4.正确作答
测试5.错误作答
测试6-10.分别生成10,20,100,1000,10000道题目
七、项目小结
吴佳愉:这项目实际操作起来比想象中的难度要稍微大一点,在实现需求的过程中,在比对题目是否重复的问题上遇到一点小困难,不过最终还是顺利解决了。通过这次结对项目,不仅熟悉了面向对象开发的流程,还更切实地体会到协调分工,把握双方节奏对团队项目的重要性。
苏培霓:这次的结对项目让我体验到团队项目的流程,虽然其实本质是一带一,但也从中学到了很多东西。一个团队项目高效的完成与成员之间的有效沟通密不可分。感谢我的优秀的搭档,也幸亏有她的督促,这个项目才能顺利完成。