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

    主要功能:实现小学生四则运算的功能。

    设计思想:考虑到小学生的运算能力,可以让小学生自己选择四则运算的种类,以及运算的位数,答完题后,系统自动判断对错。

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int add(int num1,int num2)//加法
    {
     return num1+num2;
    }
    int subtraction(int num1,int num2)//减法
    {
     return num1-num2;
    }
    int mul(int num1,int num2)//乘法
    {
     return num1*num2;
    }
    float divis(int num1,int num2)//除法
    {
     return ((int)(((float)num1/num2)*100+0.5))/100.0;
    }
    int main()
    { 
     int type = -1;
     int data = -1;
     int choice,num1,num2,results;
     float div_result;
     int right = 0;
     int wrong = 0;
     char ch;
     printf("欢迎进入四则运算题,现在开始爆发你的小宇宙吧!
    ");
     srand((unsigned int)time(NULL));
     while(1)
     {
      printf("请选择运算类型:1.加法  2.减法  3.乘法  4.除法(保留两位小数)
    ");
      scanf("%d",&choice);
      printf("请选择位数:1.一位数  2.两位数
    ");
      scanf("%d",&data);
      switch (choice)
      {
      case 1:
       if(data == 1)
       {
        num1 = rand()%10;
        num2 = rand()%10;
        printf("%d + %d=__?__
    ",num1,num2);
        scanf("%d",&results);
        if(results == add(num1,num2))
        {
         printf("回答正确!
    ");
         right++;
        }
        else
        {
         printf("回答错误!
    ");
         wrong++;
        }
        printf("是否继续?y/n
    ");
        getchar();
        scanf("%c",&ch);
        if(ch == 'y')
         break;
        else if(ch == 'n')
         goto end;
       }
       else if (data == 2)
       {
        num1 = rand()%100;
        num2 = rand()%100;
        printf("%d + %d=__?__
    ",num1,num2);
        scanf("%d",&results);
        if(results == add(num1,num2))
        {
         printf("回答正确!
    ");
         right++;
        }
        else
        {
         printf("回答错误!
    ");
         wrong++;
        }
        printf("是否继续?y/n
    ");
        getchar();
        scanf("%c",&ch);
        if(ch == 'y')
         break;
        else if(ch == 'n')
         goto end;
       }
       break;
      case 2:
       if(data == 1)
       {
        num1 = rand()%10;
        num2 = rand()%10;
        printf("%d - %d=__?__
    ",num1,num2);
        scanf("%d",&results);
        if(results == subtraction(num1,num2))
        {
         printf("回答正确!
    ");
         right++;
        }
        else
        {
         printf("回答错误!
    ");
         wrong++;
        }
        printf("是否继续?y/n
    ");
        getchar();
        scanf("%c",&ch);
        if(ch == 'y')
         break;
        else if(ch == 'n')
         goto end;
       }
       else if (data == 2)
       {
        num1 = rand()%100;
        num2 = rand()%100;
        printf("%d - %d=__?__
    ",num1,num2);
        scanf("%d",&results);
        if(results == subtraction(num1,num2))
        {
         printf("回答正确!
    ");
         right++;
        }
        else
        {
         printf("回答错误!
    ");
         wrong++;
        }
        printf("是否继续?y/n
    ");
        getchar();
        scanf("%c",&ch);
        if(ch == 'y')
         break;
        else if(ch == 'n')
         goto end;
       }
       break;
      case 3:
       if(data == 1)
       {
        num1 = rand()%10;
        num2 = rand()%10;
        printf("%d * %d=__?__
    ",num1,num2);
        scanf("%d",&results);
        if(results == mul(num1,num2))
        {
         printf("回答正确!
    ");
         right++;
        }
        else
        {
         printf("回答错误!
    ");
         wrong++;
        }
        printf("是否继续?y/n
    ");
        getchar();
        scanf("%c",&ch);
        if(ch == 'y')
         break;
        else if(ch == 'n')
         goto end;
       }
       else if (data == 2)
       {
        num1 = rand()%100;
        num2 = rand()%100;
        printf("%d * %d=__?__
    ",num1,num2);
        scanf("%d",&results);
        if(results == mul(num1,num2))
        {
         printf("回答正确!
    ");
         right++;
        }
        else
        {
         printf("回答错误!
    ");
         wrong++;
        }
        printf("是否继续?y/n
    ");
        getchar();
        scanf("%c",&ch);
        if(ch == 'y')
         break;
        else if(ch == 'n')
         goto end;
       }
       break;
      case 4:
       if(data == 1)
       {
        num1 = rand()%10;
        num2 = rand()%10+1;
        printf("%d / %d=__?__
    ",num1,num2);
        scanf("%f",&div_result);
        if(div_result == divis(num1,num2))
        {
         printf("回答正确!
    ");
         right++;
        }
        else
        {
         printf("回答错误!
    ");
         wrong++;
        }
        printf("是否继续?y/n
    ");
        getchar();
        scanf("%c",&ch);
        if(ch == 'y')
         break;
        else if(ch == 'n')
         goto end;
       }
       else if (data == 2)
       {
        num1 = rand()%100;
        num2 = rand()%100+1;
        printf("%d / %d=__?__
    ",num1,num2);
        scanf("%f",&div_result);
        if(div_result == divis(num1,num2))
        {
         printf("答正确!
    ");
         right++;
        }
        else
        {
         printf("回答错误!
    ");
         wrong++;
        }
        printf("是否继续?y/n
    ");
        getchar();
        scanf("%c",&ch);
        if(ch == 'y')
         break;
        else if(ch == 'n')
         goto end;
       }
       break;
      default :
       printf("输入错误!
    ");
       break;
      }
     }
    end:
     printf("回答正确%d题,回答错误%d题
    ",right,wrong);
     printf("
    ====================谢谢光临====================!
    ");
     system("pause");
     return 0;
    }























    总结:通过这次完成实现自动生成小学四则运算题目的程序,我意识到我的C语言的基础知识还是不扎实,在老师和同学的帮助下才完成的这个项目,所以,在以后的学习中,我还要不断地继续努力,上课多提问,多去查阅相关资料的书籍,使自己不断的进步。

  • 相关阅读:
    JDBC链接mysql
    javac和java的使用
    PreparedStatement的execute误解
    sleep() 与 wait()的比较
    使用java程序模拟页面发送http的post请求
    《算法竞赛入门经典》6.1.2栈和队列-铁轨
    《算法竞赛入门经典》6.1栈和队列-卡片游戏
    《算法竞赛入门经典》5.42数学基础-因子和阶乘
    《算法竞赛入门经典》5.41数学基础-Cantor的数表
    qsort函数
  • 原文地址:https://www.cnblogs.com/yanghang0219/p/5280080.html
Copyright © 2011-2022 走看看