C语言寒假大作战04

作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-2/
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10261
这个作业的目标 熟练C语言函数应用
作业正文 https://www.cnblogs.com/szy5201314/p/12268352.html
其他参考文献 百度

2.1 题目内容与要求

使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数

2.1.1 菜单程序函数调用图如下:

2.1.2 程序截图:

2.2.2 设计思路和遇到的问题

设计思路

遇到的问题

2.2.3 程序代码

#include
#include 
#include 
void menu(){
        printf("操作列表:\n1)一年级    2)二年级    3)三年级\n4)帮助      5)退出程序\n请输入操作>  ");
}
void help(){
    printf("帮助信息\n您需要输入命令代号来进行操作, 且\n一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的乘除法;\n三年级题目为不超过百位的加减乘除混合题目.\n\n");
}
void error(){
    printf("Error!!!\n错误操作指令, 请重新输入\n\n");
}
void firstgrade(){
    srand(time(NULL));
    int a,b,c,i;
    char f[2]={'+','-'},fl;
    printf("现在是一年级题目:\n请输入生成题目的个数:");
    scanf("%d",&i);
    for(;i>0;i--){
        a=rand()%101;
        b=rand()%101;
        fl=f[rand()%2];
        if(fl=='+')
            c=a+b;
        else c=a-b;
        printf("%d %c %d = %2d\n",a,fl,b,c);
    }
    printf("\n\n");  
}
void secondgrade(){
    srand(time(NULL));
    int a,b,i;
    double c;
    char f[2]={'*','/'},fl;
    printf("现在是二年级题目:\n请输入生成题目的个数:");
    scanf("%d",&i);
    for(;i>0;i--){
        a=rand()%101;
        b=rand()%101;
        fl=f[rand()%2];
        if(fl=='/'&&b==0)b=rand()%100+1;
        if(fl=='/')c=a*1.0/b;
        else c=a*b;
        printf("%d %c %d = %2g\n",a,fl,b,c);
    }
    printf("\n\n");
}
void thirdgrade(){
    srand(time(NULL));
    int a,b,i,c,n,q;
    double m; 
    char f[4]={'*','/','+','-'},d,e;
    printf("现在是三年级题目:\n请输入生成题目的个数:");
    scanf("%d",&i);
    for(;i>0;i--){
        a=rand()%101;
        d=f[rand()%4];
        b=rand()%101;
        if(d=='/'&&b==0)    b=rand()%100+1;
        e=f[rand()%4];
        c=rand()%101;
        if(e=='/'&&c==0)    c=rand()%100+1;
        
        switch (d) 
        {
            case '+':n=1;break;
            case '-':n=2;break;
            case '*':n=3;break;
            case '/':n=4;break;
        }
        switch (e)
        {
            case '+':q=1;break;
            case '-':q=2;break;
            case '*':q=3;break;
            case '/':q=4;break;
        }
        switch (n)
        {
            case 1:
                if(q==1)
                    m=a+b*c;
                else if(q==2)
                    m=a+b-c;
                else if(q==3) 
                    m=a+b*c;
                else m =a+b*1.0/c;
                break;
            case 2:
                if(q==1)
                    m=a-b*c;
                else if(q==2)
                    m=a-b-c;
                else if(q==3) 
                    m=a-b*c;
                else m =a-b*1.0/c;
                break;
            case 3: 
            if(q==1)
                    m=a*b*c;
                else if(q==2)
                    m=a*b-c;
                else if(q==3) 
                    m=a*b*c;
                else m =a*b*1.0/c;
                break;
            case 4:
                if(q==1)
                    m=a*1.0/b*c;
                else if(q==2)
                    m=a*1.0/b-c;
                else if(q==3) 
                    m=a*1.0/b*c;
                else m =a*1.0/b/c;
                break;
        }       
        
        printf("%2d %c %2d %c %2d = %2g\n",a,d,b,e,c,m);
    }
    printf("\n\n");
}

int main()
{
    int a;
    printf("========== 口算生成器 ==========\n欢迎使用口算生成器 :\n\n");
    help(); 
    menu();
    do{
        scanf("%d",&a);
        printf("< 执行操作 >\n\n");
        switch (a) {        
            case 1:firstgrade();break;
            case 2:secondgrade();break;
            case 3:thirdgrade();break;
            case 4:help();    break;
            case 5:printf("程序结束, 欢迎下次使用 任意键结束……\n");break;
            default:error();break;
        }
        if(a!=5)menu();
    }while(a!=5);
    
    return 0;
}

2.2.4 Gitee上传截图与链接

本地仓库

C语言寒假大作战04_第1张图片



码云

C语言寒假大作战04_第2张图片

gitee主页

你可能感兴趣的:(C语言寒假大作战04)