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口算生成器 ===================================================\n");
 19     printf("欢迎使用口算生成器哦,铁子 :)\n");
 20     printf("\n\n");
 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("程序结束, 欢迎下次使用\n");
 38     printf("任意键结束,hh……");
 39 
 40     _getch();
 41     return 0;
 42 }
 43 
 44 int help()
 45 {
 46     printf("帮助信息:\n");
 47     printf("您需要输入命令代号来进行操作, 且\n");
 48     printf("一年级题目为不超过十位的加减法;\n");
 49     printf("二年级题目为不超过百位的乘除法;\n");
 50     printf("三年级题目为不超过百位的加减乘除混合题目.\n");
 51     printf("\n\n");
 52 }
 53 
 54 int menu()
 55 {
 56     int a = 0;
 57     printf("操作列表:\n");
 58     printf("1)一年级    2)二年级    3)三年级\n");
 59     printf("4)帮助      5)退出程序\n");
 60     printf("请输入操作> ");
 61     scanf("%d", &a);
 62     printf("< 执行操作 :)\n");
 63     printf("\n\n");
 64     return a;
 65 }
 66 
 67 int error()
 68 {
 69     printf("Error!!!报错\n");
 70     printf("错误操作, 重新输入,老铁\n");
 71     printf("\n\n");
 72 }
 73 
 74 int grade_1()
 75 {
 76     printf("gkd,gkd,现在是一年级题目\n");
 77     printf("请输入你他妈所需要的题目个数>");
 78     int num = 0;
 79     scanf("%d", &num);
 80     printf("< 执行操作 :)\n\n");
 81 
 82     int a, b, c;
 83     srand((unsigned)time(NULL));
 84 
 85     printf("/*----- 一年级 -----*/\n\n");
 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\n", a, b, a + b);
 95         }
 96         else
 97         {
 98             printf("%d - %d = %d\n", a, b, a - b);
 99         }
100     }
101 }
102 
103 int grade_2()
104 {
105     printf("现在是二年级题目,孩子:\n");
106     printf("你要几个题目");
107     int num = 0;
108     scanf("%d", &num);
109     printf("< 执行操作 :)\n\n");
110 
111     double a, b, c;
112     srand((unsigned)time(NULL));
113 
114     printf("/*----- 二年级 -----*/\n\n");
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\n", a, b, a * b);
124         }
125         else
126         {
127             printf("%2g / %2g = %g\n", 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("卧槽,现在是三年级题目:\n");
154     printf("请随便打一个数");
155     int num = 0;
156     scanf("%d", &num);
157     printf("< 执行操作 :)\n\n");
158 
159     printf("/*----- 三年级 -----*/\n\n");
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\n"); 
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

posted @ 2020-02-14 12:28  不爱回信息的小佳  阅读(204)  评论(0编辑  收藏  举报