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

    1. 题目介绍

    前面我们我们已经将口算题的生成程序给写完了,现在呢,我想要给题目后面加上答案(ps: 哎哎哎,计算器不香嘛)

    我们仍然是 随机!!!!!! 生成口算题 ,但是我们还需要再原本 ___ 的横线上加上答案

    这里我们规定如下格式:

    /*----- 一年级 -----*/
    8 + 5 = 13
    0 - 3 = -3
    7 - 0 =  7
    1 - 6 = -5
    4 - 4 =  0
    ps:请注意这里的答案格式为两字符占位 _ + _ = __
    
    /*----- 二年级 -----*/
    5 / 6 = 0.833333
    5 * 6 = 30
    9 * 2 = 18
    3 / 2 = 1.5
    7 * 3 = 21
    ps: 九九乘法表还记得嘛 滑稽 :)
    
    /*----- 三年级 -----*/
    
    79 - 20 / 50 = 78.6
    99 * 29 * 31 = 89001
    16 / 18 + 20 = 20.8889
    39 * 44 / 33 = 52
    35 - 79 - 27 = -71
    ps:请注意这里的格式为两字符占位 __ + __ + __ = 
        注意 '/' 除号后面不能为0哦

    2. 本次作业

    2.1 题目内容与要求

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

    2.1.2 程序截图:

    2.2 提交内容

    本次作业统一标题:C语言寒假大作战02
    Deadline: 2020/02/12 20:00pm

    2.2.1 作业头:

    为了方便其他学校的老师或者助教了解课程实况,请大家在作业开头添加格式描述:

    这个作业属于哪个课程<班级的链接>
    这个作业要求在哪里

    C语言寒假大作战04

    这个作业的目标

    前面我们我们已经将口算题的生成程序给写完了,现在呢,我想要给题目后面加上答案(ps: 哎哎哎,计算器不香嘛)

    我们仍然是 随机!!!!!! 生成口算题 ,但是我们还需要再原本 ___ 的横线上加上答案

    作业正文 使用switch编写菜单程序,使用rand函数来产生随机数,并算出生成口算题的结果
    其他参考文献

    %g与%dhttps://www.runoob.com/

    2.2.2 设计思路和遇到的问题

    开始动手的时候不知道为什么总是没有结果,反复测试有没有用,最后只能重新再打一次

    2.2.3 程序结果截图

    2.2.4 程序代码


    需要在题目后面加上题目的答案,且使用上次作业的框架,调用关系如上面思维导图

      1 #include <stdio.h>
      2 #include <conio.h>
      3 #include<stdlib.h>
      4 #include<time.h>
      5 
      6 int help();
      7 int menu();
      8 int error();
      9 int grade_1();
     10 int grade_2();
     11 int grade_3();
     12 double answer(double a, double b, double c, char d, char e);
     13 
     14 int main()
     15 {
     16     int grade = 1;
     17 
     18     printf("=================================jj口算生成器 ===================================================
    ");
     19     printf("欢迎使用口算生成器哦,铁子 :)
    ");
     20     printf("
    
    ");
     21 
     22     help();
     23     while (grade)
     24     {
     25         grade = menu();
     26 
     27         switch (grade)
     28         {
     29         case 1: grade_1(); break;
     30         case 2: grade_2(); break;
     31         case 3: grade_3(); break;
     32         case 4: help(); break;
     33         case 5: grade = 0; break;
     34         default: error(); grade = 1; break;
     35         }
     36     }
     37     printf("程序结束, 欢迎下次使用
    ");
     38     printf("任意键结束,hh……");
     39 
     40     _getch();
     41     return 0;
     42 }
     43 
     44 int help()
     45 {
     46     printf("帮助信息:
    ");
     47     printf("您需要输入命令代号来进行操作, 且
    ");
     48     printf("一年级题目为不超过十位的加减法;
    ");
     49     printf("二年级题目为不超过百位的乘除法;
    ");
     50     printf("三年级题目为不超过百位的加减乘除混合题目.
    ");
     51     printf("
    
    ");
     52 }
     53 
     54 int menu()
     55 {
     56     int a = 0;
     57     printf("操作列表:
    ");
     58     printf("1)一年级    2)二年级    3)三年级
    ");
     59     printf("4)帮助      5)退出程序
    ");
     60     printf("请输入操作> ");
     61     scanf("%d", &a);
     62     printf("< 执行操作 :)
    ");
     63     printf("
    
    ");
     64     return a;
     65 }
     66 
     67 int error()
     68 {
     69     printf("Error!!!报错
    ");
     70     printf("错误操作, 重新输入,老铁
    ");
     71     printf("
    
    ");
     72 }
     73 
     74 int grade_1()
     75 {
     76     printf("gkd,gkd,现在是一年级题目
    ");
     77     printf("请输入你他妈所需要的题目个数>");
     78     int num = 0;
     79     scanf("%d", &num);
     80     printf("< 执行操作 :)
    
    ");
     81 
     82     int a, b, c;
     83     srand((unsigned)time(NULL));
     84 
     85     printf("/*----- 一年级 -----*/
    
    ");
     86 
     87     for (int i = 0; i < num; i++)
     88     {
     89         a = rand() % 10;
     90         b = rand() % 10;
     91         c = rand() % 2;
     92         if (c == 0)
     93         {
     94             printf("%d + %d = %d
    ", a, b, a + b);
     95         }
     96         else
     97         {
     98             printf("%d - %d = %d
    ", a, b, a - b);
     99         }
    100     }
    101 }
    102 
    103 int grade_2()
    104 {
    105     printf("现在是二年级题目,孩子:
    ");
    106     printf("你要几个题目");
    107     int num = 0;
    108     scanf("%d", &num);
    109     printf("< 执行操作 :)
    
    ");
    110 
    111     double a, b, c;
    112     srand((unsigned)time(NULL));
    113 
    114     printf("/*----- 二年级 -----*/
    
    ");
    115 
    116     for (int i = 0; i < num; i++)
    117     {
    118         a = rand() % 100;
    119         b = rand() % 100;
    120         c = rand() % 2;
    121         if (c == 0)
    122         {
    123             printf("%2g * %2g = %g
    ", a, b, a * b);
    124         }
    125         else
    126         {
    127             printf("%2g / %2g = %g
    ", a, b + 1, a / (b + 1));
    128         }
    129     }
    130 }
    131 
    132 int num_dividend()
    133 {
    134     for (int i = 0; true; i++)
    135     {
    136         if (i = rand() % 100)
    137             return i;
    138     }
    139 }
    140 
    141 char four_arithmetic(int num)
    142 {
    143     switch (num)
    144     {
    145     case 1: return '+';
    146     case 2: return '-';
    147     case 3: return '*';
    148     case 0: return '/';
    149     }
    150 }
    151 int grade_3()
    152 {
    153     printf("卧槽,现在是三年级题目:
    ");
    154     printf("请随便打一个数");
    155     int num = 0;
    156     scanf("%d", &num);
    157     printf("< 执行操作 :)
    
    ");
    158 
    159     printf("/*----- 三年级 -----*/
    
    ");
    160 
    161     double a = 0, b = 0, c = 0;
    162     char d, e;
    163     for (int i = 0; i < num; i++)
    164     {
    165         printf("%2g %c %2g %c %2g = %g
    "); 
    166     }
    167 }
    168 
    169 double answer(double a, double b, double c, char d, char e)
    170 {
    171     double result = 0;
    172     if (d == '*' || d == '/')
    173     {
    174         switch (d)
    175         {
    176         case '*': result = a * b; break;
    177         case '/': result = a / b; break;
    178         }
    179 
    180         switch (e)
    181         {
    182         case '+': return result + c;
    183         case '-': return result - c;
    184         case '*': return result * c;
    185         case '/': return result / c;
    186         }
    187     }
    188     else if (e == '*' || e == '/')
    189     {
    190         switch (e)
    191         {
    192         case '*': result = b * c; break;
    193         case '/': result = b / c; break;
    194         }
    195 
    196         switch (d)
    197         {
    198         case '+': return a + result;
    199         case '-': return a - result;
    200         case '*': return a * result;
    201         case '/': return a / result;
    202         }
    203     }
    204     else
    205     {
    206         switch (d)
    207         {
    208         case '+': result = a + b; break;
    209         case '-': result = a - b; break;
    210         }
    211 
    212         switch (e)
    213         {
    214         case '+': return result + c;
    215         case '-': return result - c;
    216         }
    217     }
    218 }

     

    2.2.5 Gitee上传截图与链接

    注意你的修改注释

    https://gitee.com/zeng_jia/dashboard/projects

    3.参考资料

    %g与%d

  • 相关阅读:
    KVM安装以及远程连接
    开博客祭
    CQOI 2021
    琐记——学长们
    大事祭
    关于洛谷与博客园的博客的一些声明
    CSP-S 2020 & NOIP 2020 日记与游记
    调和级数
    快速乘
    二叉堆
  • 原文地址:https://www.cnblogs.com/zjzjaaa/p/12306920.html
Copyright © 2011-2022 走看看