C语言寒假大作战04

2.2.1 作业头:

这个作业属于哪个课程 计科一班
这个作业要求在哪里 C语言寒假大作战04
这个作业的目标 生成答案
作业正文 使用上次作业的菜单框架,并在其基础上增加各年级题目的答案
其他参考文献

2.2.2 设计思路和遇到的问题

设计思路:把原先(rand()%(9-0+1)+0)这样类型的用变量代替,方便计算。

遇到的问题:无。

2.2.3 程序结果截图



2.2.4 程序代码

#include<stdio.h>
#include<stdlib.h>
int rand(void);
void f1();
void f2();
void f3();
void f4();
void f5();
void f6();
int main(void)
{
	printf("========== 口算生成器 ==========\n");
	printf("欢迎使用口算生成器 :\n\n\n");
	printf("帮助信息\n");
	printf("您需要输入命令代号来进行操作, 且\n");
	printf("一年级题目为不超过十位的加减法;\n");
	printf("二年级题目为不超过百位的乘除法;\n");
	printf("三年级题目为不超过百位的加减乘除混合题目.\n\n\n");
	
	int n;
	while(1)
	{
		printf("操作列表:\n");
		printf("1)一年级\t2)二年级\t3)三年级\n");
		printf("4)帮助\t5)退出程序\n");
		printf("请输入操作>");
		scanf("%d",&n);
		switch(n)
		{
			case 1:f1();break;
			case 2:f2();break;
			case 3:f3();break;
			case 4:f4();break;
			case 5:f5();break;
			default:f6();break;
		}
		if(n==5)
			break;
	}
	
	
	return 0;
}
void f1()
{
	int n;
	int middle,x,y;
	char ch;
	x=rand()%(9-0+1)+0;
	y=rand()%(9-0+1)+0;
	ch=rand()%(45-43+1)+43;
	printf("<执行操作 :)\n\n");
	printf("现在是一年级题目:\n");
	printf("请输入生成个数>");
	scanf("%d",&n); 
	printf("<执行操作:)\n\n");
	for(int i = 1;i <= n;i ++)
	{
		A:
			{
				ch=rand()%(45-43+1)+43;
				x=rand()%(9-0+1)+0;
				y=rand()%(9-0+1)+0;
			}
		if(ch==44)
			goto A;
		printf("%d %c %d = ",x,ch,y);
		if(ch==43)
			middle=x+y;
		else
			middle=x-y;
		printf("%d\n",middle); 
	}
}
void f2()
{
	int n;
	char ch;
	int x,y;
	double middle;
	ch=rand()%(47-42+1)+42;
	y=rand()%(99-0+1)+0;
	x=rand()%(99-0+1)+0;
	printf("<执行操作 :)\n\n");
	printf("现在是二年级题目:\n");
	printf("请输入生成个数>");
	scanf("%d",&n);
	printf("<执行操作:)\n\n");
	for(int i = 1;i <= n;i ++)
	{
		A:
			{
				ch=rand()%(47-42+1)+42;
				x=rand()%(99-0+1)+0;
				y=rand()%(99-0+1)+0;
			}
		if((ch!=47&&ch!=42)||(ch==47&&y==0))
			goto A;
		printf("%2d %c %2d = ",x,ch,y);
		if(ch==47)
		{
			middle=1.0/y*x;
			printf("%lf\n",middle);
		}
		else
		{
			middle=x*y;
			printf("%.0lf\n",middle);
		}
	} 
}	
void f3()																				
{
	int n;
	char ch1,ch2;
	int x,y,z;
	double middle;
	x=rand()%(99-0+1)+0;
	y=rand()%(99-0+1)+0;
	z=rand()%(99-0+1)+0;
	ch1=rand()%(47-42+1)+42;
	ch2=rand()%(47-42+1)+42;
	printf("<执行操作 :)\n\n");
	printf("现在是三年级题目:\n");
	printf("请输入生成个数>");
	scanf("%d",&n);
	printf("<执行操作:)\n\n");
	for(int i = 1;i <= n;i ++)
	{
		A:
			{
				x=rand()%(99-0+1)+0;
				y=rand()%(99-0+1)+0;
				z=rand()%(99-0+1)+0;
				ch1=rand()%(47-42+1)+42;
				ch2=rand()%(47-42+1)+42;
			}
		if((ch1!=47&&ch1!=42&&ch1!=43&&ch1!=45)||(ch2!=47&&ch2!=42&&ch2!=43&&ch2!=45)||(ch1==47&&x==0)||(ch2==47&&y==0))
			goto A;
		printf("%2d %c %2d %c %2d = ",z,ch1,x,ch2,y);
		switch(ch1)
		{
			case 42:switch(ch2)
					{
						case 42:middle=z*x*y;printf("%g\n",middle);break;
						case 43:middle=z*x+y;printf("%g\n",middle);break;
						case 45:middle=z*x-y;printf("%g\n",middle);break;
						case 47:middle=z*x*(1.0/y);printf("%g\n",middle);break;
					}break;
			case 43:switch(ch2)
					{
						case 42:middle=z+x*y;printf("%g\n",middle);break;
						case 43:middle=z+x+y;printf("%g\n",middle);break;
						case 45:middle=z+x-y;printf("%g\n",middle);break;
						case 47:middle=z+x*(1.0/y);printf("%g\n",middle);break;
					}break;
			case 45:switch(ch2)
					{
						case 42:middle=z-x*y;printf("%g\n",middle);break;
						case 43:middle=z-x+y;printf("%g\n",middle);break;
						case 45:middle=z-x-y;printf("%g\n",middle);break;
						case 47:middle=z-x*(1.0/y);printf("%g\n",middle);break;
					}break;
			case 47:switch(ch2)
					{
						case 42:middle=z*(1.0/x)*y;printf("%g\n",middle);break;
						case 43:middle=z*(1.0/x)+y;printf("%g\n",middle);break;
						case 45:middle=z*(1.0/x)-y;printf("%g\n",middle);break;
						case 47:middle=z*(1.0/x)*(1.0/y);printf("%g\n",middle);break;
					}break;
		}
	} 
}
void f4()
{
	printf("<执行操作 :)\n\n");
	printf("帮助信息\n");
	printf("您需要输入命令代号来进行操作, 且\n");
	printf("一年级题目为不超过十位的加减法;\n");
	printf("二年级题目为不超过百位的乘除法;\n");
	printf("三年级题目为不超过百位的加减乘除混合题目.\n\n\n");
}
void f5()
{
	printf("程序结束, 欢迎下次使用\n\n");
	printf("任意键结束……\n");
}
void f6()
{
	printf("Error!!!\n\n");
	printf("错误操作指令,请重新输入\n\n");
}

2.2.5 Gitee上传截图与链接


2.2.6 我的主页

我的主页

posted @ 2020-02-09 19:59  zhoushikang  阅读(144)  评论(0编辑  收藏  举报