zoukankan      html  css  js  c++  java
  • 计算与软件工程作业二

    作业要求

    像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。 可以使用C,C++,或者C#等语言实现。
    分别能够实现小学一、二、三、四、五年级的四则运算要求, 逐步实现各个年级的难度
    要求能够通过输入来选择不同年级,每个年级还得区分难,中,易三个等级
    对于三、四、五年级需要支持括号与多个运算符
    程序支持判断对错及累计得分与时间
    一次可以出100道题目,而且不能重复(比如2+3 与 3+2 算重复的)
    充分发挥想象增加满足小学生数学检测需要的功能

    主要代码

    char getSignal();                      //获取随机运算符函数
    int random(double,double);             //获取随机数函数
    int getResult(int,int,char);           //结果计算函数
    int takeTest();                        //题目生成函数
    (```
    void main() 
    {
             int n,a,right=0;
             double percent;
             printf("Please enter the number of the test:");
             scanf("%d",&n);
             for(int i=0;i<n;i++)
             {
                       a=takeTest();
                       right=right+a;
             }
             printf("Powerful!
    ");
             printf("The number of right:%d
    ",right);
             percent=((double)right*100.00)/(double)n;
             printf("The percent of right:%0.2f %%
    ",percent);
    }
    char getSignal()
    {
        char signal[4]={'+','-','*','/'};
        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:
            printf("运算符错误!
    ");
        }
        return res;
    }
    int takeTest()
    {
        int get;
        int num1,num2,a;
        char signal;
        srand((unsigned)time(NULL));
        signal=getSignal();
        num1=random(0,1000);
        num2=random(1,1000);
    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",&get);
        fflush(stdin);   //清空输入缓冲区
        if(getResult(num1,num2,signal)==get)
            {
            printf("You're right!
    ");
            a=1;
            }
        else
        {
            printf("It's wrong!
    ");
            printf("The right answer is: %d
    ",getResult(num1,num2,signal));
            a=0;
        }
        return a;
    }
    

    托管于gitee上的链接

    https://gitee.com/yuanaj/codes/cz9fyxbq3p4g0ntvuaseo19

    运行截图

    image.png

  • 相关阅读:
    微擎开发------day02
    微擎开发------day01
    Myisam 和 Innodb 区别
    Curl的简单使用步骤
    微信小程序之----获取设备信息
    微信小程序之 -----事件
    微信小程序之---- 数据处理
    微信小程序之----制作视频弹幕
    cocos2dx安卓客户端接入移动MM付费SDK
    Win7 / Win8 搭建配置【vs2010】、【cocos2dx环境】、【Android平台】
  • 原文地址:https://www.cnblogs.com/yaj1116/p/12367950.html
Copyright © 2011-2022 走看看