C语言寒假大作战03
一.表头
这个作业属于哪个课程|班级的链接
-|-|-
这个作业要求在哪里|作业要求的链接
这个作业的目标|使用switch编写菜单程序,使用rand函数来产生随机数,并以规律进行排列
作业正文|本片博客
其他参考文献|学长录制视频,C库函数
二.正文
2.1设计思路和遇到的问题
设计思路:在寒假大作战02作业的基础上运用rand()函数来输出一个范围内的随机数;
遇到的问题:不知道如何随机输出加减乘除的符号。
2.2程序结果截图
2.3程序代码
需要使用新增加的三个函数,且使用上次作业的框架,调用关系如上面思维导图
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void ynj()
{
printf("执行操作\n");
printf("\n");
printf("现在是一年级题目:\n");
printf("请输入生成个数> ");
int n,i,m;
scanf("%d",&n);
printf("<执行操作:");
printf("\n");
for(i=1;i<=n;i++)
{
m=rand()%2;
if(m==1)
printf("%d + %d = ___\n",rand()%11,rand()%11);
else
printf("%d - %d = ___\n",rand()%11,rand()%11);
}
printf("\n");
}
void enj()
{
printf("执行操作\n");
printf("\n");
printf("现在是二年级题目:\n");
printf("请输入生成个数> ");
int n,i,m;
scanf("%d",&n);
printf("<执行操作:");
printf("\n");
for(i=1;i<=n;i++)
{
m=rand()%2;
if(m==1)
printf("%d * %d = ___\n",rand()%101,rand()%101);
else
printf("%d / %d = ___\n",rand()%101,rand()%101);
}
printf("\n");
}
void snj()
{
printf("执行操作\n");
printf("\n");
printf("现在是三年级题目:\n");
printf("请输入生成个数> ");
int n,i,m4,m5;
char ch,ch1;
scanf("%d",&n);
printf("<执行操作:");
printf("\n");
for(i=1;i<=n;i++)
{
m4=rand()%4;
m5=rand()%4;
switch(m4)
{
case 1:ch = '+';break;
case 2:ch = '-';break;
case 3:ch = '*';break;
case 0:ch = '/';break;
}
switch(m5)
{
case 1:ch1 = '+';break;
case 2:ch1 = '-';break;
case 3:ch1 = '*';break;
case 0:ch1 = '/';break;
}
printf("%d %c %d %c %d = ___\n",rand()%101,ch,rand()%101,ch1,rand()%101);
}
printf("\n");
}
void cw()
{
printf("执行操作\n");
printf("\n");
printf("Error!!!\n");
printf("错误操作指令,请重新输入\n");
printf("\n");
}
void help()
{
printf("\n");
printf("帮助信息:\n");
printf("您需要输入命令代号来进行操作,且\n");
printf("一年级题目为不超过十位的加减法;\n");
printf("二年级题目为不超过百位的乘除法;\n");
printf("三年级题目为不超过百位的加减乘除混合题目;\n");
printf("\n");
}
int main()
{
printf("========== 口算生成器 ==========\n");
printf("欢迎使用口算生成器:)\n");
printf("\n");
printf("帮助信息:\n");
printf("您需要输入命令代号来进行操作,且\n");
printf("一年级题目为不超过十位的加减法;\n");
printf("二年级题目为不超过百位的乘除法;\n");
printf("三年级题目为不超过百位的加减乘除混合题目;\n");
printf("\n");
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n");
printf("4)帮助 5)退出程序\n");
printf("请输入操作> ");
int a,b=1;
scanf("%d",&a);
while(5)
{
if(a==5)
{
break;
}
switch(a)
{
case 1:ynj();break;
case 2:enj();break;
case 3:snj();break;
case 4:help();break;
default :cw();break;
}
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n");
printf("4)帮助 5)退出程序\n");
printf("请输入操作> ");
a=0;
scanf("%d",&a);
}
printf("执行操作\n");
printf("\n");
printf("程序结束,欢迎下次使用任意键结束......");
getchar();
return 0;
}