C语言寒假大作战04

简易菜单代码的学习 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10277
作业链接 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10277
这个作业的目标 学习完成使用%g的形式输出答案
参考文献 https://zhidao.baidu.com/question/271899014.html

1.设计思路和遇到的问题
设计思路:以%g的方式输出答案,分类讨论三年级的题目。
遇到的问题:无。

2.程序截图

3.程序代码

#include <stdio.h>
#include<stdlib.h>
#include<time.h> 
void menu();
void help();
void error();
void operation_1();void one_1();
void operation_2();void two_1();
void operation_3();void three_1();

int main()
{
	int n;
	printf("========== 口算生成器 ==========\n欢迎使用口算生成器 :\n希望小学期中考试\n");
	printf("\n");
	help();
	while(1)
	{
		menu();
		scanf("%d",&n);
		switch(n)
		{
			case 1:operation_1();break;
			case 2:operation_2();break;
			case 3:operation_3();break;
			case 4:help();break;
		}
	    printf("\n");
		if(n==5) break;
	    if(n>5||n<1) error();
	}
	return 0;
}
void help()
{
	printf("帮助信息\n您需要输入命令代号来进行操作, 且\n");
	printf("一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的乘除法;\n");
	printf("三年级题目为不超过百位的加减乘除混合题目.\n");
	printf("\n");
}
void menu()
{
	printf("操作列表:\n1)一年级    2)二年级    3)三年级\n4)帮助      5)退出程序\n请输入代号:");
}
void error()
{
	printf("憨憨,请重新输入正确数值。");
	printf("\n");
	printf("\n");
 } 
 void operation_1()
 {
 	printf("请输入题目数量>");
 	one_1();
 }
  void operation_2()
 {
 	printf("请输入题目数量>");
 	two_1();
 }
  void operation_3()
 {
 	printf("请输入题目数量>");
 	three_1();
 }
  void one_1()
 {
    int n,a,b,c;
    char op[2]={'+','-'};
    scanf("%d",&n);
    printf("一年级题目如下:\n"); 
	srand((unsigned)time(NULL));
	for(int i=1;i<=n;i++)
	{
		a=rand()%10+1;
		b=rand()%10+1;
		c=rand()%2;
		if(op[c]=='+')
		printf("%2d + %2d = %2d",a,b,a+b);
		else
		printf("%2d - %2d = %2d",a,b,a-b);
		printf("\n");
	 } 
 } 
 void two_1()
 {
    int n,a,b,c;
    char op[2]={'*','/'}; 
    scanf("%d",&n);
	printf("二年级题目如下:\n"); 
	srand((unsigned)time(NULL));
	for(int i=1;i<=n;i++)
	{
		a=rand()%100+1;
		b=rand()%100+1;
		c=rand()%2;
		if(op[c]=='*')
		printf("%3d * %3d = %3d",a,b,a*b);
		else
		printf("%3d / %3d = %3g",a,b,(double)(a/(b*1.0)));
	    printf("\n");
	 } 
 }
 void three_1()
 {
 	int n,a,b,c,d,e;
 	char op[4]={'+','-','*','/'} ;
 	scanf("%d",&n); 
	printf("三年级题目如下:\n"); 
	srand((unsigned)time(NULL));
 	for(int i=1;i<=n;i++)
 	{
 		a=rand()%100+1;
 		b=rand()%100+1;
 		c=rand()%100+1; 
 		d=rand()%4;
 		e=rand()%4; 
        switch(d)
        {
        	case 0:
			    printf("%3d + %3d ",a,b);
			    if(op[e]=='*')
			        printf("* %3d = %3d ",e,a+b*c);
			    else if(op[e]=='/')
			        printf("/ %3d = %3g",c,a+b/(c*1.0));
			    else if(op[e]=='+')
			        printf("+ %3d = %3d ",c,a+b+c);
			    else 
			        printf("- %3d = %3d",c,a+b-c);
			    break;
			case 1:
				    printf("%3d - %3d ",a,b);
			    if(op[e]=='*')
			        printf("* %3d = %3d ",e,a-b*c);
			    else if(op[e]=='/')
			        printf("/ %3d = %3g",c,a-b/(c*1.0));
			    else if(op[e]=='+')
			        printf("+ %3d = %3d ",c,a-b+c);
			    else 
			        printf("- %3d = %3d",c,a-b-c);
			    break;
			case 2:
					printf("%3d * %3d ",a,b);
			    if(op[e]=='*')
			        printf("* %3d = %3d ",e,a*b*c);
			    else if(op[e]=='/')
			        printf("/ %3d = %3g",c,a*b/(c*1.0));
			    else if(op[e]=='+')
			        printf("+ %3d = %3d ",c,a*b+c);
			    else 
			        printf("- %3d = %3d",c,a*b-c);
			    break;
		    case 3:
		    		printf("%3d / %3d ",a,b);
			    if(op[e]=='*')
			        printf("* %3d = %3g ",e,a/(c*b*1.0));
			    else if(op[e]=='/')
			        printf("/ %3d = %3g",c,a/(b*1.0)/c);
			    else if(op[e]=='+')
			        printf("+ %3d = %3g ",c,a/(b*1.0)+c);
			    else 
			        printf("- %3d = %3g",c,a/(b*1.0)-c);
			    break;
		}
		
		printf("\n");
	 }
 }

Gitee上传截图与链接

链接:https://gitee.com/zhou_wango/E-zuoye

posted @ 2020-02-16 21:49  kame呦呦  阅读(126)  评论(0编辑  收藏  举报