• 第二次作业


      • 题目:

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

        需求分析:

        • 基本功能

          • 用户可选择加减乘除一种算法进行测试
          • 测试后软件给出判读,若用户回答错误时软件给出正确答案
          • 在最后结束用户选择退出时软件统计本次用户的测试数目正确与错误次数各多少

        设计

        • 用四个子函数分别写出加减乘除的运算
        • 主函数中用switch选择调用.

        代码实现

        #include<stdio.h>
        #include<math.h>
        #include<windows.h>
        int right=0;
        int wrong=0;
        void jia()
        {
         int a,b,c;
         a=rand()%100;
         b=rand()%100;
         printf("请回答:
         %d + %d = ",a,b);
         scanf("%d",&c);
         if(a+b==c)
         {
          printf("回答正确!
        ");
          right++;
         }
         else
         {
          printf("回答错误!正确答案是:%d
        ",a+b);
          wrong++;
         }
        }
        void jian()
        {
         int a,b,c;
         a=rand()%100;
         b=rand()%100;
         printf("请回答:
        %d - %d = ",a,b);
         scanf("%d",&c);
         if(a-b==c)
         {
          printf("回答正确!
        ");
          right++;
         }
         else
         {
          printf("回答错误!正确答案是:%d
        ",a-b);
          wrong++;
         }
        }
        void cheng()
        {
         int a,b,c;
         a=rand()%100;
         b=rand()%100;
         printf("请回答:
        %d * %d = ",a,b);
         scanf("%d",&c);
         if(a*b==c)
         {
          printf("回答正确!
        ");
          right++;
         }
         else
         {
          printf("回答错误!正确答案是:%d
        ",a*b);
          wrong++;
         }
        }
        void chu()
        {
         int a,b,c;
         a=rand()%100;
         b=rand()%100;
         printf("请回答:
        %d / %d = ",a,b);
         scanf("%d",&c);
         if(a/b==c)
         {
          printf("回答正确!
        ");
          right++;
         }
         else
         {
          printf("回答错误!正确答案是:%d
        ",a/b);
          wrong++;
         }
        }
        void main()
        {
         int choise;
         int con=0;
         printf("
        			提示选择之后请按回车键");
         while(1)
         {
          printf("请选择:
        ");
          printf("加法运算请输入1
        ");
          printf(" 减法运算请输入2
        ");
          printf(" 乘法运算请输入3
        ");
          printf(" 除法运算请输入4
        ");
          printf("退出运算请输入5
        ");
          if(con==0)
           scanf("%d",&choise);
          switch(choise)
          {
          case 1:
           jia();
           break;
          case 2:
           jian();
           break;
          case 3:
           cheng();
           break;
          case 4:
           chu();
           break;
          case 5:
           return;
          }
          printf("
        继续运算请输入1
        ");
          printf("
        重新选择请输入2
        ");
          printf("
        退出运算请输入3
        ");
          scanf("%d",&con);
          if(con==1)
           con=1;
          else if(con==2)
           con=0;
          else if(con==3)
           break;
          else
           printf("输入有误请按提示选择输入
        ");
         }
         printf("您总共完成了 %d 道题
        正确 %d 道
        错误 %d 道
        ",right+wrong,right,wrong);
        }

        程序截图

         

        分析与总结

        • PSP耗时统计

          步骤

          耗时

          百分比

          需求分析

          5

          8。065

          设计

          15

          24.193

          代码实现

          30

          48.387

          测试

          9

          14.516

          分析和总结

          3

          4.839

        • 分析

          • 首先最基本的是要有四则运算,能设计出软件自动提供数据让用户进行测试,测试事要考虑用户的需求,即可用让用户自己选择要进行哪种运算。因为是测试软件,所以软件需要有判断功能,并且当用户回答错误时,可用向用户提供正确答案。考虑到测试,就有考虑用户测试时的水平,即做题的正确率。所以软件在用户结束测试时要可用统计出用户做了多少题,正确与错误分别是多少道
        • 总结

          • 拿到题目时最开始只想到用switch来选择四个运算。一开始是将四个运算分别写在switch语句中,但最后在选择和继续运算时发现这样写不好实现后面的再选择和继续,在同学的提示下用了子函数来写四个运算,对于统计错与对的数目时一开始也无从下手。基础太薄弱,以后会多加练习
  • 相关阅读:
    Tornado @tornado.gen.coroutine 与 yield
    ThreadPoolExecutor执行任务,异常日志缺失问题
    Mybatis关联查询<association> 和 <collection>
    Spring整合mybatis
    Jedis操作Redis--Key操作
    Jedis操作Redis--SortedSet类型
    Jedis操作Redis--Set类型
    同义词 “stop from”,“keep from”和“prevent from”的区别
    test
    Python win32gui调用窗口到最前面
  • 原文地址:https://www.cnblogs.com/lpzm/p/4411754.html
Copyright © 2020-2023  润新知