实验目标
1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
实验内容
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
实验过程
角色分工
驾驶员 领航员
前期 何国行 汤友丽
中期 汤友丽 何国行
后期 何国行 汤友丽
1、代码规范
-编码:采用utf-8编码
-代码格式:使用空格进行缩进;控制行宽,方便查看代码;留有空行,使代码看起来清晰明了
-注释:注释部分与代码主体部分留有空格,使清晰明了;注释部分尽量不换行,以免产生误解;不做无意义的注释
-命名规范:各函数、变量、类命名时统一格式
2、程序的总体设计
此程序模块之间的关系(附图):
3、程序结对编程过程及功能实现情况
1)陈旧代码:
在本次实验中,我们对于实验代码进行了不同方向的探索与完善,最终统一了实验代码。下面为我们第一次的代码:
代码主要问题有:
我们所用的开发平台pycharm和所用的在线编辑工具ideone不兼容;
部分功能未实现,如统计功能;
为满足四则运算结果和与积小于等于100。
后来我们又讨论如何解决问题,继续完善代码
2)在线合作编辑
附图:
我们所使用的在线编辑可以完成共同编辑的目的,在编辑工具下我们进行通讯完善代码,然后将所完善的内容在编辑器上进行填充,已达到让双方可以实时观看到结果的目的,以此循环,直至代码完全结束。
merge截图
3)最终代码:(主要代码部分)
def szys(): sym = ['+', '-', '×', '÷'] f = random.randint(0, 3) n1 = random.randint(0, 100) n2 = random.randint(0, 100) result = 0 if f == 0: # 加法 result = n1 + n2 if result >= 100: result = szys() return result elif f == 1: # 减法,要先比较大小,防止输出负数 n1, n2 = max(n1, n2), min(n1, n2) result = n1 - n2 if result >= 100: result = szys() return result elif f == 2: # 乘法 result = n1 * n2 if result >= 100: result=szys() return result elif f == 3: # 除法,要比较大小,并循环取整除 n1, n2 = max(n1, n2), min(n1, n2) while n1 % n2 != 0: n1 = random.randint(1, 10) n2 = random.randint(1, 10) n1, n2 = max(n1, n2), min(n1, n2) result = int(n1 / n2) if result >= 100: result = szys() return result if result <= 100: print(n1, sym[f], n2, '= ') return result
运行结果如下(附图):
4、项目github地址:https://github.com/heguohang/pair_programming
附图:
实验小结
实验初我们是想用pycharm编辑代码,但是结对起来比较困难。后来我在网上看到了在线编程平台,可以协同编辑代码。和队友商议使用后觉得可以,再结合qq聊天完成了本次结对编程。一共迭代了三次版本的代码,第一次的未完成产生指定题目的功能,第二次未能使运算结果的和与积小于或等于100。通过本次结对编程,了解到了结对编程中两人相互合作的重要性。