zoukankan      html  css  js  c++  java
  • 结对编程(阶段二)

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

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

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

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

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

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

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

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

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

    函数功能流程图如下:

     

     

    实验代码初稿:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    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<b)             //被减数大于减数
                {
                    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<b)           //被除数必须大于除数
                {
                    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("正确 ");
            }
            else
                printf("错误 ");

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



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

        课题主体思想讨论如下:

     

     

     

     

     

     运行结果:

     

     

     

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

     

     

     

    4、项目github地址(附图)

     

     

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


    5、实验总结

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

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

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

  • 相关阅读:
    MySQL面试题-基础
    IDEA 创建Spring项目后org.springframework.boot报错
    IDEA上传项目到SVN
    解决:idea中右键项目找不到subversion
    关于fromdata的上传文件问题
    PHP清除数组中为0的元素
    PHP删除数组中重复的元素
    PHP代码篇(六)--如何根据邀请人id查询满足条件的会员上级
    PHP对URL进行字符串编码
    PHP时间戳相互转换
  • 原文地址:https://www.cnblogs.com/zjs123/p/12631893.html
Copyright © 2011-2022 走看看