c 语言寒假大作战03
2020-03-07 09:41 段誉(方寸之木) 阅读(137) 评论(0) 编辑 收藏 举报问题 | 答案 |
---|---|
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2019-1 |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10272 |
我在这个课程的目标是 | gittee与git基础命令学习与使用 |
作业正文 | https://www.cnblogs.com/dy-985211/p/12432611.html |
其它参考文献 | 百度 |
1.1.1设计思路和遇到的问题
设计思路:先写出主函数,再写菜单函数、帮助函数、执行函数(就是< 执行操作 😃)、错误函数、判断12345函数,不过因为一些原因(原因写在问题里了)把主函数调到最后了。值得一提的是主函数和判断12345的函数(在这里就简称switch函数)。主函数里面是先输出帮助函数和菜单函数,然后输入,然后输出执行函数以达到第一次输入的效果,然后用了一个while循环,在循环里面用if判断输入的数是否是12345中的一个数。在switch函数里面,我是一个一个输出的。还有就是我发现如果把“程序结束”的那句话直接放在case5后面的话,运行的时候这句话并不会出现,我就在循环后面用了一个switch函数,直接grade (5),这样就可以输出那句话了。
遇到的问题:刚开始看到这个作业的时候,我完全不知道要运用什么样的方法来进行编程,直到我看到作业的前言提示是要使用函数以及Switch语句来解决本次编程,我便简单的梳理了一下思路,运用了所学的while语句以及switch...case语句进行编写。
1.2.1程序结果截图
1.3.1程序代码
include<stdio.h>
include <time.h>
include <stdlib.h>
int menu();
int help();
int error();
int grade1(int a);
int grade2(int a);
int grade3(int a);
int main ()
{
int m=-1,n=0;
while(m != 0)
{
printf("========== 口算生成器 \n");
printf("欢迎使用口算生成器 :\n");
printf("\n");
help();
printf("\n");
printf("\n");
menu();
scanf("%d",&n);
switch(n)
{
case 1:grade1(n);break;
case 2:grade2(n);break;
case 3:grade3(n);break;
case 4:help();break;
case 5:printf("程序结束, 欢迎下次使用\n任意键结束……");break;
default:error();break;
}
}
}
int menu()
{
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n");
printf("4)帮助 5)退出程序\n");
printf("请输入操作> \n");
return 1;
}
int help()
{
printf("帮助信息\n");
printf("您需要输入命令代号来进行操作, 且\n");
printf("一年级题目为不超过十位的加减法;\n");
printf("二年级题目为不超过百位的乘除法;\n");
printf("三年级题目为不超过百位的加减乘除混合题目.\n");
return 1;
}
int error()
{
printf("Error!!!\n");
printf("错误操作指令, 请重新输入\n");
return 1;
}
int grade1(int a)
{
int n,i,b,c,d;
char op;
srand((unsigned)time( NULL ));
printf("现在是一年级题目\n");
printf("请输入生成个数>\n");
scanf("%d",&n);
printf("<执行操作:)\n");
for(i=0;i<n;i++)
{
b=rand()%2;
if(b0)
op='-';
if(b1)
op='+';
c=rand()%10;
d=rand()%10;
printf("%2d %c %2d = ___\n",c,op,d);
}
printf("执行完了(小声,假装这里有操作\n");
return 1;
}
int grade2(int a)
{
int i,n,b,c,d;
char op;
srand((unsigned)time( NULL ));
printf("现在是二年级题目\n");
printf("请输入生成个数>\n");
scanf("%d",&n);
printf("<执行操作:)\n");
for(i=0;i<n;i++)
{
b=rand()%2;
if(b0)
op='*';
if(b1)
op='/';
c=rand()%10;
d=rand()%10;
if(op'/'&&d0)
d=rand()%9+1;
printf("%2d %c %2d = ___\n",c,op,d);
}
printf("执行完了(小声,假装这里有操作\n");
return 1;
}
int grade3(int a)
{
int n,i,b,c,d,e,f;
char op1,op2;
printf("<执行操作:)\n");
printf("现在是三年级题目\n");
printf("请输入生成个数>\n");
scanf("%d",&n);
printf("<执行操作:)\n");
for(i=0;i<n;i++)
{
b=rand()%4;
if(b0)
op1='-';
if(b1)
op1='+';
if(b2)
op1='';
if(b3)
op1='/';
c=rand()%100;
d=rand()%100;
if(op1'/'&&d0)
d=rand()%99+1;
e=rand()%4;
if(e0)
op2='-';
if(e1)
op2='+';
if(e2)
op2='';
if(e3)
op2='/';
f=rand()%100;
if(op2'/'&&f==0)
f=rand()%99+1;
printf("%2d %c %2d %c %2d = ___\n",c,op1,d,op2,f);
}
printf("执行完了(小声,假装这里有操作\n");
return 1;
}