计算机辅助教学(CAI)系统开发,可供小学生作业练习的小程序。
基本要求:
- 建立试题库文件,从文件中,随机抽取n个题目;
- 题目涉及加减乘除,带括号的混合运算;
- 随时可以退出程序;
- 保留历史分数,能回顾历史,给出与历史分数比较后的评价在这里插入代码片;
- 界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。
提高部分:保存所有曾经练习过的题目、输入的答案及对错到外部.txt文件。
#define _CRT_SECURE_NO_WARNINGS 1 #include#include #include void munu() { printf("********* 0. exit *********n"); printf("********* 1. 选题 *********n"); printf("********* 2. 上一次数据 *********n"); } int Correct(int n) { int answer[20][20] = { 0 }; int i = 0; int my_answer = 0; printf("请输入你的答案:"); scanf("%d", &my_answer); FILE* fp = fopen("D:/clanguage/2022_code/test_6_19/answer.txt", "r"); while (fscanf(fp, "%d", answer[i]) != EOF) { i++; } printf("正确答案:%d", answer[n][0]); printf("n"); if (my_answer == answer[n][0]) { printf("您的答案正确n"); return 1; } else { printf("您的答案错误n"); return 0; } } int Select() { char line[30][30] = {0}; int i = 0; int j = 4;//次数 int a = 0; printf("请输入随机题目数量:"); scanf("%d", &j); FILE* fp = fopen("D:/clanguage/2022_code/test_6_19/question.txt", "r"); srand((unsigned)time(NULL)); while (fgets(line[i], 100, fp)) { i++; } for (int k = 0; k < j; k++) { int n = rand() % (i - 1); //printf("%d ", n); printf("%s", line[n]); int b = Correct(n); if (b) { a++; } } printf("答对题数%dn", a); fclose(fp); return a; } int main() { int i = 0; int a = 0; do { munu(); printf("输入选择:"); scanf("%d", &i); switch (i) { case 1: a = Select(); break; case 2: printf("上一次答对题数%dn", a); break; case 0: printf("退出程序n"); break; default: printf("选择错误,请重新选择n"); break; } } while (i); return 0; }



