C语言寒假大作战04
一.表头
这个作业属于哪个课程|班级的链接
-|-|-
这个作业要求在哪里|作业要求的链接
这个作业的目标|使用switch编写菜单程序,使用rand函数来产生随机数,并算出生成口算题的结果
作业正文|本片博客
其他参考文献|学长录制视频,百度
二.正文
2.1设计思路和遇到的问题
设计思路:在作业03中的代码基础上只需要将各数字用一个变量表示,并且进行运算;
遇到的问题:在三年级的运算中发现自己一个错误,运算符号需要用两个字符型变量。
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,c,s;
scanf("%d",&n);
printf("<执行操作:");
printf("\n");
for(i=1;i<=n;i++)
{
m=rand()%2;
c=rand()%11;
s=rand()%11;
if(m==1)
printf("%d + %d = %d\n",c,s,c+s);
else
printf("%d - %d = %d\n",c,s,c-s);
}
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++)
{
double c,s;
m=rand()%2;
c=rand()%101;
s=rand()%101;
if(m==1)
printf("%.lf * %.lf = %g\n",c,s,c*s);
else
printf("%.lf / %.lf = %g\n",c,s,c/s);
}
printf("\n");
}
void snj()
{
printf("执行操作\n");
printf("\n");
printf("现在是三年级题目:\n");
printf("请输入生成个数> ");
int n,i;
char ch,ch1;
scanf("%d",&n);
printf("<执行操作:");
printf("\n");
for(i=1;i<=n;i++)
{
double s1,s2,m1,m2,m3;
int m4,m5;
m1=rand()%101;
m2=rand()%101;
m3=rand()%101;
m4=rand()%4;
m5=rand()%4;
switch(m4)
{
case 0:ch = '+';s1=m1+m2;break;
case 1:ch = '-';s1=m1-m2;break;
case 2:ch = '*';s1=m1*m2;break;
case 3:ch = '/';s1=m1/m2;break;
}
switch(m5)
{
case 0:ch1 = '+';s2=s1+m3;break;
case 1:ch1 = '-';s2=s1-m3;break;
case 2:ch1 = '*';s2=s1*m3;break;
case 3:ch1 = '/';s2=s1/m3;break;
}
printf("%.lf %c %.lf %c %.lf = %g\n",m1,ch,m2,ch1,m3,s2);
}
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;
}