c 语言寒假大作战02

问题 答案
这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-1
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10262
我在这个课程的目标是 gittee与git基础命令学习与使用
作业正文 https://www.cnblogs.com/dy-985211/p/12432502.html
其它参考文献 百度,rand函数的调用

1.1.1设计思路和遇到的问题

设计思路:先写出主函数,再写菜单函数、帮助函数、执行函数(就是< 执行操作 :))、错误函数、判断12345函数,不过因为一些原因(原因写在问题里了)把主函数调到最后了。值得一提的是主函数和判
断12345的函数(在这里就简称switch函数)。主函数里面是先输出帮助函数和菜单函数,然后输入,然后输出执行函数以达到第一次输入的效果,然后用了一个while循环,在循环里面用if判断输入的数是否
是12345中的一个数。在switch函数里面,我是一个一个输出的。还有就是我发现如果把“程序结束”的那句话直接放在case5后面的话,运行的时候这句话并不会出现,我就在循环后面用了一个switch函数,
直接grade (5),这样就可以输出那句话了。
遇到的问题:刚开始看到这个作业的时候,我完全不知道要运用什么样的方法来进行编程,直到我看到作业的前言提示是要使用函数以及Switch语句来解决本次编程,我便简单的梳理了一下思路,运用了所学的while语句以及switch...case语句进行编写。

1.2.1程序结果截图

c 语言寒假大作战02
c 语言寒假大作战02
c 语言寒假大作战02

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,sum=0;
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(b==0)
op='-';
if(b==1)
op='+';
c=rand()%10;
d=rand()%10;
if(op=='+')
sum=c+d;
else
sum=c-d;
printf("%2d %2c %2d = %2d\n",c,op,d,sum);
}
printf("执行完了(小声,假装这里有操作\n");
return 1;
}
int grade2(int a)
{
int i,n,b;
double c,d,sum=0;
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(b==0)
op='';
if(b==1)
op='/';
c=rand()%10;
d=rand()%10;
if(op=='/'&&d==0)
d=rand()%9+1;
if(op=='
')
sum=cd;
else
sum=c/d;
printf("%2g %2c %2g = %2g\n",c,op,d,sum);
}
printf("执行完了(小声,假装这里有操作\n");
return 1;
}
int grade3(int a)
{
int n,i,b,e;
double c,d,f,sum1=0,sum2=0;
char op1,op2;
printf("<执行操作:)\n");
printf("现在是三年级题目\n");
printf("请输入生成个数>\n");
scanf("%d",&n);
printf("<执行操作:)\n");
for(i=0;i<n;i++)
{
b=rand()%4;
if(b==0)
op1='-';
if(b==1)
op1='+';
if(b==2)
op1='
';
if(b==3)
op1='/';
c=rand()%100;
d=rand()%100;
if(op1=='/'&&d==0)
d=rand()%99+1;
if(op1=='+')
sum1=c+d;
else
if(op1=='-')
sum1=c-d;
else
if(op1=='')
sum1=c
d;
else
sum1==c/d;
e=rand()%4;
if(e==0)
op2='-';
if(e==1)
op2='+';
if(e==2)
op2='';
if(e==3)
op2='/';
f=rand()%100;
if(op2=='/'&&f==0)
f=rand()%99+1;
if(op2=='+')
sum2=sum1+f;
else
if(op2=='-')
sum2=sum1-f;
else
if(op2=='
')
sum2=sum1*f;
else
sum2=sum1/f;
printf("%2g %2c %2g %2c %2g = %2g\n",c,op1,d,op2,f,sum2);
}
printf("执行完了(小声,假装这里有操作\n");
return 1;
}

1.4.1Gitee上传截图与连接

c 语言寒假大作战02
码云:https://gitee.com/duan_yu

上一篇:c 语言寒假大作战03


下一篇:leetcode-简单-栈-逆波兰表达式