用c语言写一个小学生测试系统

3编写一个程序,实现一个小学生算术运算(可以选择只有+、-还是包括*、/,100以内的口算,菜单选项课自行定义)的测试系统,一套题有十道,每道题显示序号如:3、47+25=?你的答案是:,每答对一道题给10分,测试结束给出得分和评价(100分显示太棒了,90分以上显示还不错……,可自行定义)。

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

void test()
{
    system("cls");
    int i = 0, sum = 0;
    srand(time(0));    //调用随机种子函数,避免每次运行测试题都一样
    while (i ++ < 10)
    {
        printf("\n\n\n");
        int fs = 10;
        if (rand() % 2 == 1)      // 加减法
        {
            int a = rand() % 100, b = rand() % 100;
            if (a < b)
            {
                int t = a;
                a = b;
                b = t;
            }
            if (rand() % 2 == 1)      // 加法
            {
                printf("\t(题 %d)请问 : %d + %d = ?   ", i, a, b);
                int n;
here:
                scanf("%d", &n);
                putchar('\n');
                if (n == a + b)
                {
                    sum += fs;
                    printf("\t回答正确!~^_^~!");
                }
                else
                {
                    if (fs == 5)
                    {
                        printf("\t真可惜,三次机会都用完了`-_-`");
                        system("pause");
                        continue;
                    }
                    printf("\t回答错误!!,请重新出入正确答案: ");
                    fs -= fs == 10 ? 3 : 2;
                    goto here;
                }
            }
            else      // 减法
            {
                printf("\t(题 %d)请问 : %d - %d = ?   ", i, a, b);
                int n;
here1:
                scanf("%d", &n);
                putchar('\n');
                if (n == a - b)
                {
                    sum += fs;
                    printf("\t回答正确!~^_^~!");
                }
                else
                {
                    if (fs == 5)
                    {
                        printf("\t真可惜,三次机会都用完了`-_-`");
                        system("pause");
                        continue;
                    }
                    printf("\t回答错误!!,请重新出入正确答案: ");
                    fs -= fs == 10 ? 3 : 2;
                    goto here1;
                }
            }
        }
        else      // 乘除法
        {
            int a = rand() % 50, b = rand() % 10;
            if (a < b)
            {
                int t = a;
                a = b;
                b = t;
            }
            if (rand() % 2 == 1)      // 乘法
            {
                printf("\t(题 %d)请问 : %d * %d = ?   ", i, a, b);
                int n;
here2:
                scanf("%d", &n);
                putchar('\n');
                if (n == a * b)
                {
                    sum += fs;
                    printf("\t回答正确!~^_^~!");
                }
                else
                {
                    if (fs == 5)
                    {
                        printf("\t真可惜,三次机会都用完了`-_-`");
                        system("pause");
                        continue;
                    }
                    printf("\t回答错误!!,请重新出入正确答案: ");
                    fs -= fs == 10 ? 3 : 2;
                    goto here2;
                }
            }
            else      // 除法
            {
                a = rand() % 10, b = rand() % 10;    // 避免除法过大
                if (a < b)
                {
                    int t = a;
                    a = b;
                    b = t;
                }
                int s = a * b;
                printf("\t(题 %d)请问 : %d / %d = ?   ", i, s, a);
                int n;
here4:
                scanf("%d", &n);
                putchar('\n');
                if (n == b)
                {
                    sum += fs;
                    printf("\t回答正确!~^_^~!");
                }
                else
                {
                    if (fs == 5)
                    {
                        printf("\t真可惜,三次机会都用完了`-_-`");
                        system("pause");
                        continue;
                    }
                    printf("\t回答错误!!,请重新输入正确答案: ");
                    fs -= fs == 10 ? 3 : 2;
                    goto here4;
                }
            }
        }
    }

    printf("\n\t\t\t测试结束!!!得分评价:");

    switch (sum / 10)
    {
        case 10:
            printf("\t太棒了  100分!\n");
            break;
        case 9:
            printf("\t还不错  90分!\n");
            break;

        case 8:
            printf("\tG O O D \n");
            break;
        case 7:
            printf("\tO K \n");
            break;
        case 6:
            printf("\tP A S S \n");
            break;
        default:
            printf("\tT R Y   A G A I N \n");
            break;
    }
    system("pause");
}
void menu()
{
    int sel;

    system("cls");

    printf("--------------------------------------------------\n");
    printf("|          小学生四则运算测试练习                |\n");
    printf("|              1. 开始测试                       |\n");
    printf("|              2. 退出程序                       |\n");
    printf("--------------------------------------------------\n");
    printf("输入你的选择(1-2):  ");
    scanf("%d", &sel);

    while (sel <= 0 || sel >= 2)
    {
        printf("输入错误!!!\n");
        printf("重新输入你的选择(1-2):");
        scanf("%d", &sel);
    }

    switch (sel)
    {
        case 1:
            test();
            menu();
            break;
        case 2:
            exit(0);
            break;
    }

    system("pause");
}
int main(void)
{
    menu();
    return 0;
}