C语言程序设计——小学生计算机辅助教学系统

题目:小学生计算机辅助教学系统

编写一个程序,帮助小学生学习乘法。然后判断学生输入的答案对错与否,按下列任务要求以循序渐进的方式分别编写对应的程序并调试。

  • 任务1 程序首先随机产生两个1—10之间的正整数,在屏幕上打印出问题。例如:6*7=?然后输入答案,如果输入答案正确,则显示“Right!”,然后问下一个问题;否则显示“Wrong!Please try again.”,然后提示学生重做,直到答对为止。(略)
    • 任务2 在任务1的基础之上,当学生回答错误时,最多给三次重做,三次仍未做对,则显示“Wrong!You have tried three times!Test over!”,程序结束。
      • 任务3 在任务1的基础上,连续做10道乘法运算题,不给机会重做,若学生回答正确,则显示“Right!”,否则显示“Wrong!”。10道题全部做完后,按每题10分统计并输出总分,并输出学生的回答正确率。
        • 任务4 在任务2的基础上,为了提高程序的可读性,完善人机对话界面,从而达到来吸引学生的注意力,故要为学生输入的每一个正确或错误的答案输出不同的评价,正确的答案评价分为四个等级:“Very good!”、“Excellent!”、“Nice work!”、“Keep up the good work!”,错误的答案评价分为三个等级:“No.Please try again.”、“Wrong.Try once more.” ,“Don’t give up!”。
// 任务2
#include 
#include 
#include 

int main(int argc, char const *argv[]) {
    int computerProduct, myProduct, num1, num2, redoNumber;

    srand(time(NULL));
    for (;;) {
        redoNumber = 0;
        // 产生两个 1~10 之间的随机数
        num1 = rand() % 10 + 1;
        num2 = rand() % 10 + 1;
        // 电脑计算结果
        computerProduct = num1 * num2;

        do {
            printf("%d * %d = ? ", num1, num2);
            // 我的计算结果
            scanf("%d", &myProduct);
            if (myProduct == computerProduct) {
                printf("Right!\n");
                break;
            }
            // 若同一题连续错误三次则直接结束测试
            if (redoNumber == 3) {
                printf("Wrong!You have tried three times!Test over!");
                break;
            } else printf("Wrong!Please try again.\n");
            redoNumber++;
        } while (myProduct != computerProduct);

        if (redoNumber == 3) break;
    }
    return 0;
}
// 任务3
#include 
#include 
#include 

int main(int argc, char const *argv[]) {
    int computerProduct, myProduct, num1, num2, winNumber = 0, questionsNumber, i;

    srand(time(NULL));
    for (questionsNumber = 1; questionsNumber <= 10; questionsNumber++) {
        // 产生两个 1~10 之间的随机数
        num1 = rand() % 10 + 1;
        num2 = rand() % 10 + 1;
        // 电脑计算结果
        computerProduct = num1 * num2;
        printf("%d * %d = ? ", num1, num2);
        scanf("%d", &myProduct);
        if (myProduct == computerProduct) {
            printf("Right!\n");
            winNumber += 10;
        } else printf("Wrong!\n");
    }
    // 统计分数
    printf("学生得分:%d\n", winNumber);
    // 统计得分率(questionsNumber++最后累计到 11) 
    printf("学生得分率:%d%%", winNumber * 10 / --questionsNumber);

    return 0;
}
// 任务4
#include 
#include 
#include 

int main(int argc, char const *argv[]) {
    int computerProduct, myProduct, num1, num2, redoNumber, winNumber = 0;

    srand(time(NULL));
    for (;;) {
        // 只要出现正确则把累计的错误次数清零
        redoNumber = 0;
        // 产生两个 1~10 之间的随机数
        num1 = rand() % 10 + 1;
        num2 = rand() % 10 + 1;
        // 电脑计算结果
        computerProduct = num1 * num2;
        do {
            // 只要出现错误则把累计的正确次数清零
            if (redoNumber != 0)
                winNumber = 0;
            printf("%d * %d = ? ", num1, num2);
            scanf("%d", &myProduct);
            if (myProduct == computerProduct) {
                winNumber++;
                // 输出对应正确次数的语句
                switch (winNumber) {
                    case (1):
                        printf("Keep up the good work!");
                        break;
                    case (2):
                        printf("Nice work!");
                        break;
                    case (3):
                        printf("Excellent!");
                        break;
                    default:
                        printf("Very good!");
                        break;
                }
                printf("\n");
                break;
            } else redoNumber++;
            switch (redoNumber) {
                case (1):
                    printf("No.Please try again.");
                    break;
                case (2):
                    printf("Wrong.Try once more.");
                    break;
                case (3):
                    printf("Don't give up!");
                    break;
            }
            if (redoNumber == 3) break;
            printf("\n");
        } while (1);
        if (redoNumber == 3) break;
    }
    return 0;
}

结果展示

C语言程序设计——小学生计算机辅助教学系统_第1张图片

你可能感兴趣的:(C,c语言)