• 编写一个能自动生成小学四则运算题目的程序。


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

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

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

    源代码:

    #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;

        }

    }

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

  • 相关阅读:
    C#值类型和引用类型的不同
    C# new用法总结-转
    C#中New关键词的几种用法
    命令行客户端MySQL的使用(1)——Python
    数据库的基本使用——MySQL
    生成器的创建方式——Python
    with与“上下文管理器”——Python
    魔法属性——Python
    property属性——Python
    正则匹配之贪婪和非贪婪——Python
  • 原文地址:https://www.cnblogs.com/HAOZHE/p/5276763.html
Copyright © 2020-2023  润新知