zoukankan      html  css  js  c++  java
  • 编写一个能自动生成小学四则运算题目的程序。

    主要功能:运算小学四则运算,可以选择加减乘除以及混合运算。

    设计思想:首先思考运算数字范围,考虑小学生的运算能力,然后分类运算方法,分为加减乘除混合运算,

    然后可以选择是继续做题还是退出程序,可以总结做对或者做错的题数,方便计算正确以及错误的题数。

    源代码:

    #include <stdio.h>

    #include <ctype.h>

    #include <time.h>

    #include <stdlib.h>

    #include <windows.h>

    #define IDNO_LENGTH 6

    #define CALC_KIND 4

    char getSignal();

    int getResult(int,int,char);

    void takeTest();

    void falsePrint(int);

    void correctPrint(int);

    //main函数

    void main()

    {

        while(1)

        {

            takeTest();

        }

         

    }

    //获取随机运算符

    char getSignal()

    {

        char signal[CALC_KIND]={'+','-','*','/'};

        srand((unsigned)time(NULL));

        return signal[rand()%4];

    }

    //获取随机数

    int random(double start, double end)

    {

        return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));

    }

    //运算

    int getResult(int num1,int num2,char signal)

    {

        int res;

        switch(signal)

        {

        case '+':

            res=num1+num2;break;

        case '-':

            res=num1-num2;break;

        case '*':

            res=num1*num2;break;

        case '/':

            res=num1/num2;break;

        default:

            res=0;

            printf("运算符不符合规则 ");

        }

        return res;

    }

    //列出题目

    void takeTest()

    {

        int giveRes;

        int num1;

        int num2;

        char signal;

        int printFlag;

        srand((unsigned)time(NULL));

        signal=getSignal();

        num1=random(0,100);

        num2=random(1,100);

        if(signal=='-')

        {

            if(num1<num2)

            {

                int temp;

                temp=num1;

                num1=num2;

                num2=temp;

            }

        }

        if(signal=='/')

        {

            if(num2==0)

            {

                int temp;

                temp=num1;

                num1=num2;

                num2=temp;

            }

        }

        printf("%d%c%d=",num1,signal,num2);

        scanf("%d",&giveRes);

        fflush(stdin);

        if(getResult(num1,num2,signal)==giveRes)

        {

            printFlag=random(1,5);

            correctPrint(printFlag);

        }

        else

        {

            printFlag=random(1,4);

            falsePrint(printFlag);

            printf("正确答案:%d ",getResult(num1,num2,signal));

        }

    }

    //回答正确打印信息

    void correctPrint(int num)

    {

        switch(num)

        {

        case 1:

            printf("You're right! ");break;

        case 2:

            printf("It's OK! ");break;

        case 3:

            printf("Correct! ");break;

        case 4:

            printf("Perfect! ");break;

        case 5:

            printf("Good! ");break;

        default:

            printf("Powerful! ");break;

        }

    }

    //回答错误打印信息

    void falsePrint(int num)

    {

        switch(num)

        {

        case 1:

            printf("You're lost!");break;

        case 2:

            printf("Failure!");break;

        case 3:

            printf("Come on!");break;

        case 4:

            printf("It's wrong!");break;

        default:

            printf("Incorrect!");break;

        }

    }

    感谢《百度贴吧》大神的帮助

  • 相关阅读:
    MySQL distinct 与 group by 去重(where/having)
    mysql 的垂直分表和水平分表
    查看mysql语句运行时间
    PHP的性能优化方法总结
    Apache ab 压测工具使用说明
    LNMP 性能优化之 PHP 性能优化
    [PHP]日志处理error_log()函数和配置使用
    cocos2dx之tolua++全面分析(二):类注册
    在命令行上启动genymotion虚拟机
    在64位ubuntu上安装alienbrain客户端
  • 原文地址:https://www.cnblogs.com/HAOZHE/p/5276763.html
Copyright © 2011-2022 走看看