软件工程结对编程作业
博客要求:
-
结对信息
1.1 结对编程成员:
黄晓杨:201521123071
秦贞一:201521123072
1.2 项目开发的码云地址:https://gitee.com/HXY071/four_operations.git
1.3 结对照片:
1.4 选择修改的程序代码:
个人博客地址5:http://www.cnblogs.com/NianQiFeng ,源代码:https://git.coding.net/qwx_hh/java-szys.git
1.5 码云提交记录:
-
需求分析:针对现有代码的改进分析,新开发功能的分析。
2.1 现有代码改进分析
目前就发现了两个bug,一个是功能键“复习”,他会回到主页面再次进行做题,功能键与实际内容不符,所以修改了功能键名称为“继续”。
另一个是他的正确率的计算有误,第一次运行程序的时候,计算出来的正确率结果是正确的,当点击了“继续”并再次做题之后,他的正确题数rn会累加,导致正确率计算出错,因此,我们在显示正确率之后令“rn=0.0”,避免他的累加。
图片展示:
原功能:
修改后功能:(具体代码后续会体现)
2.2 新开发功能分析
在原功能上,我们在随机的算数题中加入了括号。 -
程序设计:针对新开发功能做设计,建议使用思维导图。
原本打算用二叉树来做随机算术题的产生。但后来观察了源代码,如果要使用二叉树的话要把他们的源代码全部推翻重来,如此一来,将耗费大量的时间与精力,于是后来还是放弃了,选择了一个较为简单,而且契合恶源代码的方法。在源代码的基础上进行了小范围的修改。源代码是将加减乘除作为四种情况,用if语句进行选择。我们在这个基础上,对整数和分数运算分别加入带括号的运算。
核心代码:
算术式为整数时:
算术式为分数时:
结果显示:
-
代码展示:展示每个功能的核心代码。(此处仅展示部分)
4.1 语言切换功能
4.2 计时功能
4.3 题目的产生并计算(此处仅展示部分代表性代码)
4.4 题目对错的判断
4.5 正确率计算
4.6 题数累计
-
程序运行:程序运行及每个功能的使用截图。
5.1 语言切换功能
5.2 计时功能,题目的产生并计算,题目对错的判断,正确率计算,题数累计(一个页面便可展示完全)
5.2.1 计时上实现了动态计时,并在做题结束后显示所使用的时间; 5.2.2 点击“开始”键,题目自行产生并显示,并开始计时; 5.2.3 将答案输入文本框后,按回车,程序会对答案进行判断,并在文本框后显示是否正确; 5.2.4 答题结束后,会根据单次答题总数和单次答题正确数进行计算,并得出正确率; 5.2.5 每次的答题都会记录在文件中,主要是单次答题总数和单次答题正确数,随着做题次数的增加,记录也会随之增加,并在答题页面显示题数; 5.2.6 点击“继续”会回到主页面,进行下一次答题。
-
类图
-
PSP表格
-
小结感受:结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会。
通过这次编程,切实感受到了所谓的结对编程,在我看来,结对编程要比自己编程难多了,它考验的不是个人的编程能力,而是你在这个队伍中的协调能力,沟通交流能力,就好比代码规范,每个人的编码习惯不同,而我们在组队之后就要制定出一套需要相互配合的规则,相互制约,相互交流合作。
在我看来,这种结对编程模式也是有利有弊,利在于学到了如何去相互沟通合作,直到最后做出成果。弊在于这种模式过于浪费时间,每个人都有自己的事情要去做,想要协调到两个人都有空的时间去沟通交流就比较麻烦,也很耗时间,相较于自己编程就是自由度比较大,时间能自己把控,完成度也会比较高。