问题 | 答案 |
---|---|
这个作业属于哪个课程 | 班级链接 |
这个作业的要求在哪里 | 作业要求 |
这个作业的目标 | 在自主设计一个菜单栏的基础上增加各年级题目操作函数。 |
作业正文 | 如下 |
参考文献 | 作业要求里提供的一系列文献随机数rand,百度百科,dev 码云。 |
2.1设计的思路和遇到的问题。
(1)设计思路:在上次完成的菜单栏框架的基础上在执行一年级,二年级,三年级的switch语句里面加上rand随机数函数来生成计算式子。
(2)遇到的问题:二年级的随机式子总是只生成一个,反复检查后发现是其中一个变量设置错了。
2.2程序结果截图
2.3程序代码
'''
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu();
void error(int a);
void help();
int main()
{
int cj=1;
int b,m,i,ch,ch2,g;
printf("========口算生成器========
");
printf("欢迎使用口算生成器:
");
printf("
");
help();
while(cj)
{
menu();
scanf("%d",&cj);
if(cj==5)
break;
switch(cj)
{
case 1:printf("现在是一年级题目:
");
printf("请输入生成题目个数:");
scanf("%d",&b);
printf("题目列表:
");
printf("
");
for(i=0;i<b;i++)
{
m=rand()%2;
if(m==1)
printf(" %d + %d =
", rand()%11,rand()%11);
else
printf(" %d - %d =
", rand()%11,rand()%11);
}
break;
case 2:printf("现在是二年级题目:
");
printf("请输入生成题目个数:");
scanf("%d",&b);
printf("题目列表:
");
printf("
");
for(i=0;i<b;i++)
{
m=rand()%2;
if(m==1)
printf(" %d * %d =
", rand()%101,rand()%101);
else
printf(" %d / %d =
", rand()%100+1,rand()%100+1);
}
break;
case 3:printf("现在是三年级题目:
");
printf("请输入生成题目个数:");
scanf("%d",&b);
printf("题目列表:");
printf("
");
for(i=0;i<b;i++)
{
m=rand()%4;
switch(m)
{
case 0:
ch='+';break;
case 1:
ch='-';break;
case 2:
ch='*';break;
case 3:
ch='/';break;
}
g=rand()%4;
switch(g)
{
case 0:
ch2='+';break;
case 1:
ch2='-';break;
case 2:
ch2='*';break;
case 3:
ch2='/';break;
}
printf(" %d %c %d %c %d =
",rand()%101,ch,rand()%100+1,ch2,rand()%100+1);
}
break;
case 4:help();
break;
default:error(cj);
break;
}
printf("
");
}
printf("
");
printf("程序结束,欢迎下次使用....");
}
void help()
{
printf("帮助信息:
");
printf("你需要输入命令代号来进行操作,且
");
printf("一年级题目不超过十位数的加减法:
");
printf("二年级题目不超过百位的乘除发:
");
printf("三年级题目不超过百位的加减乘除混合题目。
");
printf("
");
}
void menu()
{
printf("操作列表:
");
printf("1)一年级 2)二年级 3)三年级
");
printf("4)帮助 5)提出程序
");
printf("<请输入操作>:");
printf("
");
}
void error(int a)
{
printf("Error!!!");
printf("错误操作指令,请重新输入
");
}