zoukankan      html  css  js  c++  java
  • 随机四则运算的改进

    #include<stdio.h>
    int Menu()
    {
        int choic;
        printf("
    
    
    ******************************************
    ");
        printf("1.四则运算整数习题(试卷型)
    ");
        printf("2.四则运算真分数习题(试卷型)
    ");
        printf("3.四则运算整数习题(同步练习型)
    ");
        printf("4.四则运算真分数习题(同步练习型)
    ");
        printf("5.退出程序
    ");
        printf("请选择菜单号(1——5):
    ");
        printf("******************************************
    ");
        while((!scanf("%d",&choic))||(choic<1)||(choic>5))
        {
            getchar();
            printf("	输入错误!!!!!!!!!!!!请重新输入
    ");
            printf("******************************************
    ");
            printf("1.四则运算整数习题(试卷型)
    ");
            printf("2.四则运算真分数习题(试卷型)
    ");
            printf("3.四则运算整数习题(同步练习型)
    ");
            printf("4.四则运算真分数习题(同步练习型)
    ");
            printf("5.退出程序
    ");
            printf("请选择菜单号(1——5):
    ");
            printf("******************************************
    ");
        }
        return choic;
    }
    void exam1()
    {
        int i,b,c,d,n,q=1;
        char a[4]={'+','-','*','/'};
        while(q==1)
        {    
            printf("请输入需要四则运算整数习题(试卷型)的题数:");
            scanf("%d",&n);
            for(i=1;i<=n;i++)
            {
                b=rand()%4;
                c=rand()%100;
                d=rand()%100;
                if(a[b]==a[0])
                    printf("%d+%d=		",c,d);
                else if(a[b]==a[1])
                    printf("%d-%d=		",c,d);
                else if(a[b]==a[2])
                    printf("%d×%d=		",c,d);
                else if(a[b]==a[3])
                    printf("%d÷%d=		",c,d);
                if(i%5==0)
                    printf("
    ");
            }
            printf("
    
    是否要继续?(1表示是,0表示否):");
            while(!scanf("%d",&q)||q<0||q>1)
            {
                getchar();
                printf("输入错误!!!!!请重新输入
    ");
                printf("
    是否要继续?(1表示是,0表示否):");
            }
            printf("
    ");
        }
        printf("
    ");
    }
    void exam2()
    {
        int i,b,c,d,n,q=1,f,e;
        char a[4]={'+','-','*','/'};
        while(q==1)
        {    
            printf("请输入需要四则运算真分数习题(试卷型)的题数:");
            scanf("%d",&n);
            for(i=1;i<=n;i++)
            {
                b=rand()%4;
                c=rand()%100;
                d=rand()%100;
                f=rand()%100;
                e=rand()%100;
                if(c<=d&&e<=f&&d!=0&&f!=0)
                {
                    if(a[b]==a[0])
                        printf("%d/%d+%d/%d=	",c,d,e,f);
                    else if(a[b]==a[1])
                        printf("%d/%d-%d/%d=	",c,d,e,f);
                    else if(a[b]==a[2])
                        printf("(%d/%d)×(%d/%d)=	",c,d,e,f);
                    else if(a[b]==a[3])
                        printf("(%d/%d)÷(%d/%d)=	",c,d,e,f);
                }
                else
                {
                    i--;
                    continue;
                }
                   if(i%3==0)
                       printf("
    
    ");
            }
            printf("
    
    是否要继续?(1表示是,0表示否):");
            while(!scanf("%d",&q)||q<0||q>1)
            {
                getchar();
                printf("输入错误!!!!!请重新输入
    ");
                printf("
    是否要继续?(1表示是,0表示否):");
            }
            printf("
    ");
        }
        printf("
    ");
    }
    void exam3()
    {
        int i,b,c,d,n,q=1,sum=0,per;
        float result,result1;
        char a[4]={'+','-','*','/'};
        while(q==1)
        {    
            sum=0;
            printf("请输入要挑战四则运算整数习题(同步练习型)的题数:");
            scanf("%d",&n);
            printf("请输入每题计算题的分数:");
            scanf("%d",&per);
            for(i=1;i<=n;i++)
            {
                b=rand()%4;
                c=rand()%100;
                d=rand()%100;
                if(a[b]==a[0])
                {
                    printf("%d+%d=",c,d);
                    scanf("%f",&result);
                    result1=c+d;
                    if(result==result1)
                    {
                        printf("真棒,答对了!
    ");
                        sum=sum+per;
                    }
                    else
                    {
                        printf("真遗憾,答错了!
    ");
                        printf("正确答案是%.2f
    ",result1);
                    }
                }
                else if(a[b]==a[1])
                {
                    printf("%d-%d=",c,d);
                    scanf("%f",&result);
                    result1=c-d;
                    if(result==result1)
                    {
                        printf("真棒,答对了!
    ");
                        sum=sum+per;
                    }
                    else
                    {
                        printf("真遗憾,答错了!
    ");
                        printf("正确答案是%.2f
    ",result1);
                    }
                }
                else if(a[b]==a[2])
                {
                    printf("%d×%d=",c,d);
                    scanf("%f",&result);
                    result1=c*d;
                    if(result==result1)
                    {
                        printf("真棒,答对了!
    ");
                        sum=sum+per;
                    }
                    else
                    {
                        printf("真遗憾,答错了!
    ");
                        printf("正确答案是%.2f
    ",result1);
                    }
                }
                else if(a[b]==a[3])
                {
                    printf("%d÷%d=",c,d);
                    scanf("%f",&result);
                    result1=(float)c/d;
                    if(result==result1)
                    {
                        printf("真棒,答对了!
    ");
                        sum=sum+per;
                    }
                    else
                    {
                        printf("真遗憾,答错了!
    ");
                        printf("正确答案是%.2f
    ",result1);
                    }
                }
            }
            if(sum==n*per)
                printf("
    恭喜你这次测试满分!
    本次的成绩:%d分
    ",sum);
            else if(sum==0)
                printf("
    真遗憾,你本次测试分数不理想,请继续努力!
    本次成绩:%d分
    ",sum);
            else if(sum>0&&sum<n*per)
                printf("
    你本次成绩:%d分
    ",sum);
            printf("
    
    是否要继续?(1表示是,0表示否):");
            while(!scanf("%d",&q)||q<0||q>1)
            {
                getchar();
                printf("输入错误!!!!!请重新输入
    ");
                printf("
    是否要继续?(1表示是,0表示否):");
            }
            printf("
    ");
        }
        printf("
    ");
    }
    void exam4()
    {
        int i,b,c,d,n,q=1,f,e,sum=0,per;
        float result,result1;
        char a[4]={'+','-','*','/'};
        while(q==1)
        {    
            sum=0;
            printf("请输入要挑战四则运算真分数习题(同步练习型)的题数:");
            scanf("%d",&n);
            printf("请输入每题计算题的分数:");
            scanf("%d",&per);
            for(i=1;i<=n;i++)
            {
                b=rand()%4;
                c=rand()%100;
                d=rand()%100;
                f=rand()%100;
                e=rand()%100;
                if(c<=d&&e<=f&&d!=0&&f!=0)
                {
                    if(a[b]==a[0])
                    {
                        printf("%d/%d+%d/%d=",c,d,e,f);
                        scanf("%f",&result);
                        result1=(float)c/d+(float)e/f;
                        if(result==result1)
                        {
                            printf("真棒,答对了!
    ");
                            sum=sum+per;
                        }
                        else
                        {
                            printf("真遗憾,答错了!
    ");
                            printf("正确答案是%.2f
    ",result1);
                        }
                    }
                    else if(a[b]==a[1])
                    {
                        printf("%d/%d-%d/%d=",c,d,e,f);
                        scanf("%f",&result);
                        result1=(float)c/d-(float)e/f;
                        if(result==result1)
                        {
                            printf("真棒,答对了!
    ");
                            sum=sum+per;
                        }
                        else
                        {
                            printf("真遗憾,答错了!
    ");
                            printf("正确答案是%.2f
    ",result1);
                        }
                    }
                    else if(a[b]==a[2])
                    {
                        printf("(%d/%d)×(%d/%d)=",c,d,e,f);
                        scanf("%f",&result);
                        result1=((float)c/d)*((float)e/f);
                        if(result==result1)
                        {
                            printf("真棒,答对了!
    ");
                            sum=sum+per;
                        }
                        else
                        {
                            printf("真遗憾,答错了!
    ");
                            printf("正确答案是%.2f
    ",result1);
                        }
                    }
                    else if(a[b]==a[3])
                    {
                        printf("(%d/%d)÷(%d/%d)=",c,d,e,f);
                        scanf("%f",&result);
                        result1=((float)c/d)/((float)e/f);
                        if(result==result1)
                        {
                            printf("真棒,答对了!
    ");
                            sum=sum+per;
                        }
                        else
                        {
                            printf("真遗憾,答错了!
    ");
                            printf("正确答案是%.2f
    ",result1);
                        }
                    }
                }
                else
                {
                    i--;
                    continue;
                }
            }
            if(sum==n*per)
                printf("
    恭喜你这次测试满分!
    本次的成绩:%d分
    ",sum);
            else if(sum==0)
                printf("
    真遗憾,你本次测试分数不理想,请继续努力!
    本次成绩:%d分
    ",sum);
            else if(sum>0&&sum<n*per)
                printf("
    你本次成绩:%d分
    ",sum);
            printf("
    
    是否要继续?(1表示是,0表示否):");
            while(!scanf("%d",&q)||q<0||q>1)
            {
                getchar();
                printf("输入错误!!!!!请重新输入
    ");
                printf("
    是否要继续?(1表示是,0表示否):");
            }
            printf("
    ");
        }
        printf("
    ");
    }
    void quit()
    {
        printf("谢谢使用该程序!
    ");
        exit(0);
    }
    main()
    {
        int choic;
        while(1)
        {
            choic=Menu();
            switch(choic)
            {
                case 1:
                    exam1();
                    break;
                case 2:
                    exam2();
                    break;
                case 3:
                    exam3();
                    break;
                case 4:
                    exam4();
                    break;
                case 5:
                    quit();
                    break;
            }
        }
    }

    本次程序是对上一次随机四则运算的改进,主要分成了两大部分:试卷型和同步练习型。在同步练习型中有相应的计算和分数统计的功能。

  • 相关阅读:
    P1067 多项式输出(模拟水题)
    A. The Fair Nut and Elevator(暴力)
    A. The Fair Nut and Elevator(暴力)
    Knight Tournament (set)
    jquery怎么添加多个类名
    jquery对类的操作,添加,删除,点击添加,再点击删除
    jquery操作css样式的方法
    jquery浅复制和深复制区别
    TS 三种函数的定义方式
    ES7及ES8新特性
  • 原文地址:https://www.cnblogs.com/xuegu/p/4384240.html
Copyright © 2011-2022 走看看