zoukankan      html  css  js  c++  java
  • C语言寒假大作战04

    1.作业头

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

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

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

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

    4. 程序结果截图

    5. 程序代码

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

    6. Gitee上传截图与链接

    gitee链接

    7.参考资料

    资料

  • 相关阅读:
    AWK用法详解
    追加内容到指定的行
    自动scp(二)
    Spring 容器IOC解析及简单实现
    Spring 容器AOP的实现原理——动态代理
    Try语句中有return,那么finally中的code会执行吗?什么时候执行?
    Java中HashMap和TreeMap的区别
    HashTable和HashMap的区别详解
    ArrayList、LinkedList与Vector的对比
    事务是什么
  • 原文地址:https://www.cnblogs.com/classtest123/p/12302949.html
Copyright © 2011-2022 走看看