C语言寒假大作战04

1.作业头

问题 答案
这个作业属于哪个课程 班级的链接
这个作业要求在哪里 作业链接
这个作业的目标 用C语言编写随机生成的四则运算并得出答案
作业正文 作业
其他参考文献 参考链接

2.菜单程序函数调用图如下:

3. 设计思路和遇到的问题

设计思路:
    利用原有的代码进行改编,使之由输出四则运算题目变成输出四则运算题目并且计算出答案,同时还要保证式子有意义。
遇到的问题:
    如何用简便的代码代替输出有两个随机运算符的式子。

4. 程序结果截图

5. 程序代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
    printf("操作列表:\n");
    printf("1)一年级    2)二年级    3)三年级\n");
    printf("4)帮助      5)退出程序\n");
    printf("请输入操作>\n");
 } 

 void help()
 {
    printf("帮助信息\n");
    printf("您需要输入命令代号来进行操作,且\n");
    printf("一年级题目为不超过十位的加减法;\n");
    printf("二年级题目为不超过百位的乘除法;\n");
    printf("三年级题目为不超过百位的加减乘除混合题目。\n\n");
 }
 void error()
 {
    printf("Error! ! !\n");
    printf("错误操作指令,请重新输入\n\n");	
 } 
 void operation_1()
 { 
    char op[2]={'+','-'},m;
    int i,n,a,b;
    printf("现在是一年级题目:\n");
        printf("<请输入生成个数> ");
    scanf("%d",&n);
    srand(time(NULL));
    for(i=1; i<=n; i++)
    {
        a=rand()%10;
        b=rand()%10;
	switch(op[rand()%2])
	{
		case '+': printf("%d + %d = %d\n",a,b,a+b); break;
		case '-': printf("%d - %d = %d\n",a,b,a-b); break;
        }
    }
  }
  void operation_2()
  {
    char op[2]={'*','/'},m;
    int i,n,a,b;
    printf("现在是二年级题目:\n");
        printf("<请输入生成个数> ");
    scanf("%d",&n);
    srand(time(NULL));
    for(i=1; i<=n; i++)
    {
	    a=rand()%10;
            b=rand()%9+1;
	    switch(op[rand()%2])
	    {
		    case '*': printf("%d * %d = %d\n",a,b,a*b); break;
		    case '/': printf("%d / %d = %g\n",a,b,(double)a/b); break;
    }
    }
  }
  void operation_3()
  {
    char op[4]={'+','-','*','/'},m;
    int i,n,a,b,c;
    printf("现在是三年级题目:\n");
        printf("<请输入生成个数> ");
    scanf("%d",&n);
    srand(time(NULL));
    for(i=1; i<=n; i++)
    {
	    a=rand()%100;
            b=rand()%9+1;
            c=rand()%9+1;
	    switch(rand()%16+1)
	    {
		    case 1: printf("%d + %d + %d = %d\n",a,b,c,a+b+c); break;
		    case 2: printf("%d + %d - %d = %d\n",a,b,c,a+b-c); break;
		    case 3: printf("%d + %d * %d = %d\n",a,b,c,a+b*c); break;
		    case 4: printf("%d + %d / %d = %g\n",a,b,c,(double)a+b/c); break;
		    case 5: printf("%d - %d + %d = %d\n",a,b,c,a-b+c); break;
		    case 6: printf("%d - %d - %d = %d\n",a,b,c,a-b-c); break;
		    case 7: printf("%d - %d * %d = %d\n",a,b,c,a-b*c); break;
		    case 8: printf("%d - %d / %d = %g\n",a,b,c,(double)a-b/c); break;
		    case 9: printf("%d * %d + %d = %d\n",a,b,c,a*b+c); break;
		    case 10: printf("%d * %d - %d = %d\n",a,b,c,a*b-c); break;
		    case 11: printf("%d * %d * %d = %d\n",a,b,c,a*b*c); break;
		    case 12: printf("%d * %d / %d = %g\n",a,b,c,(double)a*b/c); break;
		    case 13: printf("%d / %d + %d = %g\n",a,b,c,(double)a/b+c); break;
		    case 14: printf("%d / %d - %d = %g\n",a,b,c,(double)a/b-c); break;
		    case 15: printf("%d / %d * %d = %g\n",a,b,c,(double)a/b*c); break;
		    case 16: printf("%d / %d / %d = %g\n",a,b,c,(double)a/b/c); break;
    }
     }
  }int main()
  {
    int m;
    printf("==========  口算生成器  ==========\n");
    printf("欢迎使用口算生成器 :\n\n");
    help();
    menu();
     do{
        scanf("%d",&m);
        printf("< 执行操作 >\n\n");
        switch (m) {        
            case 1: operation_1(); break;
            case 2: operation_2(); break;
            case 3: operation_3(); break;
            case 4: help(); break;
            case 5: printf("程序结束, 欢迎下次使用 任意键结束……\n"); break;
            default:error(); break;
       }
        if(m!=5)
	    {
	    menu();
	    } 
    }while(m!=5);
      return 0;
   } 

6. Gitee上传截图与链接

gitee链接

7.参考资料

资料

posted @ 2020-02-13 12:32  李权计科二  阅读(124)  评论(0编辑  收藏  举报