C语言寒假大作战03

2.2.1本次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-1
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10272
我在这个课程的目标是 gitee 与 git基础命令学习与使用;通过命令列表和视频学习,注册、登录、上传文件、克隆仓库;学会制作菜单栏;使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数
作业正文 https://www.cnblogs.com/cc2000/p/12259221.html
参考文献 百度百科rand函数的调用

2.2.2 设计思路和遇到的问题

心理过程:看到这个作业的时候,我肯定知道下面有链接解释,我便打开了链接,请教了同学,搜索了百度,我便慢慢明白了如何去设计
设计思路“rand函数的调用”我看了这个提示之后,看了同学写的代码,请教了同学,理清了思路。这个是在菜单的基础上去设计随机计算。可想而知符号是随机的,数字也是随机的。我查了百度rand函数的意义,参考了同学们的代码有几份和我想的思路差不多,因为忘记了Ascll码值又觉得很复杂,我便结合rand函数和字符,设置了rand()%2-4,去随机选择函数。数字和这个差不多。除号后面不能是0,便用逻辑符号&&去排除。思路大概就是这样
遇到的问题:刚开始不知道是用Ascll码值去设计字符,还是用rand函数,想了想用简单的去写吧。(看了同学的代码还是rand简单一些)。

2.2.3 程序结果截图




2.2.4 程序代码

#include<stdio.h>
#include <time.h>
#include <stdlib.h>
int menu();
int help();
int error();
int grade1(int a);
int grade2(int a);
int grade3(int a);
int main ()
{
	int m=-1,n=0;
	while(m != 0)
	{
		printf("========== 口算生成器 ==========\n");
		printf("欢迎使用口算生成器 :\n");
		printf("\n"); 
		help();
		printf("\n");
		printf("\n");
		menu();
		scanf("%d",&n);
		switch(n)
		{
			case 1:grade1(n);break;
			case 2:grade2(n);break;
			case 3:grade3(n);break;
			case 4:help();break;
			case 5:printf("程序结束, 欢迎下次使用\n任意键结束……");break;
			default:error();break;
		}
	}
}
int menu()
{
	printf("操作列表:\n");
	printf("1)一年级    2)二年级    3)三年级\n");
	printf("4)帮助      5)退出程序\n");
	printf("请输入操作> \n");
	return 1; 
}
int help()
{
	printf("帮助信息\n");
	printf("您需要输入命令代号来进行操作, 且\n");
	printf("一年级题目为不超过十位的加减法;\n");
	printf("二年级题目为不超过百位的乘除法;\n");
	printf("三年级题目为不超过百位的加减乘除混合题目.\n");
	return 1;
}
int error()
{
	printf("Error!!!\n");
	printf("错误操作指令, 请重新输入\n");
	return 1;
}
int grade1(int a)
{
	int n,i,b,c,d;
	char op;
	srand((unsigned)time( NULL ));
	printf("现在是一年级题目\n");
	printf("请输入生成个数>\n");
	scanf("%d",&n); 
	printf("<执行操作:)\n");
	for(i=0;i<n;i++)
	{
		b=rand()%2;
		if(b==0)
		  op='-';
		if(b==1)
		  op='+';
		c=rand()%10;
		d=rand()%10;
		printf("%2d %c %2d = ___\n",c,op,d);
	}
    printf("执行完了(小声,假装这里有操作\n");
	return 1;
}
int grade2(int a)
{
	int i,n,b,c,d;
	char op;
	srand((unsigned)time( NULL ));
	printf("现在是二年级题目\n");
	printf("请输入生成个数>\n");
	scanf("%d",&n);
	printf("<执行操作:)\n");
	for(i=0;i<n;i++)
	{
		b=rand()%2;
		if(b==0)
		  op='*';
		if(b==1)
		  op='/';
		c=rand()%10;
		d=rand()%10;
		if(op=='/'&&d==0)
		  d=rand()%9+1;
		printf("%2d %c %2d = ___\n",c,op,d);
	}
	printf("执行完了(小声,假装这里有操作\n");
	return 1;
}
int grade3(int a)
{
	int n,i,b,c,d,e,f;
	char op1,op2;
	printf("<执行操作:)\n");
	printf("现在是三年级题目\n");
	printf("请输入生成个数>\n");
	scanf("%d",&n);
	printf("<执行操作:)\n");
	for(i=0;i<n;i++)
	{
		b=rand()%4;
		if(b==0)
		   op1='-';
		if(b==1)
		   op1='+';
		if(b==2)
		   op1='*';
		if(b==3)
		   op1='/';
		c=rand()%100;
		d=rand()%100;
		if(op1=='/'&&d==0)
		   d=rand()%99+1;
		e=rand()%4;
		if(e==0)
		   op2='-';
		if(e==1)
		   op2='+';
		if(e==2)
		   op2='*';
		if(e==3)
		   op2='/';
		f=rand()%100;
		if(op2=='/'&&f==0)
		   f=rand()%99+1;
		printf("%2d %c %2d %c %2d = ___\n",c,op1,d,op2,f);
	}
	printf("执行完了(小声,假装这里有操作\n");
	return 1;
}

2.2.5 Gitee上传截图与链接

码云:https://gitee.com/chen_yi_yang/dashboard/projects

posted on 2020-02-11 18:23  李政委  阅读(137)  评论(0编辑  收藏  举报

导航