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("==========口算生成表==========\n");
    printf("欢迎使用口算生成器\n");
    printf("\n");
    help();
    printf("\n");
    while(n!=0)
    {
        menu();
        printf("请输入操作>");
        scanf("%d",&x);
        printf("<执行操作:)\n");
        printf("\n");
        printf("\n");
        switch(x)
        {
            case 1:A();break;
            case 2:B();break;
            case 3:C();break;
            case 4:help();break;
            case 5:
                n=0;
                printf("程序结束, 欢迎下次使用\n");
				printf("请按任意键继续...\n");
                break;
            default:error();break;  
        }
    }
    return 0;
}

void menu()
{ 
    printf("操作列表:\n");
    printf("1)一年级    2)二年级    3)三年级\n");
    printf("4)帮助      5)退出程序\n");
}
void help()
{
    printf("帮助信息\n");
    printf("您需要输入命令代号来进行操作, 且\n");
    printf("一年级题目为不超过十位的加减法;\n");
    printf("二年级题目为不超过百位的乘除法;\n");
    printf("三年级题目为不超过百位的加减乘除混合题目.\n");
}
void A()
{
	int o,a,b,c;
	time_t t;
	srand((unsigned) time(&t));
    printf("现在是一年级题目:\n");
    printf("请输入生成个数>\n");
    scanf("%d",&o);
    printf("<执行操作:)\n");
    for (int i=0;i<o;i++)
	{
    	a=rand() % 10;
    	b=rand() % 10;
    	c=rand() % 2;
    	if (c==0)
    	   printf("%d + %d = ___\n",a,b);
    	else
    	   printf("%d - %d = ___\n",a,b);
	}
}
void B()
{
	int o,a,b,c;
	time_t t;
	srand((unsigned) time(&t));
    printf("现在是二年级题目:\n");
    printf("请输入生成个数>\n");
    scanf("%d",&o);
    printf("<执行操作:)\n");
    for (int i=0;i<o;i++)
	{
    	a=rand() % 10;
    	b=rand() % 10;
    	c=rand() % 2;
    	if (c==0)
    	   printf("%d * %d = ___\n",a,b);
    	else
		while(b==0)
		{
			b=rand() % 10;
		 } 
    	   printf("%d / %d = ___\n",a,b);
	}
}
void C()
{
	int o,a,b,c,d;
	time_t t;
	srand((unsigned) time(&t));
    printf("现在是三年级题目:\n");
    printf("请输入生成个数>\n");
    scanf("%d",&o);
    printf("<执行操作:)\n");
    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 = ___\n",a,fh[rand() % 3],b,fh[rand() % 3],c);
    }
    
}
void error()
{
    printf("Error!!!\n");
    printf("错误操作指令, 请重新输入\n");
    printf("\n");
    printf("\n");
}

1.5 Gitee上传截图与链接

https://gitee.com/zenghao67/winter_vacation_battle_02

posted on 2020-02-11 19:57  酴灵  阅读(133)  评论(0编辑  收藏  举报

导航