zoukankan      html  css  js  c++  java
  • C语言寒假大作战04

    这个作业属于那个课程 2019级计算机4班
    这个作业要求在哪里 C语言寒假大作战04
    这个作业的目标 学会编写随机生成计算题并得出答案的程序
    作文正文
    其它参考文献 https://zhidao.baidu.com/question/271899014.html

    1.1 设计思路和遇到的问题

    设计思路:

    在之前的基础上算出答案来,看似比较简单,实际还是有一些小复杂的,一二年级题目很平常用正常思维去编写就可,三年级题目我是通过给字符赋值然后把16种所有符号情况都用if语句连贯起来,得出不同情况下的计算题答案。注意一些需要使用%g的地方。

    遇到的问题:

    一二年级题目较简单没有什么问题,主要就是三年级题目有些难度,我之前是建立了数组,把四种符号放了进去,这样虽然很容易就把题目随机生成出来了,但是答案确比较难得出,想了挺久实在没有想到什么简便得方法,只好通过给字符赋值然后用if语句把所有符号组合的情况都列出来了。最后的一个问题是得不出小数点后面的数字,那是由于没有给除号后面的数乘1.0。

    1.2 程序结果截图

    1.3 程序代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    #include<string.h>
    void menu(); 
    void help();
    void A(); 
    void B();
    void C(); 
    void error();
    int main()
    {
        int n=1,x;
        printf("==========口算生成表==========
    ");
        printf("欢迎使用口算生成器
    ");
        printf("
    ");
        help();
        printf("
    ");
        while(n!=0)
        {
            menu();
            printf("请输入操作>");
            scanf("%d",&x);
            printf("<执行操作:)
    ");
            printf("
    ");
            printf("
    ");
            switch(x)
            {
                case 1:A();break;
                case 2:B();break;
                case 3:C();break;
                case 4:help();break;
                case 5:
                    n=0;
                    printf("程序结束, 欢迎下次使用
    ");
    				printf("请按任意键继续...
    ");
                    break;
                default:error();break;  
            }
        }
        return 0;
    }
    
    void menu()
    { 
        printf("操作列表:
    ");
        printf("1)一年级    2)二年级    3)三年级
    ");
        printf("4)帮助      5)退出程序
    ");
    }
    void help()
    {
        printf("帮助信息
    ");
        printf("您需要输入命令代号来进行操作, 且
    ");
        printf("一年级题目为不超过十位的加减法;
    ");
        printf("二年级题目为不超过百位的乘除法;
    ");
        printf("三年级题目为不超过百位的加减乘除混合题目.
    ");
    }
    void A()
    {
    	int o,a,b,c,D;
    	time_t t;
    	srand((unsigned) time(&t));
        printf("现在是一年级题目:
    ");
        printf("请输入生成个数>
    ");
        scanf("%d",&o);
        printf("<执行操作:)
    ");
        for (int i=0;i<o;i++)
    	{
        	a=rand() % 10;
        	b=rand() % 10;
        	c=rand() % 2;
        	if (c==0)
        	{
    		
        	   D=a+b;
        	   printf("%d + %d = %d
    ",a,b,D);
    		}
        	else
        	{
    		   D=a-b;
        	   printf("%d - %d = %d
    ",a,b,D);
    		   }
    	}
    }
    void B()
    {
    	int o,a,b,c;
    	float D;
    	time_t t;
    	srand((unsigned) time(&t));
        printf("现在是二年级题目:
    ");
        printf("请输入生成个数>
    ");
        scanf("%d",&o);
        printf("<执行操作:)
    ");
        for (int i=0;i<o;i++)
    	{
        	a=rand() % 10;
        	b=rand() % 10;
        	c=rand() % 2;
        	if (c==0)
        	{
        	   D=a*b;
        	   printf("%d * %d = %g
    ",a,b,D);
    		   }
        	else{
    		while(b==0)
    		{
    			b=rand() % 10;
    		 } 
    		   D=a/(b*1.0);
        	   printf("%d / %d = %g
    ",a,b,D);
    		   }
    	}
    }
    void C()
    {
    	int o,d,i,a,b,c;
    	float z;
    	char fh1[2],fh2[2];
    	time_t t;
    	srand((unsigned) time(&t));
        printf("现在是三年级题目:
    ");
        printf("请输入生成个数>
    ");
        scanf("%d",&o);
        printf("<执行操作:)
    ");
        char fh[4][6] = {"*","/","+","-"};
         for (int i=0; i<o; i++)
    	{
        	a=rand() % 100;
        	b=rand() % 100;
        	c=rand() % 100;
        	while (a==0||b==0||c==0)
        	{
        		a=rand() % 100;b=rand() % 100;c=rand() % 100; 
    		}
     		strcpy(fh1,fh[rand() % 3]);
     		strcpy(fh2,fh[rand() % 3]);
    		if(strcmp(fh1,"*")==0&&strcmp(fh2,"*")==0)
    		{
    			z = a * b * c;
    		printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"*")==0&&strcmp(fh2,"/")==0)
    		{
    			z = a * b / (c*1.0);
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"*")==0&&strcmp(fh2,"+")==0)
    		{
    			z = a * b + c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"*")==0&&strcmp(fh2,"-")==0)
    		{
    			z = a * b - c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"/")==0&&strcmp(fh2,"+")==0)
    		{
    			z = a / (b*1.0) + c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"/")==0&&strcmp(fh2,"-")==0)
    		{
    			z = a / (b*1.0) - c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"/")==0&&strcmp(fh2,"/")==0)
    		{
    			z = a / (b*1.0) / (c*1.0);
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"+")==0&&strcmp(fh2,"-")==0)
    		{
    			z = a + b - c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"+")==0&&strcmp(fh2,"+")==0)
    		{
    			z = a + b + c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"-")==0&&strcmp(fh2,"-")==0)
    		{
    			z = a - b - c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"/")==0&&strcmp(fh2,"*")==0)
    		{
    			z = a / (b*1.0) * c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"+")==0&&strcmp(fh2,"/")==0)
    		{
    			z = a + b / (c*1.0);
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"+")==0&&strcmp(fh2,"*")==0)
    		{
    			z = a + b * c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"-")==0&&strcmp(fh2,"/")==0)
    		{
    			z = a - b / (c*1.0);
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"-")==0&&strcmp(fh2,"+")==0)
    		{
    			z = a - b + c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
    		else if(strcmp(fh1,"-")==0&&strcmp(fh2,"*")==0)
    		{
    			z = a - b * c;
    			printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
    		}
        }
        
    }
    void error()
    {
        printf("Error!!!
    ");
        printf("错误操作指令, 请重新输入
    ");
        printf("
    ");
        printf("
    ");
    }
    

    1.5 Gitee上传截图与链接

    https://gitee.com/zenghao67/winter_vacation_battle_02

  • 相关阅读:
    swift 第十四课 可视化view: @IBDesignable 、@IBInspectable
    swift 第十三课 GCD 的介绍和使用
    swift 第十二课 as 的使用方法
    swift 第十一课 结构体定义model类
    swift 第十课 cocopod 网络请求 Alamofire
    swift 第九课 用tableview 做一个下拉菜单Menu
    swift 第八课 CollectView的 添加 footerView 、headerView
    swift 第七课 xib 约束的优先级
    swift 第六课 scrollview xib 的使用
    swift 第五课 定义model类 和 导航栏隐藏返回标题
  • 原文地址:https://www.cnblogs.com/zengghao/p/12301482.html
Copyright © 2011-2022 走看看