结对作业
| 这个作业属于哪个课程 | 软件工程 |
|---|---|
| 这个作业要求在哪里 | 作业要求 |
| 项目成员 | 3119005462 黄有权 3119005459 黄春光 |
| github链接: | github(黄春光) github(黄有权) |
2. PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 50 |
| Estimate | 估计这个任务需要多少时间 | 30 | 20 |
| Development | 开发 | 600 | 650 |
| Analysis | 需求分析 (包括学习新技术) | 300 | 350 |
| Design Spec | 生成设计文档 | 60 | 50 |
| Design Review | 设计复审 | 60 | 50 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 60 | 50 |
| Design | 具体设计 | 60 | 60 |
| Coding | 具体编码 | 240 | 300 |
| Code Review | 代码复审 | 60 | 50 |
| Test | 测试(自我测试,修改代码,提交修改) | 60 | 70 |
| Reporting | 报告 | 180 | 200 |
| Test Repor | 测试报告 | 60 | 120 |
| Size Measurement | 计算工作量 | 30 | 40 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 50 | 60 |
| 合计 | 1910 | 2120 |
3.模块函数的性能展示

4. 设计实现过程
-
类的设计及类成员设计

| Calculator 计算器类 | 负责计算算式结果 |
|---|---|
| Frac 分子类 | 负责分数运算 |
| PriAriCreator 题目答案生成类 | 负责生成题目,答案,校对答案 |
5. 代码说明
1 CreateAriTitlesAndAnswer(生成题目与答案函数)
部分关键代码

- 1处代码实现了生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1− e2的子表达式,那么e1≥e2
- 2处调用计算器类计算式子答案
- 3处确保程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目
6.部分单元测试展示
1.测试生成题目和答案函数(10000道)

生成的题目与答案(部分展示)

2.测试判断答案对错函数

生成的答案对错统计

因为题目文件与答案文件为刚才系统生成的,所以结果统计全部正确。
3. 单元测试10用例通过

7.命令行执行.exe文件演示

8.项目小结
成员1.黄有权小结:这次结对编程,有同伙的帮助,帮助让我更好的理解了题目的要求以及更好地开发接口模块,有小伙伴有时候可让开发效率更高。这次看似简单的题目其实有很多细节需要处理。体验到了面向搜索引擎编程。说实话,对于搜不到的东西和搜到但是又不完全能用的东西。就很烦。总之来说,编程之路还得学更多东西,增加自己的经验。
成员2.黄春光小结:
本次结对项目合作,我们需要对小学的四则运算题目制作一个自动生成器,在生成题目的同时,我们需要计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt。
同时我们需要对程序给定的题目文件和答案文件中的答案对错进行数量统计。对应着这些需求,我们通过查阅网上资料,努力实现程序的各项功能,并对程序的各项性能进行测试。
在本次合作中,我学习到与成员之间的团结协作,分工合作。对于一些困难问题的解决,我们通过分别查找材料以及一起讨论等方法去寻找更好的解决办法,最终得到一个比较好的结果。

浙公网安备 33010602011771号