一、实验目标
1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
二 、实验内容
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
1、代码规范
- 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。
- 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。
- 尽量使用标准库函数和公共函数。
- 不要随意定义全局变量,尽量使用局部变量。
- 使用括号以避免二义性。
- 可读性第一,效率第二。
- 保持注释与代码完全一致。
- 每个源程序文件,都有文件头说明,说明规格见规范。
- 每个函数,都有函数头说明,说明规格见规范。
- 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义
2、程序的总体设计
程序流程图:
3、程序结对编程过程及功能实现情况
刚开始我们确定了选题为四则运算,用C语言实现,不过后来实验中觉得用Python比较好就更改了实验环境。
代码:
import random
#四则运算
def szys():
sym = ['+', '-', '×', '÷']
f= random.randint(0, 3)
n1 = random.randint(1, 10)
n2 = random.randint(1, 10)
result = 0
if f== 0:#加法
result = n1 + n2
elif f == 1:#减法,要先比较大小,防止输出负数
n1, n2 = max(n1, n2), min(n1, n2)
result = n1 - n2
elif f== 2:#乘法
result = n1 * n2
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)
print(n1, sym[f], n2, '= ', end='')
return result
#输入题目数量并开始生成对应数量的题目
def test():
sym = ['+', '-', '×', '÷']
print('输入所需要的题目数量:')
n=int(input())
result =[]
m=0
i=1
j=0
while m<=(n-1):
print(m+1,end='、')
result .append(szys())
s=int(input())
if s == result[m] :
print('正确,得10分')
j=j+10*i
else:
print('错误,不得分,正确答案是', result[m] )
m=m+1
print('答对题数为:' , int(j/10))
print('总计得分为:' , j )
test()
运行结果:
4、项目github地址:https://github.com/zhuxuantu/sizeyunsuan/tree/szys
5、实验总结
第一次两个人一起做编程实验,而且由于疫情的原因还是通过远程操作完成的实验,也是一个难得的体验,虽然困难重重,遇到了不少问题,但人多力量大,就算两个人解决不了的还有CSDN、博客园等网站上众多的先行者们,通过借鉴他们的智慧解决难题后获益匪浅。
通过结对编程实验,我学会了很多东西,比如如何远程操作他人的电脑,又比如之前仅仅是用来查找项目的github,这次知道了怎样创建仓库、怎样fork等等。除了技术上的,结对编程也锻炼了我的交流、合作能力,明白了独立思考不代表固守己见,学会接受别人的建议是一种良好的品德。
来源:https://www.cnblogs.com/oqmyga/p/12638954.html