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;
}