你问我为啥要写,只是觉得随机生成数比较好玩吧,上课老师也说了一下,可以减轻家长负担!!!
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
int n = 0;
while (n != 4) {
srand((unsigned)time(NULL));//生成随机数必备
cout << "***********************************" << endl;
cout << "* 欢迎你来到四则运算系统 *" << endl;
cout << "* 输入1您将来到四则运算生成表 *" << endl;
cout << "* 输入2您将来到四则运算现场测试 *" << endl;
cout << "* 输入3您将来到家长检查模式 *" << endl;
cout << "* 输入4您将结束本次训练 *" << endl;
cout << "***********************************" << endl;
cin >> n;
if (n == 1) {
int m; int s;
cout << "请您输入您要打印的公式数量:" << endl;
cin >> m;
cout << "请您输入您要选择计算的范围为0到多少:" << endl;
cin >> s;
char C;
int A[2000], B[2000];
int a[2000];
int i, k, t, h, T;
t = 0; T = 0; h = 1;
for (i = 0; i < m; i++)
{
k = rand() % 4;//产生四个随机数字,从而产生四个随机符号。
if (k == 0)
C = '+';
else if (k == 1)
C = '-';
else if (k == 2)
C = '*';
else if (k == 3)
C = '/';
A[i] = rand() % s;
B[i] = rand() % s + 1;//除数不能为0,这是关键,系统会崩溃的
//输出题目
if (C == '+')
{
cout << "第" << h << "道:" << A[i] << "+" << B[i] << "=" << endl; a[i] = A[i] + B[i];
h++;
}
else if (C == '-')
{
cout << "第" << h << "道:" << A[i] << "-" << B[i] << "=" << endl; a[i] = A[i] - B[i];
h++;
}
else if (C == '*')
{
cout << "第" << h << "道:" << A[i] << "X" << B[i] << "=" << endl; a[i] = A[i] * B[i];
h++;
}
else if (C == '/')
{
cout << "第" << h << "道:" << A[i] << "÷" << B[i] << "=" << endl; a[i] = A[i] / B[i];
h++;
}
}
cout << "************************" << endl;
//输出四则运算的结果
for (int i = 0; i < m; i++) {
cout << "第" << i + 1 << "题的答案为:" << a[i] << endl;
}
}
if (n == 2) {
int t = 10; int t1;
cout << "随机训练马上就要开始了,你准备好了吗?" << endl;
cout << "请您输入您要选择计算的范围为0到多少:" << endl;
cin >> t1;
while (t != -1) {
cout << "*****************" << endl;
cout << "输入1继续开始训练" << endl;
cout << "输入-1结束训练" << endl;
cin >> t;
if (t == 1) {
char C;
int A, B, F;
double D;
int i, k, t, h, T;
t = 0; T = 0; h = 1;
k = rand() % 4;//产生四个随机数字,从而产生四个随机符号。
if (k == 0) {
C = '+';
}
else if (k == 1)
{
C = '-';
}
else if (k == 2)
{
C = '*';
}
else if (k == 3)
{
C = '/';
}
A = rand() % t1;
B = rand() % t1 + 1;
//输出题目
if (C == '+')
{
cout << A << "+" << B << "=" << endl; D = A + B;
}
else if (C == '-')
{
cout << A << "-" << B << "=" << endl; D = A - B;
}
else if (C == '*')
{
cout << A << "X" << B << "=" << endl; D = A * B;
}
else if (C == '/')
{
cout << A << "÷" << B << "=" << endl; D = A / B;
}
cin >> F;
if (F == D) {
cout << "答案正确,你太棒了!" << endl;
}
else {
cout << "答案错误,正确答案为:" << D << endl;
}
}
}
}
if (n == 3) {
int m;
int s;
cout << "欢迎来到家长模式" << endl;
cout << "请您输入您要打印的公式数量:" << endl;
cin >> m;
cout << "请您输入您要选择计算的范围为0到多少:" << endl;
cin >> s;
int A[2000], B[2000], i, k, t, T, a[2000], b[2000], c[2000], d[2000];
char C;
srand((unsigned)time(NULL));
t = 0; T = 0;
for (i = 0; i < m; i++)
{
k = rand() % 4;
if (k == 0)
C = '+';
else if (k == 1)
C = '-';
else if (k == 2)
C = '*';
else if (k == 3)
C = '/';
A[i] = rand() % s;
B[i] = rand() % s + 1;
//输出题目
if (C == '+')
{
cout << "第" << i + 1 << "道题:" << A[i] << "+" << B[i] << "=" << endl; a[i] = A[i] + B[i];
}
else if (C == '-')
{
cout << "第" << i + 1 << "道题:" << A[i] << "-" << B[i] << "=" << endl; a[i] = A[i] - B[i];
}
else if (C == '*')
{
cout << "第" << i + 1 << "道题:" << A[i] << "X" << B[i] << "=" << endl; a[i] = A[i] * B[i];
}
else if (C == '/')
{
cout << "第" << i + 1 << "道题:" << A[i] << "÷" << B[i] << "=" << endl; a[i] = A[i] / B[i];
}
}
//输出结果
cout << "**********************" << endl;
for (i = 0; i < m; i++)
{
cout << "第" << i + 1 << "道题结果为:";
cin >> b[i];
if (a[i] == b[i])
t++;
else
{
c[T] = i;
d[T] = a[i];
T++;
}
}
cout << "**********************" << endl;
if (t == m)
cout << "恭喜你都答对了!" << endl;
else
{
for (i = 0; i < T; i++)
cout << "第" << c[i] + 1 << "题错了!" << "正确答案应该是:" << d[i] << endl;
}
}
if (n > 4) {
cout << "您输入的数字错误,请重新输入!" << endl;
}
}
}
好歹也写了3个小时,调试起来还很麻烦,随机水一篇,也运用了数组的很多方面吧,就是喜欢做这种简单的系统,水一天啦,话说map的系统还没做......
太繁琐了,可视化更强的代码在这->
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
void menu();
void Printf_a();
void Test_b();
void Inspect_c();
int Other_d(int n);
int main()
{
srand((unsigned)time(NULL));//生成随机数必备
int n=0;
while (n!=4) {
menu();
cin >> n;
switch (n)
{
case 1:
Printf_a();
break;
case 2:
Test_b();
break;
case 3:
Inspect_c();
default:
Other_d(n);
break;
}
}
}
void menu() {
cout << "***********************************" << endl;
cout << "* 欢迎你来到四则运算系统 *" << endl;
cout << "* 输入1您将来到四则运算生成表 *" << endl;
cout << "* 输入2您将来到四则运算现场测试 *" << endl;
cout << "* 输入3您将来到家长检查模式 *" << endl;
cout << "* 输入4您将结束本次训练 *" << endl;
cout << "***********************************" << endl;
}
void Printf_a() {//四则运算表
int m; int s;
cout << "请您输入您要打印的公式数量:" << endl;
cin >> m;
cout << "请您输入您要选择计算的范围为0到多少:" << endl;
cin >> s;
char C;
int A[2000], B[2000];
int a[2000];
int i, k, t, h, T;
t = 0; T = 0; h = 1;
for (i = 0; i < m; i++)
{
k = rand() % 4;//产生四个随机数字,从而产生四个随机符号。
if (k == 0)
C = '+';
else if (k == 1)
C = '-';
else if (k == 2)
C = '*';
else if (k == 3)
C = '/';
A[i] = rand() % s;
B[i] = rand() % s + 1;//除数不能为0,这是关键,系统会崩溃的
//输出题目
if (C == '+')
{
cout << "第" << h << "道:" << A[i] << "+" << B[i] << "=" << endl; a[i] = A[i] + B[i];
h++;
}
else if (C == '-')
{
cout << "第" << h << "道:" << A[i] << "-" << B[i] << "=" << endl; a[i] = A[i] - B[i];
h++;
}
else if (C == '*')
{
cout << "第" << h << "道:" << A[i] << "X" << B[i] << "=" << endl; a[i] = A[i] * B[i];
h++;
}
else if (C == '/')
{
cout << "第" << h << "道:" << A[i] << "÷" << B[i] << "=" << endl; a[i] = A[i] / B[i];
h++;
}
}
cout << "************************" << endl;
//输出四则运算的结果
for (int i = 0; i < m; i++) {
cout << "第" << i + 1 << "题的答案为:" << a[i] << endl;
}
}
void Test_b() {
int t = 10; int t1;
cout << "随机训练马上就要开始了,你准备好了吗?" << endl;
cout << "请您输入您要选择计算的范围为0到多少:" << endl;
cin >> t1;
while (t != -1) {
cout << "*****************" << endl;
cout << "输入1继续开始训练" << endl;
cout << "输入-1结束训练" << endl;
cin >> t;
if (t == 1) {
char C;
int A, B, F;
double D;
int i, k, t, h, T;
t = 0; T = 0; h = 1;
k = rand() % 4;//产生四个随机数字,从而产生四个随机符号。
if (k == 0) {
C = '+';
}
else if (k == 1)
{
C = '-';
}
else if (k == 2)
{
C = '*';
}
else if (k == 3)
{
C = '/';
}
A = rand() % t1;
B = rand() % t1 + 1;
//输出题目
if (C == '+')
{
cout << A << "+" << B << "=" << endl; D = A + B;
}
else if (C == '-')
{
cout << A << "-" << B << "=" << endl; D = A - B;
}
else if (C == '*')
{
cout << A << "X" << B << "=" << endl; D = A * B;
}
else if (C == '/')
{
cout << A << "÷" << B << "=" << endl; D = A / B;
}
cin >> F;
if (F == D) {
cout << "答案正确,你太棒了!" << endl;
}
else {
cout << "答案错误,正确答案为:" << D << endl;
}
}
}
}
void Inspect_c() {
int m;
int s;
cout << "欢迎来到家长模式" << endl;
cout << "请您输入您要打印的公式数量:" << endl;
cin >> m;
cout << "请您输入您要选择计算的范围为0到多少:" << endl;
cin >> s;
int A[2000], B[2000], i, k, t, T, a[2000], b[2000], c[2000], d[2000];
char C;
srand((unsigned)time(NULL));
t = 0; T = 0;
for (i = 0; i < m; i++)
{
k = rand() % 4;
if (k == 0)
C = '+';
else if (k == 1)
C = '-';
else if (k == 2)
C = '*';
else if (k == 3)
C = '/';
A[i] = rand() % s;
B[i] = rand() % s + 1;
//输出题目
if (C == '+')
{
cout << "第" << i + 1 << "道题:" << A[i] << "+" << B[i] << "=" << endl; a[i] = A[i] + B[i];
}
else if (C == '-')
{
cout << "第" << i + 1 << "道题:" << A[i] << "-" << B[i] << "=" << endl; a[i] = A[i] - B[i];
}
else if (C == '*')
{
cout << "第" << i + 1 << "道题:" << A[i] << "X" << B[i] << "=" << endl; a[i] = A[i] * B[i];
}
else if (C == '/')
{
cout << "第" << i + 1 << "道题:" << A[i] << "÷" << B[i] << "=" << endl; a[i] = A[i] / B[i];
}
}
//输出结果
cout << "**********************" << endl;
for (i = 0; i < m; i++)
{
cout << "第" << i + 1 << "道题结果为:";
cin >> b[i];
if (a[i] == b[i])
t++;
else
{
c[T] = i;
d[T] = a[i];
T++;
}
}
cout << "**********************" << endl;
if (t == m)
cout << "恭喜你都答对了!" << endl;
else
{
for (i = 0; i < T; i++)
cout << "第" << c[i] + 1 << "题错了!" << "正确答案应该是:" << d[i] << endl;
}
}
int Other_d(int n) {
if (n == 4) {
cout << "本次训练结束!" << endl;
return 0;
}
if (n > 4) {
cout << "您输入的数字错误,请重新输入!" << endl;
}
}