• 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

  • 相关阅读:
    INFORMATION_SCHEMA.INNODB_LOCKS
    INFORMATION_SCHEMA.INNODB_TRX 详解
    zabbix 通过key 获取
    匿名hash
    [] 和{} 匿名引用
    perl 初始化Hash
    9.2 数组的散列
    数组的数组
    RMAN恢复目录
    验证备份前设置CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF; 的区别
  • 原文地址:https://www.cnblogs.com/gm12/p/12315632.html
Copyright © 2020-2023  润新知