软件工程基础实验二
1.驾驶员任务
1.能够完成全部代码工作,程序基本实现全部要求功能,并将代码上传至GitHub代码托管系统中(15分)
2.能够对导航员在本次编程工作中起到的作用给出客观评价,并完成500字以上的总结,并且上传和队友工作时的照片(5分)
2.代码(驾驶员任务一)
(1)四则运算生成代码
sizeyunsuan/1.cpp at main · sunyujie0327/sizeyunsuan (github.com)
(2)运行结果
3.评价总结及合作照片(驾驶员任务二)
(1).评价总结
在这次结对编程中,我感觉变化最大的就是在项目初期,我和领航员曹文静一起讨论题目的大致流程以及具体功能实现确定了程序框架和实现方法,方向确定好之后,代码实现就容易多了,相比以往,两个人在一起头脑风暴,交流想法,并且能即时沟通反馈,在方向确定和程序框架的确立上比以往高效的很多。
在本次项目中,我也学到了很多知识掌握了很多经验,第一个就是随机数的产生问题,一开始不了解随机数的产生原理,导致产生的随机数都是一样的,后来经查找资料弄明白了原理,rand()函数是按指定的顺序来产生整数,使用 rand() 生成随机数之前需要用随机发生器的初始化函数 srand(unsigned seed)(也位于 stdlib.h 中) 进行伪随机数序列初始化,seed 又叫随机种子,通俗讲就是,如果每次提供的 seed 是一样的话,最后每一轮生成的几个随机值也都是一样的,因此叫伪随机数,所以需要每次提供不同的 seed 达到完全的随机,所以我增加了一个种子变化函数解决了产生连续随机数的问题;第二就是在单元测试的时候发现可以运行的代码检测失败,看了错误报告查百度明白了原因,发现了自己编程的潜在的不良习惯和一些新学到的知识,例如在子函数中向主函数返回临时变量就通不过检测,我通过将变量设置在主函数通过传参的方式改正了,还有就是string库的strcpy,strcat等函数通不过检测需要改成strcpy_s,strcat_s。
结对编程有好有坏,主要前期准备需要我们统一接口,这样在后续工作的开展过程中,会很方便。同时通过这次结对编程自己学些到了很多东西,如何实现短信验证,一次计算题目的答案的逻辑等等。总的来说,多看,多学,多做,这是十分重要的,同时还要保持良好的代码规范,这样对于后续的test和修改bug会有很大的帮助。
(2).合作照片