(1)可以录入试卷基本信息,并且录入选择题的题干、选项和答案,可以录入多题,并允许 查看和删除等操作; (2)考试的时候,考生先录入学号和姓名,并开始作答案,答题结束后,显示考生的成绩和 各题的答案,允许多位考生作答; (3)考试结束后,可以进行相关考试成绩的统计分析,比较打印所有考生的成绩单,平均分、 最高或最低分等; (4)一个试卷中,实现多种题型,比如再增加判断题和多选题等;
1条回答 默认 最新
fuill 2022-01-01 15:36关注这里有可以录入试题的代码
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h> //最多题目数 #define MAXN 100 struct que { char a[100]; char b[100]; char c[100]; char d[100]; char q[100]; char answer[2]; }q[100]; void add()//增加题目 { FILE *fp=fopen("file08.txt","a+"); que f; printf("请输入题目\n"); scanf("%s",f.q); printf("请输入A选项\n"); scanf("%s",f.a); printf("请输入B选项\n"); scanf("%s",f.b); printf("请输入C选项\n"); scanf("%s",f.c); printf("请输入D选项\n"); scanf("%s",f.d); printf("请输入正确答案\n"); scanf("%s",f.answer); fprintf(fp,"%s %s %s %s %s %s\n",f.q,f.a,f.b,f.c,f.d,f.answer); fclose(fp); } void exam() { que ex[MAXN]; int n=0; FILE *fp=fopen("file08.txt","a+"); char arr[100]; while (!feof(fp)) { fscanf(fp,"%s %s %s %s %s %s\n",ex[n].q,ex[n].a,ex[n].b,ex[n].c,ex[n].d,ex[n].answer); if(ex[n].q[0]=='\0' || ex[n].q[0]=='\n' ) //避免读取空行 continue; else n++; } int sum=0; char c[10]; if(n<5) printf("题目不足5题\n"); else { printf("当前共有%d道题,请输入你需要的题目数:",n); int m; scanf("%d",&m); getchar(); for(int i=0;i<m;i++) { int index = rand()%n;//生成0-n的随机数 printf("%s( )\nA %s B %s C %s D %s\n",ex[index].q,ex[index].a,ex[index].b,ex[index].c,ex[index].d); printf("你的答案是"); scanf("%s",c); getchar();//接收回车符 if(c[0]==ex[index].answer[0]) sum+=20; //这里的分数根据题目数调整 } printf("你的得分是:%d分\n",sum); } } int main() { char userName[30]; char passWord[30]; char userName1[30]; char passWord1[30]; srand((unsigned)time(NULL));//随机种子放在main函数中即可 system("color FD"); printf("\n\n\n\n\n\n"); printf("================================================================\n"); printf("===========================考试系统=============================\n"); printf("================================================================\n"); system("cls"); printf("================================================================\n"); printf("===========================用户注册=============================\n"); printf("================================================================\n"); printf("\n\n\n"); printf("欢迎使用本系统!首先请您先完成用户注册:)\n"); printf("用户名:"); scanf("%s", userName); getchar();//接收回车 printf("密码:"); scanf("%s",passWord); getchar();//接收回车 printf("注册成功,您可以登录本系统!"); system("cls"); while(1) { printf("欢迎使用本系统!请您完成登录操作:)\n"); printf("用户名:"); scanf("%s",userName1); printf("密码:"); scanf("%s", passWord1); getchar(); if (strcmp(userName, userName1) == 0 && strcmp(passWord, passWord1) == 0) { printf("欢迎使用本系统!\n"); break; } else { printf("您输入的账户名和密码不正确,请重新输入!\n"); system("cls"); } } int num; printf("----------欢迎使用客观题考试系统-------------\n"); printf("---输入1增加试题,输入2进行考试,其他键退出---\n"); while(scanf("%d",&num)) { if(num==1) add(); else if(num==2) exam(); else { break; } printf("输入1增加试题,输入2进行考试,其他键退出\n"); } return 0; } //参考自问答解决 无用评论 打赏 举报