# 小学生数学测验 **Repository Path**: curriculum-design/studentTest ## Basic Information - **Project Name**: 小学生数学测验 - **Description**: 本系统用于小学数学测验,实现题随机生成,题目输出,答案对错判断三个主要功能。然后在main函数中实现主流程控制,产生一定数量的题目来测试用户 - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-02-25 - **Last Updated**: 2024-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 小学数学测验系统 ========= 功能概述 -------------- 本系统用于小学数学测验,实现题随机生成,题目输出,答案对错判断三个主要功能。然后在main函数中实现主流程控制,产生一定数量的题目来测试用户。 * 输入形式:输入数据为系统所出的题目的答案,限定在int类型可表示的范围内。 * 输出形式:会依次展示每道题目,用户做题后会即刻反馈正确与否。所有题目完成后输出用户的评级。 * 程序所达到的功能:测验用户一百以内加减法水平,共出一定数量的题,每道题答错后有一定次数的回答机会并依据尝试次数扣除这道题的分数。最后根据用户得到的总分给出评级。 * 测试数据:由于产生的题目为随机,无法进行非侵入式的单元测试。因此运行程序,分别输入正确结果和非正确结果进行测试。 设计概述 ------------- 本程序使用question类实现随机生成,题目输出,答案对错判断这三个主要功能。分别使用构造函数、成员函数display和成员函数isRight实现。主流程控制在main函数中通过两层循环实现,外层循环产生一定数量的试题测试用户,内层循环在用户的答案错误时给予回答的机会。 ### 系统参数设置 * questionNum:测试的题目数量 * reanswer:每道题允许回答次数 ### 系统架构图 ![p1](p1.PNG) 设计详解 ---------- ### question类 #### 数据成员: ``` cpp int num1; ``` 第一个操作数 ``` cpp int num2; ``` 第二个操作数 ``` cpp bool uni; ``` 加法还是减法 ``` cpp int result; ``` 正确结果 #### 成员函数: ``` cpp question() ``` 主构造函数 ``` cpp bool isRight(int input) ``` 判断input是否与result相等(输入的答案是否正确) ### 其它函数 ``` cpp string getLevel(int score) ``` 根据得分进行评级。共分为SMART GOOD OK PASS FAIL五个评级 ``` cpp int caluScore(int score) ``` 将所有题目得分的和(每道题十分满)换算为百分制得分