c语言寒假大作战04

这个作业属于哪个课程 班级链接
这个作业的要求 作业链接
这个作业的目标 使用Switch语句来完成菜单程序
参考文献 百度百科

设计思路和遇到的问题

1.根据前两次作业的基础在进行运算
2.输出格式总是不正确

程序结果截图




程序代码

include<stdio.h>

include <stdlib.h>

include <time.h>

void menu(){
printf("操作列表:\n1)一年级 2)二年级 3)三年级\n4)帮助 5)退出程序\n请输入操作> ");
}
void help(){
printf("帮助信息\n您需要输入命令代号来进行操作, 且\n一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的乘除法;\n三年级题目为不超过百位的加减乘除混合题目.\n\n");
}
void error(){
printf("Error!!!\n错误操作指令, 请重新输入\n\n");
}
void firstgrade(){
srand(time(NULL));
int a,b,c,i;
char f[2]={'+','-'},fl;
printf("现在是一年级题目:\n请输入生成题目的个数:");
scanf("%d",&i);
for(;i>0;i--){
a=rand()%101;
b=rand()%101;
fl=f[rand()%2];
if(fl'+')
c=a+b;
else c=a-b;
printf("%d %c %d = %2d\n",a,fl,b,c);
}
printf("\n\n");
}
void secondgrade(){
srand(time(NULL));
int a,b,i;
double c;
char f[2]={'*','/'},fl;
printf("现在是二年级题目:\n请输入生成题目的个数:");
scanf("%d",&i);
for(;i>0;i--){
a=rand()%101;
b=rand()%101;
fl=f[rand()%2];
if(fl
'/'&&b0)b=rand()%100+1;
if(fl
'/')c=a1.0/b;
else c=a
b;
printf("%d %c %d = %2g\n",a,fl,b,c);
}
printf("\n\n");
}
void thirdgrade(){
srand(time(NULL));
int a,b,i,c,n,q;
double m;
char f[4]={'','/','+','-'},d,e;
printf("现在是三年级题目:\n请输入生成题目的个数:");
scanf("%d",&i);
for(;i>0;i--){
a=rand()%101;
d=f[rand()%4];
b=rand()%101;
if(d'/'&&b0) b=rand()%100+1;
e=f[rand()%4];
c=rand()%101;
if(e'/'&&c0) c=rand()%100+1;
switch (d)
{
case '+':n=1;break;
case '-':n=2;break;
case '
':n=3;break;
case '/':n=4;break;
}
switch (e)
{
case '+':q=1;break;
case '-':q=2;break;
case '':q=3;break;
case '/':q=4;break;
}
switch (n)
{
case 1:
if(q1)
m=a+b+c;
else if(q
2)
m=a+b-c;
else if(q==3)
m=a+b
c;
else m =a+b1.0/c;
break;
case 2:
if(q1)
m=a-b+c;
else if(q
2)
m=a-b-c;
else if(q==3)
m=a-b
c;
else m =a-b1.0/c;
break;
case 3:
if(q==1)
m=a
b+c;
else if(q2)
m=a*b-c;
else if(q
3)
m=abc;
else m =ab1.0/c;
break;
case 4:
if(q1)
m=a*1.0/b+c;
else if(q
2)
m=a1.0/b-c;
else if(q==3)
m=a
1.0/bc;
else m =a
1.0/b/c;
break;
}
printf("%2d %c %2d %c %2d = %2g\n",a,d,b,e,c,m);
}
printf("\n\n");
}

int main()
{
int a;
printf("========== 口算生成器 ==========\n欢迎使用口算生成器 :\n\n");
help();
menu();
do{
scanf("%d",&a);
printf("< 执行操作 >\n\n");
switch (a) {
case 1:firstgrade();break;
case 2:secondgrade();break;
case 3:thirdgrade();break;
case 4:help(); break;
case 5:printf("程序结束, 欢迎下次使用 任意键结束……\n");break;
default:error();break;
}
if(a!=5)menu();
}while(a!=5);
return 0;
}

Gitee上传截图与链接

posted @ 2020-03-08 12:45  钟天雄  阅读(134)  评论(0编辑  收藏  举报