• C语言寒假大作战03


    这个作业属于那个课程 2019级计算机4班
    这个作业要求在哪里 C语言寒假大作战03
    这个作业的目标 学会简单菜单的制作以及gitee基本操作的运用
    作文正文 https://www.cnblogs.com/zengghao/p/12296474.html
    其它参考文献 https://www.runoob.com/cprogramming/c-function-rand.html

    1.1 设计思路和遇到的问题

    设计思路:

    根据上次作业所制作的菜单,此次主要是设计生成题目代码的编写,利用for循环实现题目的个数,在利用rand()函数生成随机数,用if语句判断符号的随机选用,三年级题目可以建立数组存下四个符号,用rand控制输出。需注意输入题目的格式以及除号后面不能为0的情况。

    遇到的问题:

    此次主要遇到的问题在三年级的题目方面,开始的时候没有用数组,把所有的符号组合情况都写了下来,这个时候除号后面为0的情况不好解决。后来通过朋友的帮助,建立数组存下四个符号用rand控制输出,由于不太熟悉其使用方法,还是没有解决三年级题目除号后不为0的情况,后来我干脆使所有生成的随机数都不为0,也就不会出现除号后为0的情况了。

    1.2 程序结果截图

    1.3 程序代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.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;
    	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)
        	   printf("%d + %d = ___
    ",a,b);
        	else
        	   printf("%d - %d = ___
    ",a,b);
    	}
    }
    void B()
    {
    	int o,a,b,c;
    	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)
        	   printf("%d * %d = ___
    ",a,b);
        	else
    		while(b==0)
    		{
    			b=rand() % 10;
    		 } 
        	   printf("%d / %d = ___
    ",a,b);
    	}
    }
    void C()
    {
    	int o,a,b,c,d;
    	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; 
    		} 
        	printf("%2d %s %2d %s %2d = ___
    ",a,fh[rand() % 3],b,fh[rand() % 3],c);
        }
        
    }
    void error()
    {
        printf("Error!!!
    ");
        printf("错误操作指令, 请重新输入
    ");
        printf("
    ");
        printf("
    ");
    }
    

    1.5 Gitee上传截图与链接

    https://gitee.com/zenghao67/winter_vacation_battle_02

  • 相关阅读:
    javascript页面刷新的几种方法
    Expo大作战(三十九)--expo sdk api之 DocumentPicker,Contacts(获取手机联系人信息),Branch
    Expo大作战(三十八)--expo sdk api之 FileSystem(文件操作系统)
    Expo大作战(三十七)--expo sdk api之 GLView,GestureHandler,Font,Fingerprint,DeviceMotion,Brightness
    Expo大作战(三十六)--expo sdk api之 ImagePicker,ImageManipulator,Camera
    Expo大作战(三十五)--expo sdk api之Location!
    一条SQL语句中算日销售额和月销售额
    绑定sql server数据库的用户与登录名
    牛腩代码生成器
    ASP.NET MVC做的微信WEBAPP中调用微信JSSDK扫一扫
  • 原文地址:https://www.cnblogs.com/zengghao/p/12296474.html
Copyright © 2020-2023  润新知