自动生成四则运算题目
主要功能有:设计打的这款程序能自动生成小学四则运算题目,除了整数以外,还能支持真分数的四则运算。
参考链接:www.cnbolgs.com/jiel/p/4810756.html
设计思想:
算数表达式: e:= n | e1 + e2 | e1 − e2 | e1 × e2 | e1 ÷ e2 | (e) , 其中e, e1和e2为表达式,n为自然数或真分数
char ysf[5] = {‘+‘, ‘-‘, ‘*‘, ‘%‘, NULL };
当 b 取NULL时,算式变换为 e = [num1 (a) num2] (c) num4
当 c 取NULL时,算式变换为 e = [num1 (a) num2] (b) num3
以此类推,但要求 a 不能为NULL。
4. 形成初期代码:
1 #include <stdio.h>
2 #include<stdlib.h>
3 #include<time.h>
4 #include<iostream>
5 #define random(x) (rand()%(x))
6 using namespace std;
7 int main()
8 {
9 int num1 = 0, num2 = 0, num3 = 0, num4 = 0;
10 int a = 0, b = 0, c = 0;
11 char ysf[5] = {‘+‘, ‘-‘, ‘*‘, ‘%‘, NULL };
12 time_t t;
13 srand((unsigned)time(&t)); //重置随机数种子
14 int n;
15 cin >> n ;
16 for (int i = 1; i <= n; i++) // 生成n道题
17 {
18 do // a运算符不为NULL
19 {
20 a = random(5);
21 } while (a == 4);
22
23 b = random(5);
24 c = random(5);
25
26 if (b == 4 && c != 4 )
27 {
28 cout << "(" << num1 << ‘ ‘ << ysf[a] << ‘ ‘ << num2 << ")" << ‘ ‘ << ysf[c] << ‘ ‘ << num4<< ‘ ‘ << ‘=‘<< ‘ ‘ << endl;
29 }
30 else if (b != 4 && c == 4)
31 {
32 cout << "(" << num1 << ‘ ‘ << ysf[a] << ‘ ‘ << num2 << ")" << ‘ ‘ << ysf[b] << ‘ ‘ << num3 << ‘ ‘ << ‘=‘ << ‘ ‘ << endl;
33 }
34 else if (b != 4 && c != 4)
35 {
36 cout << "(" << num1 << ‘ ‘ << ysf[a] << ‘ ‘ << num2 << ")" << ‘ ‘ << ysf[b] << ‘ ‘ << "(" << num3 << ‘ ‘ << ysf[c] << ‘ ‘ << num4 << ")" << ‘ ‘ << ‘=‘ << ‘ ‘ << endl;
37 }
38 else
39 {
40 cout <<num1 << ‘ ‘ << ysf[a] << ‘ ‘ << num2 << ‘ ‘ << ‘=‘ << ‘ ‘ << endl;
41 }
42
43 }
44 return 0;
45 }

总结:本次作业由于以前C语言不熟悉,所以还是很不熟练,而且深深的感觉到了自己的基础知识不牢固,其实是很简单的一个小程序,听起来看起来都非常简单,但是自己上手才发现苦难重重,以后一定不能眼高手低,多实践,无论难易。
原文:http://www.cnblogs.com/ccxx/p/5285878.html