结对编程(阶段二)

一、实验目标
  1)体验敏捷开发中的两人合作。

  2)进一步提高个人编程技巧与实践。

二 、实验内容
  1)根据以下问题描述,练习结对编程(pair programming)实践;

  2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。

  3)要求在结对编程工作期间,两人的角色至少切换 4 次;

  4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。

博客内容应该包括:
1、代码规范

  • 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。
  • 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。
  • 尽量使用标准库函数和公共函数。
  • 不要随意定义全局变量,尽量使用局部变量。
  • 使用括号以避免二义性。
  • 可读性第一,效率第二。
  • 保持注释与代码完全一致。
  • 每个源程序文件,都有文件头说明,说明规格见规范。
  • 每个函数,都有函数头说明,说明规格见规范。
  • 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义

2、程序的总体设计(附图说明模块之间的关系)

函数功能流程图如下:

结对编程(阶段二)_第1张图片

 

 

实验代码初稿:

#include
#include
#include
int main()
{
    int a,b,d,t;    //定义两个操作数a,b,结果d,输入结果t
    char c;         //运算符c可取“+、-、×、÷”
    int i,sum=0;    //题目数量i,答对数目sum
    srand(time(0)); //初始化随机数发生器
    /**< 产生数据 */
    for(i=0;i<10;i++)
    {
        a=rand()%100+1;
        b=rand()%100+1;
        c=rand()%4;     //0表加,1表减,2表乘,3表除

        /**< 数据合格判断及算式显示 */
        printf("第%d题:",i+1);
        switch(c)
        {
        case 0:
            while((d=a+b)>100)    //保证和在100内
            {
                a=rand()%100+1;
                b=rand()%100+1;
            }
            printf("%d + %d = ",a,b);
            break;
        case 1:
            while(a>100||b>100) //被减数小于100
            {
                a=rand()%100+1;
                b=rand()%100+1;
            }
            if(a            {
                d=a;
                a=b;
                b=d;
            }
            d=a-b;
            printf("%d - %d = ",a,b);
            break;
        case 2:
            while((d=a*b)>100)    //保证积小于100
            {
                a=rand()%100+1;
                b=rand()%100+1;
            }
            printf("%d × %d = ",a,b);
            break;
        case 3:
            while(a>100||b>100||(a*b==0))   //保证被除数小于100且除数不为0
            {
                a=rand()%100+1;
                b=rand()%100+1;
            }
            if(a            {
                d=a;
                a=b;
                b=d;
            }
            a=(a/b)*b;      //保证整除
            d=a/b;
            printf("%d ÷ %d = ",a,b);
            break;
        }
        /**< 输入你的计算结果 */
        scanf("%d",&t);
        if(d==t)
        {
            sum++;
            printf("正确\n");
        }
        else
            printf("错误\n");

    }
    /**< 输出答对题数和得分 */
    printf("答对 %d 题,得分:%d\n",sum,sum*10);
    return 0;
}



3、程序结对编程过程(附图)及功能实现情况(附代码和图)

    课题主体思想讨论如下:

结对编程(阶段二)_第2张图片

 

 

 

 

 

 

 

 

 

 运行结果:

 

 结对编程(阶段二)_第3张图片

 

 

 

如图代码实现了随机生成四则运算,判断结果正确与错误,并统计结果输出结果得分。

 

 

 

4、项目github地址(附图)

结对编程(阶段二)_第4张图片

 

 

源代码仓库地址:https://github.com/yangchen-6/test/blob/master/2.c


5、实验总结

  •    第一次进行结对编程实验还是遇到了不少问题,由于疫情的原因和队友之间只能利用QQ进行交流。
  •   此次实验初步使我了解了github,两个人之间相互交流也使得实验进行的比较顺利。
  •   对于不同习惯的伙伴,要互相理解。不以自我中心。
  •   不要为了坚持己见而坚持己见,要学会换位思考,最好先按照别人的思路走一遍别人的方法。
  •   要求伙伴和自己一起攻克难题之前,先确定一下伙伴是否正在进行一个不能打断的思路。
  •        通过这次的结对编程实验为今后会遇到的结对协作打下了基础,在今后的协作中能尽量减少问题。

上一阶段博客地址: 杨琛 (https://www.cnblogs.com/yc123/)

          张建生(https://www.cnblogs.com/zjs123/)

你可能感兴趣的:(结对编程(阶段二))