C语言寒假大作战03
问题|答案
-|-|-
这个作业属于哪个课程|班级链接
这个作业的要求在哪里|作业要求
这个作业的目标|在自主设计一个菜单栏的基础上增加各年级题目操作函数。
作业正文|如下
参考文献|作业要求里提供的一系列文献随机数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("========口算生成器========\n");
printf("欢迎使用口算生成器:\n");
printf("\n");
help();
while(cj)
{
menu();
scanf("%d",&cj);
if(cj==5)
break;
switch(cj)
{
case 1:printf("现在是一年级题目:\n");
printf("请输入生成题目个数:");
scanf("%d",&b);
printf("题目列表:\n");
printf("\n");
for(i=0;i<b;i++)
{
m=rand()%2;
if(m==1)
printf(" %d + %d = \n", rand()%11,rand()%11);
else
printf(" %d - %d = \n", rand()%11,rand()%11);
}
break;
case 2:printf("现在是二年级题目:\n");
printf("请输入生成题目个数:");
scanf("%d",&b);
printf("题目列表:\n");
printf("\n");
for(i=0;i<b;i++)
{
m=rand()%2;
if(m==1)
printf(" %d * %d = \n", rand()%101,rand()%101);
else
printf(" %d / %d = \n", rand()%100+1,rand()%100+1);
}
break;
case 3:printf("现在是三年级题目:\n");
printf("请输入生成题目个数:");
scanf("%d",&b);
printf("题目列表:");
printf("\n");
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 = \n",rand()%101,ch,rand()%100+1,ch2,rand()%100+1);
}
break;
case 4:help();
break;
default:error(cj);
break;
}
printf("\n");
}
printf("\n");
printf("程序结束,欢迎下次使用....");
}
void help()
{
printf("帮助信息:\n");
printf("你需要输入命令代号来进行操作,且\n");
printf("一年级题目不超过十位数的加减法:\n");
printf("二年级题目不超过百位的乘除发:\n");
printf("三年级题目不超过百位的加减乘除混合题目。\n");
printf("\n");
}
void menu()
{
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n");
printf("4)帮助 5)提出程序\n");
printf("<请输入操作>:");
printf("\n");
}
void error(int a)
{
printf("Error!!!");
printf("错误操作指令,请重新输入\n");
}