简单的四则运算系统

        你问我为啥要写,只是觉得随机生成数比较好玩吧,上课老师也说了一下,可以减轻家长负担!!!

#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;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钟一淼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值