C语言寒假大作战04

本周作业头

这个作业属于那个课程 寒假作业
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10279
这个作业的目标是 使用switch函数来制作菜单
这个作业正文 https://i-beta.cnblogs.com/posts/edit
参考文献 百度、《C Prime Plus》

1. 设计思路和遇到的问题

1.1程序设计思路图:

1.2程序设计思路

自定义函数,然后用主函数switch函数调用函数来计算算术

1.3遇到的问题:

我细分加减乘除算出答案的时候,二年级以及三年级需要考虑被除数是否为零的可能性然后再细分,很容易出错,然后其中我运用了switch函数来划分,因为除法有除不尽的可能,所以得用double来定义函数且结果用%g实数展示出来,这里弄错了

2.程序截图




3.代码

#include<stdio.h>
#include<stdlib.h>
void operation1();
void operation2();
void operation3();
void menu();
void help();
void error();
int main()
{
	int Grade=1;
	printf("========口算生成器========
欢迎使用口算生成器:)

");
	help();
	menu(); 
    while(Grade!=5){
        scanf("%d",&Grade);
        printf("<执行操作:)

");
        switch(Grade){
            case 1:operation1();break;
            case 2:operation2();break;
            case 3:operation3();break;
            case 4:help();break;
            case 5:printf("程序结束,欢迎下次使用  任意键结束......
");break;
            default:error();break;
        }if(Grade!=5) menu();
    }
    return 0;
 } 
void operation1(){
	int a,b,i;
    printf("现在是一年级题目:
请输入生成个数>");
    scanf("%d",&a);
    for(i=0;i<a;i++){
        int yi=rand()%11;
        int er=rand()%11;
        char c[2]={'+','-'};
        b=rand()%2;
        if(c[b]=='+'){
            printf("%2d %c %2d= %d
",yi,c[b],er,yi+er);	
		}
		else{
			printf("%2d %c %2d= %d
",yi,c[b],er,yi-er);
		} 
    }
}
void operation2(){
    int a,b,i;
    printf("现在是二年级题目:
请输入生成个数>");
    scanf("%d",&a);
    for(i=0;i<a;i++){
        double yi=rand()%101;
        double er=rand()%101;
        double san=rand()%100+1;
        char c[2]={'*','/'};
        b=rand()%2;
        if(c[b]=='/')printf("%2g / %2g= %g
",yi,san,yi/san);
        else printf("%2g * %2g= %g
",yi,er,yi*er);
    }
}
void operation3(){
    int a,b,i,b1;
    printf("现在是三年级题目:
请输入生成个数>");
    scanf("%d",&a);
    for(i=0;i<a;i++){
        double yi=rand()%101;
        double er=rand()%101;
        double san=rand()%101;
        double si=rand()%100+1;
        char c[4]={'+','-','*','/'};
        b=rand()%4;
        b1=rand()%4;
		if(c[b]=='*'){
			switch(c[b1]){
				case '-':
			    	printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi*er-san);break; 
				case '+':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi*er+san);break;
				case '/':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],si,yi*er/si);break;
				case '*':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi*er*san);break;
	        }
        } 
		if(c[b]=='+'){
			switch(c[b1]){
				case '-':
			    	printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi+er-san);break;
				case '+':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi+er+san);break;
				case '/':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],si,yi+er/si);break;	
				case '*':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi+er*san);break;
	        }
        } 
		if(c[b]=='-'){
			switch(c[b1]){
				case '-':
			    	printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi-er-san);break;
				case '+':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi-er+san);break;
				case '/':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],si,yi-er/si);break;	
				case '*':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],er,c[b1],san,yi-er*san);break;
	        }
        } 
		if(c[b]=='/'){
			switch(c[b1]){
				case '-':
			    	printf("%2g %c %2g %c %2g= %g
",yi,c[b],si,c[b1],san,yi/si-san);break; 
				case '+':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],si,c[b1],san,yi/si+san);break;
				case '/':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],si,c[b1],si,yi/si/si);break;	
				case '*':
				    printf("%2g %c %2g %c %2g= %g
",yi,c[b],si,c[b1],san,yi/si*san);break; 
	        }
        } 
    }
}
void menu(){
	printf("操作列表:
1)一年级    2)二年级    3)三年级
4)帮助     5)退出程序
请输入操作>");
}
void help(){
	printf("帮助信息:
您需要输入命令代号来进行操作,且
一年级题目为不超过十位的加减法;
二年级题目为不超过百位的乘除法;
三年级题目为不超过百位的加减乘除混合题目.

");
}
void error(){
	printf("Error!!!
错误操作指令,请重新输入

"); 
}

4. Gitee上传截图


5.Gitee链接

https://gitee.com/gaoming_1314

原文地址:https://www.cnblogs.com/gm12/p/12315632.html