zoukankan      html  css  js  c++  java
  • 实验二 结对编程 第二阶段

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

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

    二 、实验内容

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

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

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

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

          实验分析:

          问题:开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。

          规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。

          要求:总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分。

         实验内容应该包括:

         1、代码规范
         2、程序的总体设计(附图说明模块之间的关系)
         3、程序结对编程过程(附图)及功能实现情况(附代码和图)
         4、项目github地址(附图)
         5、实验总结

    三、实验过程

          1、代码规范

          本次实验采用C语言实现,实验前查找了有关C语言的相关代码规范。

          程序块要采用缩进风格编写,缩进的空格数为4个
          相对独立的程序块之间、变量说明之后必须加空行
          较长的语句要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当缩进,使排版整齐,语句可读。
          不允许把多个短语句写在一行中,即一行只写一条语句。
          if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。
          对齐只使用空格键,不使用TAB键。
          函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。
          一行程序以小于80字符为宜,不要写得过长。

          此外,还有注释规范,函数,标识符等规范。

          参考资料:https://blog.csdn.net/qq_39759656/article/details/82289019

          2、程序的总体设计

          问题:开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。

          规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。

          要求:总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分。

          本次实验使用C语言操作,先进行了变量的定义,包括操作数、运算符等,之后循环输出运算式。

          用户根据屏幕显示的运算式进行计算并输入结果,程序判断对错。10道题目完成后,统计结果。

          程序流程图:

                          

           3、程序结对编程过程及功能实现情况

         (1)结对编程的过程

           我们先进行了讨论,决定使用C语言为编程工具,最后一起研究了实验的需求,讨论了代码各模块的具体运行

           最后采用在线讨论和远程控制,一起完成实现了程序的编写。

                   

          (2)功能实现

            实验截图

            

           源代码

          #include <stdio.h>
          #include <time.h>

          int main()
          {
          int a,b,m,n; //a,b为操作数,m为运算结果,n为用户输入结果
          char c; //c为四则运算操作
          int i,sum=0; //i为题目数量,sum为正确数目
          srand(time(0)); //初始化随机数发生器

          //**主界面显示
          printf(" 亓帅 & 王旭 ");
          printf(" ********************欢迎使用小学四则运算******************** ");

          //**生成随机题目
          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((m=a+b)>100)
          {
          a=rand()%100+1;
          b=rand()%100+1;
          }
          printf("%d + %d = ",a,b);
          break;
          case 1: //约束差
          while(a>100||b>100)
         {
          a=rand()%100+1;
          b=rand()%100+1;
          }
          if(a<b)
          {
          m=a;
          a=b;
          b=m;
           }
          m=a-b;
          printf("%d - %d = ",a,b);
          break;
          case 2: //约束积
          while((m=a*b)>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))
          {
          a=rand()%100+1;
          b=rand()%100+1;
          }
          if(a<b)
          {
          m=a;
          a=b;
          b=m;
          }
          a=(a/b)*b;
          m=a/b;
          printf("%d ÷ %d = ",a,b);
          break;
          }

          //**用户输入计算结果
          scanf("%d",&n);
          if(m==n)
          {
          sum++;
          printf(" 正确 ");
          }
          else
          printf(" 错误 ");
          }

          //**结果统计
          printf(" 答对 %d 题,得分:%d",sum,sum*10);
          if(sum == 10)
          printf(" 恭喜你取得满分!!! GREAT ");
          else if(sum>=60 & sum<100)
          printf(" 成绩不错,继续保持!");
          else
          printf(" 再接再厉,给自己加加油吧!");
          printf(" ");
          return 0;
          }

          4、项目github地址

          源仓库的地址为:https://github.com/3170701304wx/sizeyunsuan

          仓库截图:

          

          5、实验总结

          本次实验让我明白了结对编程的操作,以及结对编程的意义。通过团队的合作,进行代码的构思,以及程序的编写,大大提高了编程的效率和容错率。

          实验采用了C语言进行操作,使我对C语言的规范以及C语言的应用有了进一步的掌握。

          感谢我的队友,以及同学的帮助,相信在之后的实验中,我将会更好的发挥。

  • 相关阅读:
    Android开发学习一:环境搭建
    Python Challenge
    Python Challenge
    Python Challenge
    Centos中的mysql安装以及配置
    linux查询日志内容命令
    搭建elasticsearch过程中遇到的问题
    启动kafka后闪退
    zookeeper环境搭建
    nginx安装
  • 原文地址:https://www.cnblogs.com/qishuai123/p/12640700.html
Copyright © 2011-2022 走看看