软工第二次结对编程作业
一、题目要求
本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换。
我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:
①能够自动生成四则运算练习题
②可以定制题目数量;
③用户可以选择运算符;
④用户设置最大数(如十以内、百以内等);
⑤用户选择是否有括号、是否有小数;
⑥用户选择输出方式(如输出到文件、打印机等);
⑦ 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主);
二、角色:驾驶员与领航员
1、驾驶员
①能够完成全部代码工作,程序基本实现全部要求功能,并将代码上传至coding.net或者GitHub代码托管系统中;
②能够对导航员在本次编程工作中起到的作用给出客观评价,并完成500字以上的总结;
2、领航员
①能够辅助驾驶员完成全部代码工作,并且为关键函数选用合适的覆盖标准设计测试用例,并编写代码进行单元自动测试;
②能够根据上次作业的代码检查表对驾驶员的本次工作进行评价;
③能够对本次工作完成500字以上的总结;
在本次合作中,我担任的角色为驾驶员,自然而然接到了编程的任务(任重道远啊!)。
简单介绍下,本次编程使用的语言为C\C++,软件为code blocks。
代码地址:https://git.coding.net/a1hu/jieduiwork2.git
三、代码实现的主要功能
首先是用户使用界面:
用户可以根据需求来进行选择,例如生成具有最大数为50、无小数、带括号、加法运算,打印机输出条件的20道题目,可以进行一下操作:
在按回车后即会生成符合用户需求的题目即答案→
以此为例,该程序能实现的功能都能在领航员的博客中得到更详细的介绍,故在此不再多加说明。
主要代码展示部分在此处不做过多展示,如有兴趣请到coding.net中查看,coding地址:https://git.coding.net/a1hu/jieduiwork2.git
四、总结
其实在最近很长一段时间内我都没有写过代码,重拾起来,说实话刚开始的时候很痛苦,一开始我是想使用eclipse进行编程的,因为那样领航员的任务不会那么繁重,但在我开始编程后由于自己的不熟练,在遇到瓶颈后我放弃了Java,转向了我的老战友C++。
但是即使是自己比较熟悉的C++,在编程时也遇到了很多问题,比如随机生成随机数函数rand()的用法、如何生成整数随机数与小数随机数、使用文件输出。在众多克服的难点之中,最让我头疼也是我花费精力最多的就是随机生成运算符号与括号。为此我曾查阅了很多网络上的资料,大概能够明白网络上的思想,但我也只是“只能意会”,此时,担任领航员职责的我的小伙伴很精准地给我指明了一个思路,最终在我们两天的努力下完成了代码的编写。我很感激队友的帮助,1+1真的>2啊,当我陷进自己设计的代码中时,找同学很及时地指出何处可以调用函数来简化代码、当遇到算法错误时能“拨乱反正”,尤其是在调试时能够很准确的发现错误之处,极大的缩短了编程的整个时间线,由此可见领航员的作用也很重要。
我还意识到合作不仅仅在我们结对编程是重要,在将来我们工作、生活当中也扮演了很重要的角色,对于我来说,具备与人合作的意识并积极与人合作我在此次作业中学到的最值得牢记的事。