对于1至2年级的小学生,要求学生随机选择两个整数并进行加减运算以形成方程。
功能要求:
1、计算机随机提出10个问题,每题10分,程序结束时显示学生的分数;
2. 确保计算不超过1-2级的水平。 只允许50以内的加法和减法。 两个数的和或差不允许超过0到50的范围,且不允许为负数;
3. 学生有 3 次机会输入每个问题的答案。 当学生输入错误答案时,系统会提醒学生重新输入。 如果三个机会结束,则输出正确答案;
4. 每道题,第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分。 否则,不会获得积分;
5. 总分90分以上显示“SMART”,80-90分显示“GOOD”,70-80分显示“OK”,60-70分显示“PASS”,总分低于60分显示“PASS” “再试一次”
#include
#include ///包含rand()
#include ///srand()
void main() {
int left, right,mid,result=0,answer;///left加减法左边数字 right加减法右边数字 result真实结果 answer用户输入的结果
int temp = 1,chance=1,grade=0;///temp算术式编号 chance用户回答次数 grade用户成绩
for (int i = 0; i < 10; i++) {
while (1){
srand(time(NULL));///获取随机数的种子
left = rand() % 51;///获取随机数
right = rand() % 51;
mid = rand() % 51;///获取一个数用来决定加法还是减法
if (mid % 2 == 0) result = left + right;///如果mid是偶数则加法
if (mid % 2 != 0 && left != 0) result = left - right;
if (result >= 0 && result <= 50) { break; }///真实结果符合要求则进行输出
}
if (mid % 2 == 0) {
printf("(%d) %d+%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 10; ///第一次回答正确 成绩加十分
}
if (answer != result) {
printf("回答错误,请重新输入\n");
printf("(%d) %d+%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 7; ///第二次回答正确 成绩加七分
}
else {
printf("回答错误,请重新输入\n");
printf("(%d) %d+%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 5; ///第三次加五分
}
else {
printf("回答错误,正确答案:%d\n", result);///三次机会用完 输出正确答案
temp++;
}
}
}
}
else {///减法同加法
printf("(%d) %d-%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 10;
}
if (answer != result) {
printf("回答错误,请重新输入\n");
printf("(%d) %d-%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 7;
}
else {
printf("回答错误,请重新输入\n");
printf("(%d) %d-%d=", temp, left, right);
scanf("%d", &answer);
if (answer == result) {
printf("回答正确\n");
temp++;
grade += 5;
}
else {
printf("回答错误,正确答案:%d\n", result);
temp++;
}
}
}
}
}
///进行成绩判断并输出
if (grade >= 90) printf("SMART\n");
else if (grade >= 80 && grade < 90) printf("GOOD\n");
else if (grade >= 70 && grade < 80)printf("OK\n");
else if (grade >= 60 && grade < 70)printf("PASS\n");
else printf("TRY-AGAIN\n");
}