C语言寒假大作战03

2.2.1 作业头:

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

2.2.2 设计思路和遇到的问题

设计思路:因为题目要求随机生成各年级计算题目,看到随机俩字,首先想到rand函数,数字处理完后就是符号了;先找到加减乘除的ASCII码,然后用if语句与goto语句找出加减乘除;对于除号后面的数不为零这个问题,用if与goto也可以办到,如果该字符为%并且该字符后面的数为零,就用goto跳到上一个语句,重新赋值,最后打印就好了。

遇到的问题:无。

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;
	char ch;
	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;
		if(ch==44)
			goto A;
		printf("%d %c %d = ___\n",rand()%(9-0+1)+0,ch,rand()%(9-0+1)+0);
	}
}
void f2()
{
	int n;
	char ch;
	int x,y;
	ch=rand()%(42-37+1)+37;
	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()%(42-37+1)+37;
				x=rand()%(99-0+1)+0;
				y=rand()%(99-0+1)+0;
			}
		if((ch!=37&&ch!=42)||(ch==37&&y==0))
			goto A;
		printf("%2d %c %2d = ___\n",x,ch,y);
	} 
}	
void f3()																				
{
	int n;
	char ch1,ch2;
	int x,y;
	x=rand()%(99-0+1)+0;
	y=rand()%(99-0+1)+0;
	ch1=rand()%(45-37+1)+37;
	ch2=rand()%(45-37+1)+37;
	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;
				ch1=rand()%(45-37+1)+37;
				ch2=rand()%(45-37+1)+37;
			}
		if((ch1!=37&&ch1!=42&&ch1!=43&&ch1!=45)||(ch2!=37&&ch2!=42&&ch2!=43&&ch2!=45)||(ch1==37&&x==0)||(ch2==37&&y==0))
			goto A;
		printf("%2d %c %2d %c %2d = ___\n",rand()%(99-0+1)+0,ch1,x,ch2,y);
	} 
}
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-07 12:52  zhoushikang  阅读(192)  评论(0编辑  收藏  举报