软件工程(2019)结对编程第二次作业

软件工程(2019)结对编程第二次作业

一 题目要求

本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。
题目一:我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:
1、能够自动生成四则运算练习题
2、可以定制题目数量
3、用户可以选择运算符
4、用户设置最大数(如十以内、百以内等)
5、用户选择是否有括号、是否有小数
6、用户选择输出方式(如输出到文件、打印机等)
最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)


二 人员分工

领航员:姚田强,主要负责代码审查及测试用例的设计,并辅助驾驶员完成部分功能。
驾驶员:王一然,主要负责编写代码主程序及修改。

三 需求分析

刚开始看到这个题目的时候,我就像把整个程序分为五个部分,分别为加减乘除及混合运算,然后在每个大部分中加入小数和括号判别。

程序流程图

![](https://img2018.cnblogs.com/blog/1645954/201905/1645954-20190506142422921-194235122.png)

在这里仅放一小部分加法主要代码

void Jia(int c, int d, int e)    //加
{
ac = (rand() % (d2 - t)) + t;
t2 = ac;
while (c--){
if (e == 0){
a = rand() % d;        //取范围内数字
while (ac--){
if (ac != 0){
printf("%d +  ", a);
a = rand() % d;
}else{
printf("%d =\n", a);
ac = t2; break;
}

文件完整源代码已上传腾讯云

https://dev.tencent.com/u/cancana/p/SE/git/tree/master

程序运行结果

![](https://img2018.cnblogs.com/blog/1645954/201905/1645954-20190506131642583-1579291584.jpg)

四 总结

因为本次是正式的两个人在一起创作一个程序,感觉这种方式很新颖,因为以前都是一个人来做,总是弄得手忙脚乱的,这边主程序的源码也要看,那边各个分支也要看,不会的还要自己一个一个上网去查去找,感觉一个人拆成几半用。自从本次作业开始真正的感觉到了多一个人会对自己有所帮助,写代码的时候有人帮忙看着,有问题的时候也有人帮找,省心省力了许多。
开始看到题目的时候也做过一些讨论,发现电梯算法弄起来确实有一定难度,所以选择了这个四则运算的题目。总体来说不是特别难,但也不是随随便便就能弄出来,也花费了一些力气,自己也研究了C#中WinForm的一些图形界面的东西,弄了很长时间,做了一下,感觉还是不太行,一些变量不能转换到框体里面,所以就放弃了,感觉还是有差距。
通过本次结对编程收获了很多两个人工作的美好经验,还是挺好的。

讨论精彩瞬间

![](https://img2018.cnblogs.com/blog/1645954/201905/1645954-20190506175609106-269727001.jpg)

非谢家之宝树,接孟氏之芳邻。

posted @ 2019-05-06 13:04  2can  阅读(153)  评论(0编辑  收藏  举报