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上传截图与链接


码云:https://gitee.com/chen_yi_yang/dashboard/projects

posted on 2020-02-17 17:16  李政委  阅读(150)  评论(0)    收藏  举报

导航