C语言寒假大作战04
2.2.1本次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2019-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10280 |
我在这个课程的目标是 | gitee 与 git基础命令学习与使用;通过命令列表和视频学习,注册、登录、上传文件、克隆仓库;学会制作菜单栏;使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数;我们还需要再原本 ___ 的横线上加上答案 |
作业正文 | https://www.cnblogs.com/cc2000/p/12259221.html |
参考文献 | 百度百科,rand函数的调用,c语言中%g是什么意思? |
2.2.2 设计思路和遇到的问题
- 设计思路:这个只是在寒假三作业增加答案,只要在变量那定义结果值‘sum’,然后根据题目要求,给出所需要的符号类型,算出sum。
- 心理过程:只是在寒假3增加答案而已,我觉得没那么难。可是在过程中还是有一些问题。
- 遇到的问题:一年级题目答案,看完作业要求就会了。到了二年级,刚开始直接添加sum的值。发现出现了以指数小于-4或者大于给定精度的数值,按照%e的控制输出,于是我便请教了同学之后,才发现整型输出的值都要改为浮点型输出,才可以输出答案。到了三年级题目,我参考了同学的代码,发现要用if-else嵌套结构,我有些忘了,便搜索百度,慢慢把知识重新装入脑袋。
2.2.3 程序结果截图
2.2.4 程序代码
#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=c*d;
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;
}
2.2.5 Gitee上传截图与链接