博客信息 | 沈阳航空航天大学计算机学院2020软件工程作业 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/10685 |
课程目标 | 熟悉一个“高质量”软件的开发过程 |
作业目标 | 结对编程练习 |
一.任务要求
本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。
二.题目
我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:
1.能够自动生成四则运算练习题
2.可以定制题目数量
3.用户可以选择运算符
4.用户设置最大数(如十以内、百以内等)
5.用户选择是否有括号、是否有小数
6.用户选择输出方式(如输出到文件、打印机等)
7.最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
三.参与人员
四.驾驶员任务
1.能够完成全部代码工作,程序基本实现全部要求功能,并将代码上传至GitHub代码托管系统中(15分)
2.能够对导航员在本次编程工作中起到的作用给出客观评价,并完成500字以上的总结,并且上传和队友工作时的照片(5分)
五.代码(驾驶员任务一)
1.小学四则运算自动生成程序
2.结果截图
六.评价总结及合作照片(驾驶员任务二)
1.评价总结
在这次结对编程中,我感觉变化最大的就是在项目初期,我和领航员王宏宇图形一起讨论题目的大致流程以及具体功能实现确定了程序框架和实现方法,方向确定好之后,代码实现就容易多了,相比以往,两个人在一起头脑风暴,交流想法,并且能即时沟通反馈,在方向确定和程序框架的确立上比以往高效的很多。在本次项目中,我也学到了很多知识掌握了很多经验,第一个就是随机数的产生问题,一开始不了解随机数的产生原理,导致产生的随机数都是一样的,后来经查找资料弄明白了原理,rand()函数是按指定的顺序来产生整数,使用 rand() 生成随机数之前需要用随机发生器的初始化函数 srand(unsigned seed)(也位于 stdlib.h 中) 进行伪随机数序列初始化,seed 又叫随机种子,通俗讲就是,如果每次提供的 seed 是一样的话,最后每一轮生成的几个随机值也都是一样的,因此叫伪随机数,所以需要每次提供不同的 seed 达到完全的随机,所以我增加了一个种子变化函数解决了产生连续随机数的问题;第二就是在单元测试的时候发现可以运行的代码检测失败,看了错误报告查百度明白了原因,发现了自己编程的潜在的不良习惯和一些新学到的知识,例如在子函数中向主函数返回临时变量就通不过检测,我通过将变量设置在主函数通过传参的方式改正了,还有就是string库的strcpy,strcat等函数通不过检测需要改成strcpy_s,strcat_s。
2.合作照片
七.工作记录
项目 | 预计 | 实际 |
---|---|---|
设计时间 | 2h | 1.5h |
编码时间 | 24h | 5h |
测试时间 | 1h | 2h |
测试代码行数 | 200行 | 182行 |
错误数量 | 4 | 2 |
错误修复时间 | 3h | 1h |
开发总时间 | 24h | 10h |