结对编程——四则运算

发布时间 2023-04-11 00:19:43作者: worldLing

本次结对编程由本人和2152709共同未完成。

  程序代码:

       #include <stdio.h>

  #include <time.h>

  #include <stdlib.h>

  #include <conio.h>

  #include<math.h>

  void menu();

  int main()

  {

      system("cls");

      menu();

         eturn 0;

  }

  void addtion()

  {

      int a,b,i,d,number;

      srand ( (unsigned) time (NULL) );

      system("cls");

      printf("\t请输入题目数!\n\t\t");

         scanf("%d",&number);

      getchar();

      printf("\t程序将会随机出题,请输入正确答案!\n\t\t");

      for(i=0;i<number;i++)

      {

          a=rand()%100;

          b=rand()%100;

              if(a+b>=100)

              {

                     i--;

                     continue;

              }

          printf("\n\t%d + %d=",a,b);

          scanf("%d",&d);

          if(d==a+b)

          {

              printf("\t恭喜答对了\n");

          }

          else printf("\t很可惜,错了哦!答案是%d\n",a+b);

      }

      printf("\t你已经做完测试,请按任意键返回菜单\n");

      getch();

   }

 

  void subtraction()

  {

      int a,b,i,d,number;

      srand ( (unsigned) time (NULL) );

      system("cls");

        printf("\t请输入题目数!\n\t\t");

        scanf("%d",&number);

      getchar();

      printf("\t程序将会随机出题,请输入正确答案!\n\t\t");

      for(i=0;i<number;i++)

      {

           a=rand()%100;

          b=rand()%100;

              if(a-b<=0)

              {

                     i--;

                     continue;

              }

           printf("\n\t%d - %d=",a,b);

          scanf("%d",&d);

          if(d==a-b)

          {

              printf("\t恭喜答对了\n");

          }

          else printf("\t很可惜,错了哦!答案是%d\n",a-b);

       }

          printf("\t你已经做完测试,请按任意键返回菜单\n");

         getch();

  }

 

  void multiply()

 {

      int a,b,i,d,number;

      srand ( (unsigned) time (NULL) );

      system("cls");

        printf("\t请输入题目数!\n\t\t");

        scanf("%d",&number);

      getchar();

      printf("\t程序将会随机出题,请输入正确答案!\n\t\t");

      for(i=0;i<number;i++)

      {

          a=rand()%100;

          b=rand()%100;

                if(a*b>=100)

              {

                     i--;

                     continue;

              }

          printf("\n\t%d * %d=",a,b);

          scanf("%d",&d);

          if(d==a*b)

         {

              printf("\t恭喜答对了\n");

          }

             else printf("\t很可惜,错了哦!答案是%d\n",a*b);

     }

      printf("\t你已经做完测试,请按任意键返回菜单\n");

      getch();

   }

 

   void division()

  {

      int i,a,b,number,c,f,g;

        double d,e;

        srand ( (unsigned) time (NULL) );

      system("cls");

         printf("\t请输入题目数!\n\t\t");

         scanf("%d",&number);

      getchar();

           printf("\t是否整除?(是1/否0)\n\t\t");

        scanf("%d",&c);

      getchar();

      printf("\t程序将会随机出题,请输入正确答案!\n\t\t");

  if(c==0)

 {

         for(i=0;i<number;i++)

      {

          a=rand()%100;

          b=rand()%100;

              if((a<b)||b==0||a%b==0)

             {

                     i--;

                     continue;

              }

          printf("\n\t%d / %d=",a,b);

          e=(a*1.0)/b;

          scanf("%lf",&d);

          if(fabs(e-d)<0.001)

        {

            printf("\t恭喜答对了\n");

        }

        else

                     printf("\t很可惜,错了哦!答案是%.2lf\n",e);

      }

       printf("\t你已经做完测试,请按任意键返回菜单\n");

        getch();

    }

         else

  {

               for(i=0;i<number;i++)

      {

          a=rand()%100;

          b=rand()%100;

            if(a<b||b==0||a%b!=0)

            {

                   i--;

                   continue;

            }

          printf("\n\t%d / %d=",a,b);

              g=a/b;

            scanf("%d",&f);

          if(g==f)

          {

              printf("\t恭喜答对了\n");

          }

          else printf("\t很可惜,错了哦!答案是%d\n",a/b);

     }

       printf("\t你已经做完测试,请按任意键返回菜单\n");

         getch();

  }

   }

  void menu()

  {

       int i;

    printf("\n\n\t******************************\n");

           printf("\t*  欢迎使用四则运算练习软件  *\n");

      printf("\t*          1- 加法           *\n");

      printf("\t*          2- 减法           *\n");

      printf("\t*          3- 乘法           *\n");

      printf("\t*          4- 除法           *\n");

      printf("\t*          0- 退出           *\n");

      printf("\t******************************");

      i=getch();

      switch(i)

       {

          case '1':addtion();break;

          case '2':subtraction();break;

          case '3':multiply();break;

          case '4':division();break;

          case '0':exit(0);break;

          default:system("cls");printf("\n\t\t请输入1~4!\n\n\n");getch();break;

      }

     main();

 }

部分结果截图:

 

 

心得体会:

这次结对编程让我感受到结对在花的时间上小于一个人,这是因为和队友一起讨论题目要求、制定方案可行性,远比一个人效率高。而在写程序的时候,队友在一旁监督能极大的减少手误。并且出现bug时,两个人一起思考流程,找出错误原因的效率高于一个人。而且有的时候虽然会出现流程设计上的分歧,但是不同的设计方案,反而拓宽了思路。并且如果之后要重构,也可以快速的采用另一种方案。