寒假大作战03
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2019-2 |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10271 |
这个作业的目标 | 使用函数、Switch语句来完成菜单程序 |
作业正文 | https://i-beta.cnblogs.com/posts/edit;postId=12300242 |
参考文献 | https://www.runoob.com/cprogramming/c-function-rand.html |
1. 设计思路和遇到的问题
1.根据作业要求知道需要在各个年级显示的内容做修改
2.感觉这次作业比较困难,不仅要随机出题,还得弄好出题个数,通过查找百度资料和询问同学才基本搞懂
2. 程序结果截图
3. 程序代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void one(){
srand(time(NULL));
int x,y,i,n;
char op[2]={'+','-'};
printf("现在是一年级题目:\n请输入生成题目的个数:");
scanf("%d",&n);
for(i=n;i>0;i--){
x=rand()%11;
y=rand()%11;
printf("%d %c %d = ___\n",x,op[rand()%2],y);
}
printf("\n\n");
}
void two(){
srand(time(NULL));
int x,y,i,n;
char op[2]={'*','/'},c;
printf("现在是二年级题目:\n请输入生成题目的个数:");
scanf("%d",&n);
for(i=n;i>0;i--){
x=rand()%101;
y=rand()%101;
c=op[rand()%2];
if(c=='/'&&y==0)
y=rand()%100+1;
printf("%d %c %d = ___\n",x,c,y);
}
printf("\n\n");
}
void three(){
srand(time(NULL));
int x,y,z,i,n;
char op[4]={'*','/','+','-'},op1,op2;
printf("现在是三年级题目:\n请输入生成题目的个数:");
scanf("%d",&n);
for(i=n;i>0;i--){
x=rand()%101;
op1=op[rand()%4];
y=rand()%101;
if(op1=='/'&&y==0)
y=rand()%100+1;
op2=op[rand()%4];
z=rand()%101;
if(op2=='/'&&z==0)
z=rand()%100+1;
printf("%2d %c %2d %c %2d = ___\n",x,op1,y,op2,z);
}
printf("\n\n");
}void menu(){
printf("操作列表\n1)一年级 2)二年级 3)三年级\n4)帮助 5)退出程序\n\n请输入操作>");
}
void help(){
printf("帮助信息\n您需要输入命令代号来进行操作, 且\n一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的乘除法;\n三年级题目为不超过百位的加减乘除混合题目.\n\n");
}
void error(){
printf("Error!!!\n错误操作指令, 请重新输入\n\n");
}
int main(){
int x=0;
printf("========== 口算生成器 ==========\n欢迎使用口算生成器 :\n\n");
help();
menu();
while(x!=5){
scanf("%d",&x);
printf("<执行操作:)\n\n");
switch(x){
case 1:one();break;
case 2:two();break;
case 3:three();break;
case 4:help();break;
case 5:printf("程序结束,欢迎下次使用 任意键结束......");break;
default:error();break;
}if (x!=5)menu();
}
return 0;
}
4.Gitee上传截图与链接
码云链接
https://gitee.com/wangdongfk