diff --git a/pupilTest/pupilTest.c b/pupilTest/pupilTest.c new file mode 100644 index 0000000..1a5c470 --- /dev/null +++ b/pupilTest/pupilTest.c @@ -0,0 +1,135 @@ + +#include +#include //包含_getch()函数,可以自动从缓冲区读取一个字符(不需要按回车) +#include //包含随机数函数 +#include //包含时间函数 + +int main() +{ + while (true) + { + + srand(time(NULL)); //time(NULL)读取得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数。 + //srand()是随机数发生器的初始化函数 + int x, y, score = 0, count = 0, correctAnswer, currentAnswer, flag; + //x:前一个数,y:后一个数,score:最终分数,count:答题次数,correntAnswer:正确答案,currentAnswer:当前答案 ,flag:临时量 + char choice,op; + + //choice:存储选择,op:运算符 + system("cls"); + + printf("欢迎进入测验,电脑将随机出10道题,每道题有三次作答机会,但每答错一次对应分数就会减少\n"); + + printf("按Enter键进入考试,其他键退出"); + + choice = _getch(); + + if (choice == 13) //Enter键的ascii码 + + { + for (int i = 0; i < 10; i++) + { + + system("cls"); //清屏 + + printf("现在是第%d道题:\n",i + 1); + + x = rand() % 51; //产生0~50的随机数 + + flag = rand() % 2; //flag为0或1 + + if (flag) + + { + op = '+'; + } + else + { + op = '-'; + } + if (op == '+') //当运算符为加时 + { + y = rand() % (50 - x + 1); //第二个数的范围,满足两数之和小于等于50 + correctAnswer = x + y; //算出正确答案 + printf("%d %c %d = \n", x, op, y); + } + else + { + y = rand() % (x + 1); //应为第一个数范围为0~50,所以第二个数比第一小就行了 + correctAnswer = x - y; //算出正确答案 + printf("%d %c %d = \n", x, op, y); + } + for (int j = 0; j < 3; j++) + { + printf("第%d次作答\n", j + 1); + count++; + printf("请输入您的答案:"); + scanf("%d", ¤tAnswer); + + if (currentAnswer == correctAnswer) + { + printf("恭喜你回答正确!\n"); + system("pause"); //暂停 + if (count == 1) + { + score = score + 10; + count = 0; + break; + //初始化count并退出循环 + } + else if (count == 2) + { + score = score + 7; + + count = 0; + + break; + + //初始化count并退出循环 + } + else if (count == 3) + { + score = score + 5; + + count = 0; + + break; + + //初始化count并退出循环 + } + count = 0; //初始化 + } + else + { + printf("答案错误!\n"); + + if (count == 3) + { + printf("第%d题的答题次数已用完,即将进入下一题",i + 1); + + count = 0; + + system("pause"); + } + } + } + } + system("cls"); + + printf("答题结束!\n"); + + printf("您的分数为%d\n",score); + + printf("按Enter继续测试,其他键退出测试."); + + choice = _getch(); + + if (choice != 13) + return 0; + } + else + { + return 0; + } + } +}