C语言寒假大作战04

一.表头

这个作业属于哪个课程|班级的链接
-|-|-
这个作业要求在哪里|作业要求的链接
这个作业的目标|使用switch编写菜单程序,使用rand函数来产生随机数,并算出生成口算题的结果
作业正文|本片博客
其他参考文献|学长录制视频百度

二.正文

2.1设计思路和遇到的问题

设计思路:在作业03中的代码基础上只需要将各数字用一个变量表示,并且进行运算;
遇到的问题:在三年级的运算中发现自己一个错误,运算符号需要用两个字符型变量。

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,c,s;
	scanf("%d",&n);
	printf("<执行操作:"); 
	printf("\n");
	for(i=1;i<=n;i++)
	{
		m=rand()%2;
		c=rand()%11;
		s=rand()%11;
		if(m==1)
		printf("%d + %d = %d\n",c,s,c+s);
		else
		printf("%d - %d = %d\n",c,s,c-s);
	}
	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++)
	{
		double c,s;
		m=rand()%2;
		c=rand()%101;
		s=rand()%101;
		if(m==1)
		printf("%.lf * %.lf = %g\n",c,s,c*s);
		else
		printf("%.lf / %.lf = %g\n",c,s,c/s);
	}
	printf("\n");
}
void snj()
{
	printf("执行操作\n");
	printf("\n");
	printf("现在是三年级题目:\n");
	printf("请输入生成个数> ");
	int n,i;
	char ch,ch1;
	scanf("%d",&n);
	printf("<执行操作:"); 
	printf("\n");
	for(i=1;i<=n;i++)
	{
		double s1,s2,m1,m2,m3;
		int m4,m5;
		m1=rand()%101;
		m2=rand()%101;
		m3=rand()%101;
		m4=rand()%4;
		m5=rand()%4;
		switch(m4)
		{
			case 0:ch = '+';s1=m1+m2;break;
			case 1:ch = '-';s1=m1-m2;break;
			case 2:ch = '*';s1=m1*m2;break;
			case 3:ch = '/';s1=m1/m2;break;
		}
		switch(m5)
		{
			case 0:ch1 = '+';s2=s1+m3;break;
			case 1:ch1 = '-';s2=s1-m3;break;
			case 2:ch1 = '*';s2=s1*m3;break;
			case 3:ch1 = '/';s2=s1/m3;break;
		}
		printf("%.lf %c %.lf %c %.lf = %g\n",m1,ch,m2,ch1,m3,s2);
		 
	}
	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 15:33  陈double  阅读(95)  评论(0编辑  收藏  举报