0
点赞
收藏
分享

微信扫一扫

简单的四则运算系统

吴陆奇 2022-03-11 阅读 75

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

#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的系统还没做......

举报

相关推荐

0 条评论