结对编程 第二阶段报告

一、实验目标
  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等等。除了技术上的,结对编程也锻炼了我的交流、合作能力,明白了独立思考不代表固守己见,学会接受别人的建议是一种良好的品德。

posted @ 2020-04-05 20:46  oqmyga  阅读(130)  评论(0编辑  收藏  举报