《构建之法》第二次作业

一、题目

请编写一个能自动生成小学四则运算题目的 “软件”。
让程序能接受用户输入答案,并判定对错。
最后给出总共 对/错 的数量。

二、需求分析

    本程序适合小学生,锻炼自己的运算能力。练习的软件。

三、   基本需求

1、  显示题目数量

2、  逐个自动显示题目

3、  用户可以逐题解答

4、  显示答题对错

5、统计对错数量 

四、代码实现

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

void main()

    int a,b,c,d;

    int total1=0,total2=0; 

    while(true) 

   {    

      srand(time(NULL));

        d=a=rand()%100;

        b=(rand()%a+a)%100;

        if(a%4==1&&a<b)

        c=a,a=b,b=c;

        if(b==0&&a%4==3)

        b=rand()%10+1;

        if(a%4==3&&a%b!=0)

      {

        srand(time(0)); 

            a=b*(rand()%a);

      } 

        switch(d%4)

      {   

            case 0:

           {

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

              break;

           }

            case 1:

           {

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

              break;

           }

            case 2:

           {

              printf("%d × %d = ",a,b);

              break;

           }

            case 3:

           {

              printf("%d ÷ %d = ",a,b);

               break;

           }

      } 

      scanf("%d",&c);

        switch(d%4)

      { 

      case 0:

        {

           if(c==a+b)

           {

              printf("正确 ");

                    total1++;

           }

           else

           {

              printf("错误 ");total2++;

           }

           break;

        }

      case 1:

        {

           if(c==a-b)

           {

                printf("正确 ");

                     total1++;

           }

                else

           {

                     printf("错误 ");

                    total2++;

           }

               break; 

        }

       case 2:

         {

            if(c==a*b)

          {

            printf("正确 ");

                 total1++;

          }

              else

          {

               printf("错误 ");

               total2++;

          }

             break;

         }

      case 3:

        {

          if(c==a/b)

         {

            printf("正确 ");

                 total1++;

         }

             else

         {

                 printf("错误 ");

                 total2++;

         }

             break;

             printf("按任意键继续,Q退出! ");

            fflush(stdin); 

             if(getchar()=='Q')

            break;

        }  

      }

      printf("你答对了%d道题,答错%d道题 ",total1,total2);

   }

}

五、程序运行截图

 

 

六、分析和总结

本题目,主要是设计这块比较重要,我充分感觉到一个程序不止是编程,其实设计分析更重要。

七、PSP统计表格

Personal Software Process Stages

耗时

耗时百分比

需求分析

 12

 15.38%

设计

 18

 23.08%

代码实现

 27

 34.62%

测试

 3

 3.85%

分析总结

 18

 23.07%

原文地址:https://www.cnblogs.com/zhangying123/p/4399787.html