木糖树果 2023-12-19 17:16 采纳率: 100%
浏览 7
已结题

小学生测验系统设计,求解题技巧

小学生测验系统设计
面向小学12年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出1
2年级的水平,只允许进行50以内的加减法,不允许两数之
和或之差超出0~50的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如
果三次机会结束则输出正确答案:
(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第
三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”
(6) 80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”

  • 写回答

1条回答 默认 最新

  • 编程乐学 2023-12-19 18:56
    关注
    
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    
    int main() {
        int score = 0;
    
        srand(time(0));
    
        for (int i = 0; i < 10; i++) {
            int num1 = rand() % 51;
            int num2 = rand() % 51;
            char op = (rand() % 2 == 0) ? '+' : '-';
            int result = (op == '+') ? num1 + num2 : num1 - num2;
    
            std::cout << "Question " << i+1 << ": " << num1 << " " << op << " " << num2 << " = ?" << std::endl;
    
            for (int j = 0; j < 3; j++) {
                int answer;
                std::cout << "Enter your answer: ";
                std::cin >> answer;
                if (answer == result) {
                    if (j == 0)
                        score += 10;
                    else if (j == 1)
                        score += 7;
                    else
                        score += 5;
                    break;
                } else {
                    if (j == 2)
                        std::cout << "Wrong answer! The correct answer is " << result << "." << std::endl;
                    else
                        std::cout << "Wrong answer! Please try again." << std::endl;
                }
            }
        }
    
        std::cout << "Your score: " << score << std::endl;
    
        if (score >= 90)
            std::cout << "SMART" << std::endl;
        else if (score >= 80)
            std::cout << "GOOD" << std::endl;
        else if (score >= 70)
            std::cout << "OK" << std::endl;
        else if (score >= 60)
            std::cout << "PASS" << std::endl;
        else
            std::cout << "TRY AGAIN" << std::endl;
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 创建了问题 12月19日

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题