• 个人作业---四则运算生成程序


    | 班级 |


    | ---- | ---- | ---- |
    | 作业要求 |
    | 作业目标 | 学会使用markdown的使用方法 |
    | 学号 | 3180701226 |

    题目要求

    写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:

    1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24

    2)程序要求能处理用户的输入,判断对错,累积分数

    3)程序支持可以由用户自行选择加、减、乘、除运算

    4)使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目


    代码说明

    加法

    void add() //整数的加法
    {
          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("回答错误!
    ");
          wrong++;
          }
    }
    
    void Add() //真分数的加法
    {
          int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
          int a,b,c;
          zhenfenshu1_m=0+rand()%100;
          zhenfenshu1_z=0+rand()%100;
          //判断产生的真分数正确性
          while(zhenfenshu1_m<zhenfenshu1_z)
          {
              zhenfenshu1_m=0+rand()%100;
              zhenfenshu1_z=0+rand()%100;    
          }
    
          zhenfenshu2_m=0+rand()%100;
          zhenfenshu2_z=0+rand()%100;
    

    减法

    void minu() //整数减法
    {
          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("回答错误!
    ");
          wrong++;
          }
    }
    void Minu() //真分数的减法
    {
          int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
          int a,b,c;
          zhenfenshu1_m=0+rand()%100;
          zhenfenshu1_z=0+rand()%100;
          //判断产生的真分数正确性
          while(zhenfenshu1_m<zhenfenshu1_z)
          {
              zhenfenshu1_m=0+rand()%100;
              zhenfenshu1_z=0+rand()%100;    
          }
    
          zhenfenshu2_m=0+rand()%100;
          zhenfenshu2_z=0+rand()%100;
    

    乘法

    void mul() //整数乘法
    {
          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("回答错误!
    ");
                wrong++;
          }
    }
    void Mul() //真分数的乘法
    {
          int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
          int a,b,c;
          zhenfenshu1_m=0+rand()%100;
          zhenfenshu1_z=0+rand()%100;
          //判断产生的真分数正确性
          while(zhenfenshu1_m<zhenfenshu1_z)
          {
              zhenfenshu1_m=0+rand()%100;
              zhenfenshu1_z=0+rand()%100;    
          }
    
          zhenfenshu2_m=0+rand()%100;
          zhenfenshu2_z=0+rand()%100;
    

    除法

    void di() //整数除法
    {
          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("回答错误!
    ");
                wrong++;
          }
    }
    void Di() //真分数的除法
    {
          int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
          int a,b,c;
          zhenfenshu1_m=0+rand()%100;
          zhenfenshu1_z=0+rand()%100;
    
    



    运行截图

    开始界面
    开始界面
    选择界面
    选择
    运算
    运算
    运算
    运算

    个人小结

     在使用markdown语法编辑的过程中,遇到了许多问题,但在不断的修改过程中依次得到了解决,但还是有很多不足。
    在编辑过程中,还不是很熟练,但了解到了markdown语法的便捷性,感觉非常有趣,希望在以后的编辑中逐渐熟练


    psp

    psp2.1 | 任务内容 | 计划完成需要的时间(min)| 实际完成需要的时间(min) |

    • | :-: | :-: | :-: | -:
      Planing |计划 |10 |30 |
      Estimate |估计这个任务需要多少时间,
      并规划大致工作步骤 |10 | 10 |
      Development |开发| 200| 300|
      Analysis |需求分析(包括学习新技能)|30|90|
      Design Spec|生成设计文档|15|20|
      Design Review|设计审核|15|20|
      Coding Standard|代码规范|5|10|
      Design|具体设计|10|12|
      Coding|具体编码|200|200|
      Code Review|代码复核|20|20|
      Test|测试(自我测试,修改代码
      提交修改)|60|60|
      Reporting|报告|15|15|
      Test Report|测试报告|5|5|
      Size Measurement|计算工作量|20|25|
      Postmortem & Process
      Improvement|事后总结,并提出过程修改计划|5|5|

    源码

    #include<stdio.h>
    #include<math.h>
    #include<windows.h>
    #include<time.h> 
    
    
    int right=0;//答对的正确的题目个数 
    int wrong=0;//答错的题目个数
    
    void add() //整数的加法
    {
          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("回答错误!
    ");
                wrong++;
          }
    }
    
    void Add() //真分数的加法
    {
          int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
          int a,b,c;
          zhenfenshu1_m=0+rand()%100;
          zhenfenshu1_z=0+rand()%100;
          //判断产生的真分数正确性
          while(zhenfenshu1_m<zhenfenshu1_z)
          {
              zhenfenshu1_m=0+rand()%100;
              zhenfenshu1_z=0+rand()%100;    
          }
    
          zhenfenshu2_m=0+rand()%100;
          zhenfenshu2_z=0+rand()%100;
    
          //判断产生的真分数正确性
          while(zhenfenshu2_m<zhenfenshu2_z)
          {
              zhenfenshu2_m=0+rand()%100;
              zhenfenshu2_z=0+rand()%100;    
          }
          printf("请回答:
    		 %d / %d + %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
          scanf("%d",&c);
          a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
          if(a+b==c)
          {
              printf("回答正确!
    ");
              right++;
          }
          else
          {
              printf("回答错误!
    ");
              wrong++;
          }
    }
    
    void minu() //整数减法
    {
          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("回答错误!
    ");
          wrong++;
          }
    }
    void Minu() //真分数的减法
    {
          int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
          int a,b,c;
          zhenfenshu1_m=0+rand()%100;
          zhenfenshu1_z=0+rand()%100;
          //判断产生的真分数正确性
          while(zhenfenshu1_m<zhenfenshu1_z)
          {
              zhenfenshu1_m=0+rand()%100;
              zhenfenshu1_z=0+rand()%100;    
          }
    
          zhenfenshu2_m=0+rand()%100;
          zhenfenshu2_z=0+rand()%100;
    
    //判断产生的真分数正确性
          while(zhenfenshu2_m<zhenfenshu2_z)
          {
        zhenfenshu2_m=0+rand()%100;
        zhenfenshu2_z=0+rand()%100;    
          }
          printf("请回答:
    		 %d / %d - %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
          scanf("%d",&c);
          a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
          if(a-b==c)
          {
              printf("回答正确!
    ");
              right++;
          }
          else
          {
              printf("回答错误!
    ");
              wrong++;
          }
    }
    
    void mul() //整数乘法
    {
          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("回答错误!
    ");
          wrong++;
          }
    }
    void Mul() //真分数的乘法
    {
          int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
          int a,b,c;
          zhenfenshu1_m=0+rand()%100;
          zhenfenshu1_z=0+rand()%100;
    //判断产生的真分数正确性
          while(zhenfenshu1_m<zhenfenshu1_z)
          {
              zhenfenshu1_m=0+rand()%100;
              zhenfenshu1_z=0+rand()%100;    
          }
    
          zhenfenshu2_m=0+rand()%100;
          zhenfenshu2_z=0+rand()%100;
    
    //判断产生的真分数正确性
    while(zhenfenshu2_m<zhenfenshu2_z)
    {
        zhenfenshu2_m=0+rand()%100;
        zhenfenshu2_z=0+rand()%100;    
    }
    printf("请回答:
    		 %d / %d * %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
    a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;     
    scanf("%d",&c);
    if(a*b==c)
    {
        printf("回答正确!
    ");
        right++;
    }
    else
    {
        printf("回答错误!
    ");
        wrong++;
    }
    }
    void di() //整数除法
    {
          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("回答错误!
    ");
          wrong++;
          }
    }
    void Di() //真分数的除法
    {
          int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
          int a,b,c;
          zhenfenshu1_m=0+rand()%100;
          zhenfenshu1_z=0+rand()%100;
    //判断产生的真分数正确性
    while(zhenfenshu1_m<zhenfenshu1_z)
    {
        zhenfenshu1_m=0+rand()%100;
        zhenfenshu1_z=0+rand()%100;    
    }
    
    zhenfenshu2_m=0+rand()%100;
    zhenfenshu2_z=0+rand()%100;
    
    //判断产生的真分数正确性
    while(zhenfenshu2_m<zhenfenshu2_z)
    {
        zhenfenshu2_m=0+rand()%100;
        zhenfenshu2_z=0+rand()%100;    
    }
    printf("请回答:
    		 %d / %d ÷ %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
    scanf("%d",&c);
    a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
    if(a/b==c)
    {
        printf("回答正确!
    ");
        right++;
    }
    else
    {
        printf("回答错误!
    ");
        wrong++;
    }
    }
    int main(void)
    {
          int choise,bot;
          srand(time(NULL)); //随机数每次循环都不一样
          int con=0;
          printf("
    			小学简易四则运算
    
    ");
          while(1)
          {
          if(con==0)
          {
                printf("	请选择:
    ");
                printf("		 整数计算(请输入1)
    		真分数计算(请输入2)
    ");
                scanf("%d",&choise);
                switch(choise)
                {
                case 1:
                printf("			 加法运算(请输入1)
    ");
                printf("			 减法运算(请输入2)
    ");
                printf("			 乘法运算(请输入3)
    ");
                printf("			 除法运算(请输入4)
    ");
                printf("			 退出运算(请输入5)
    ");
                scanf("%d", &bot);
                switch(bot)
                {
                case 1:
                add();
                break;
                case 2:
                minu();
                break;
                case 3:
                mul();
                break;
                case 4:
                di();
                break;
                case 5:
                return 0; 
                }
          break;
                case 2:
                printf("			 加法运算(请输入1)
    ");
                printf("			 减法运算(请输入2)
    ");
                printf("			 乘法运算(请输入3)
    ");
                printf("			 除法运算(请输入4)
    ");
                printf("			 退出运算(请输入5)
    ");
                scanf("%d", &bot);
                switch(bot)
                {
                case 1:
                Add();
                break;
                case 2:
                Minu();
                break;
                case 3:
                Mul();
                break;
                case 4:
                Di();
                break;
                case 5:
                return 0; 
                }
          break;
              }
          }
          if(con==1)
        {
            switch(choise)
              {
                  case 1:
                      printf("			  加法运算(请输入1)
    ");
                      printf("			  减法运算(请输入2)
    ");
                      printf("			  乘法运算(请输入3)
    ");
                      printf("			  除法运算(请输入4)
    ");
                      printf("			  退出运算(请输入5)
    ");
                      scanf("%d", &bot);
                      switch(bot)
                      {
                          case 1:
                              add();
                               break;
                          case 2:
                               minu();
                              break;
                          case 3:
                               mul();
                               break;
                          case 4:
                               di();
                               break;
                          case 5:
                               return 0;    
                    }
                    break;
                case 2:
                      switch(bot)
                      {
                          case 1:
                              Add();
                               break;
                          case 2:
                               Minu();
                              break;
                          case 3:
                               Mul();
                               break;
                           case 4:
                               Di();
                               break;
                          case 5:
                               return 0;    
                    }
                    break;
    
              }
        }
          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("抱歉!,你输入的指令有误!请重新输入!
    ");
    }
    fflush(stdin);   //清空输入缓冲区
    printf("您总共完成了 %d 道题
    正确 %d 道
    错误 %d 道
    ",right+wrong,right,wrong);
    }
    
  • 相关阅读:
    BiliBili, ACFun… And More!【递归算法】
    【VS2015】关于VS2015如何运行的问题
    【打死树莓派】-树莓派3代jessie+Opencv-解决安装不了libgtk2.0-dev包问题
    插入排序2.0
    【C++小白成长撸】--(续)单偶数N阶魔方矩阵
    【C++小白成长撸】--(续)双偶数N阶魔阵
    安装 python-opencv
    二叉树打印
    Kotlin接口
    Kotlin 继承
  • 原文地址:https://www.cnblogs.com/jsj182zfj/p/13937437.html
Copyright © 2020-2023  润新知