C语言寒假大作战03

一.表头

这个作业属于哪个课程|班级的链接
-|-|-
这个作业要求在哪里|作业要求的链接
这个作业的目标|使用switch编写菜单程序,使用rand函数来产生随机数,并以规律进行排列
作业正文|本片博客
其他参考文献|学长录制视频C库函数

二.正文

2.1设计思路和遇到的问题

设计思路:在寒假大作战02作业的基础上运用rand()函数来输出一个范围内的随机数;
遇到的问题:不知道如何随机输出加减乘除的符号。

2.2程序结果截图



2.3程序代码
需要使用新增加的三个函数,且使用上次作业的框架,调用关系如上面思维导图

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void ynj()
{
	printf("执行操作\n");
	printf("\n");
	printf("现在是一年级题目:\n");
	printf("请输入生成个数> ");
	int n,i,m;
	scanf("%d",&n);
	printf("<执行操作:"); 
	printf("\n");
	for(i=1;i<=n;i++)
	{
		m=rand()%2;
		if(m==1)
		printf("%d + %d = ___\n",rand()%11,rand()%11);
		else
		printf("%d - %d = ___\n",rand()%11,rand()%11);
	}
	printf("\n");
}
void enj()
{
	printf("执行操作\n");
	printf("\n");
	printf("现在是二年级题目:\n");
	printf("请输入生成个数> ");
	int n,i,m;
	scanf("%d",&n);
	printf("<执行操作:"); 
	printf("\n");
	for(i=1;i<=n;i++)
	{
		m=rand()%2;
		if(m==1)
		printf("%d * %d = ___\n",rand()%101,rand()%101);
		else
		printf("%d / %d = ___\n",rand()%101,rand()%101);
	}
	printf("\n");
}
void snj()
{
	printf("执行操作\n");
	printf("\n");
	printf("现在是三年级题目:\n");
	printf("请输入生成个数> ");
	int n,i,m4,m5;
	char ch,ch1;
	scanf("%d",&n);
	printf("<执行操作:"); 
	printf("\n");
	for(i=1;i<=n;i++)
	{
		m4=rand()%4;
		m5=rand()%4;
		switch(m4)
		{
			case 1:ch = '+';break;
			case 2:ch = '-';break;
			case 3:ch = '*';break;
			case 0:ch = '/';break;
		}
		switch(m5)
		{
			case 1:ch1 = '+';break;
			case 2:ch1 = '-';break;
			case 3:ch1 = '*';break;
			case 0:ch1 = '/';break;
		}
		printf("%d %c %d %c %d = ___\n",rand()%101,ch,rand()%101,ch1,rand()%101);
		 
	}
	printf("\n");
}
void cw()
{
	printf("执行操作\n");
	printf("\n");
	printf("Error!!!\n");
	printf("错误操作指令,请重新输入\n");
	printf("\n");
}
void help()
{
	printf("\n");
	printf("帮助信息:\n");
	printf("您需要输入命令代号来进行操作,且\n");
	printf("一年级题目为不超过十位的加减法;\n");
	printf("二年级题目为不超过百位的乘除法;\n");
	printf("三年级题目为不超过百位的加减乘除混合题目;\n"); 
	printf("\n");
}
int main()
{
	printf("========== 口算生成器 ==========\n");
	printf("欢迎使用口算生成器:)\n");
	printf("\n");
	printf("帮助信息:\n");
	printf("您需要输入命令代号来进行操作,且\n");
	printf("一年级题目为不超过十位的加减法;\n");
	printf("二年级题目为不超过百位的乘除法;\n");
	printf("三年级题目为不超过百位的加减乘除混合题目;\n"); 
	printf("\n");
	printf("操作列表:\n");
	printf("1)一年级   2)二年级  3)三年级\n");
	printf("4)帮助   5)退出程序\n");
	printf("请输入操作> ");
	int a,b=1;
	scanf("%d",&a);
	while(5)
	{
		if(a==5)
		{
			break;
		}
		switch(a)
		{
			case 1:ynj();break;
			case 2:enj();break;
			case 3:snj();break;
			case 4:help();break;
			default :cw();break; 
		}
		printf("操作列表:\n");
	    printf("1)一年级   2)二年级  3)三年级\n");
	    printf("4)帮助   5)退出程序\n");
	    printf("请输入操作> ");
	    a=0;
	    scanf("%d",&a);
	}
    printf("执行操作\n");
	printf("\n");
	printf("程序结束,欢迎下次使用任意键结束......");
	getchar();
	return 0;
}

2.4Gitee上传截图与链接

链接
主页

posted @ 2020-02-11 11:33  陈double  阅读(110)  评论(0编辑  收藏  举报