zoukankan      html  css  js  c++  java
  • 四则运算

    班级软件工程
    作业要求 个人作业-四则运算生成程序
    作业目标 实现四则运算
    学号 3180701224

    题目要求

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

    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 计划 30 35
    Estimate 估计这个任务需要多少时间,
    并规划大致工作步骤
    10 10
    Development 开发 200 300
    Analysis 需求分析(包括学习新技能) 30 90
    Design Spec 生成设计文档 15 25
    Design Review 设计审核 15 30
    Coding Standard 代码规范 10 10
    Design 具体设计 10 20
    Coding 具体编码 200 300
    Code Review 代码复核 20 20
    Test 测试(自我测试,修改代码
    提交修改)
    60 60
    Reporting 报告 15 15
    Test Report 测试报告 5 5
    Size Measurement 计算工作量 25 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);
  • 相关阅读:
    元组tuple
    列表list
    day11---闭包函数
    day10函数对象,嵌套,名称空间,作用域
    day10函数对象,嵌套,名称空间,作用域
    day--函数
    day8--文件管理2
    day ---7,文件管理
    day7,文件编码
    day6---字典,集合内置方法
  • 原文地址:https://www.cnblogs.com/p-x-y/p/13942590.html
Copyright © 2011-2022 走看看