当前位置:文档之家› c语言单项选择题标准化考试系统设计

c语言单项选择题标准化考试系统设计

课程设计任务书 学 专学院、系:生业: 姓 名: 学号: 设 计题 目: 单项选择题标准化考试系统设计起 迄日 期: 指 导教 师:1.设计目的设计单项选择题标准化考试系统。

2任务概述(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时在试题库中增加试题.(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可以输入自己的答案.(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩3模块划分单项选择体标准化考试系统Y NFILE *fp ,int i=0FILE *fp ,int i=0fp=fopen("单项选择题标准化考试系统设计.txt","r+")Y - if(fp==NULL) "~~~—_ --------------Nprintf(" 文件打开失败");return 0;for(i=0;!feof(fp);i++)fprintf(fp,"%s %s %s %s %s %c\n",que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real);fclose(fp)return i (3) Save()函数:用于添加试题后保存试题;i=0 ;i<n; i++sea nf(” %s %s %s %s %%c\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real ”)(5)Ask()函数:用于答题并判卷。

----------------------------fclose(fp)5.程序运行数据及其结果6课程设计心得通过这次实训,感觉到自己还是差很多的,自己学到的还是远远不够的,练习的太 少了,好多知识点都记得不牢,还需要大量的练习。

又因为一个学期没看了,好多 东西都忘了,所以好多知识点都是在看得时候重新拾起来的。

这次实训给我的教训 就是平时要多多练习一些题型,时不时的复习以前的知识点,让自己更加熟练的掌 握更多编程技巧,更多的思路。

还有一点就是没有思路的时候千万不要放弃,要学会思考,学会独立有耐心的完成 一些事情,等到做完成功之后,便会收获很多的信心和欣慰。

总之就是要有耐心, 坚持多做练习,不会的多请教别人,一切困难都会迎刃而解。

附录:#in clude<stdio.h>#in clude<c oni o.h>#defi ne N 100#i nclude<stdlib.h> II #i nclude<stri ng.h> II #i nclude<malloc.h>〃 串操作及内存操作函数调用系统函数动态内存void Menu1();int Read();void save();void Put();void Add();void Ask();struct question{ char topic[100];char a1[100];char a2[100];char a3[100];char a4[100];char real;};void Menu1()// 主菜单{ system("cls");puts("\t\t添加试题到试题库中"1 ---puts("\t\t显示试题库");2 ---puts("\t\t 3 --- 答题并判卷");puts("\t\t退出");4 ---puts("\t\t 请选择……");int choice1,choice2;while(12){scanf("%d",&choice1);switch(choice1){ // 调用子函数。

case 1:system("cls");Add();Menu1();break;case 2:system("cls");Put();Menu1();break;case 3:system("cls");Ask();Menu1();break;case 4:puts(" 欢迎下次使用");exit(0);}int Read(struct question que[N])// 打开文件{FILE *fp;int i=0;fp=fopen(" 单项选择题标准化考试系统设计.txt","r+"); // 以读的形式打开文件information.txt}if(fp==NULL){printf(" 文件打开失败");return 0;}for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %s %s %c\n",que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real);fclose(fp);return i;}void save(struct question que[N],int n) // 考试系统改变后更新并保存文件{FILE *fp;int i=0;if((fp=fopen(" 单项选择题标准化考试系统设计.txt","w+"))==NULL) {printf(" 文件打开失败!\n");}return ;}else{for(i=0;i<n;i++) }fprintf(fp,"%s %s %s %s %s %c\n",que[i].topic,que[i].a1,que[i].a2,q ue[i].a3,que[i].a4,que[i].real);}fclose(fp);}void Put()// 显示试题信息{struct question que[N];int i,n;n=Read(que);printf(" f********************* 所有的试题信息如下**********************\n\n");for(i=0;i<n;i++)printf("%s\n%s\n%s\n%s\n%s\n\n",que[i].topic,que[i].a1,que[i].a2,que[i]. a3,que[i].a4);getch();void Add()// 添加试题{FILE *fp;int a,i;struct question que[N];fp=fopen(" 单项选择题标准化考试系统设计.txt","a+"); // 以添加的形式打开文件if(fp==NULL){printf(" 文件打开失败");return;}printf(" 请输入增加试题的数目\n");scanf("%d",&a);for(i=1;i<=a;i++)printf("\n请输入第%d个试题的题目,第一个选项,第二个选项,第三个选项,第四个选项,正确答案,并按回车键确认:\n",i);scanf("%s\n%s\n%s\n%s\n%s\n%c",&que[i].topic,&que[i].a1,&que[i].a2,&que[ i].a3,&que[ i].a4,&que[i].real);fprintf(fp,"\n%s\n%s\n%s\n%s\n%s\n%c\n",que[i].topic,que[i].a1,que[i].a2 ,que[i].a3,que[i] .a4,que[i].real);}printf(" 添加信息成功!");}fclose(fp);getchar();getchar();}void Ask()// 答题并判卷{ FILE *fp;struct question que[N];int m,score=0;char r;fp=fopen(" 单项选择题标准化考试系统设计.txt","r+");printf(" 请输入要答得题目数:");scanf("%d",&m);for(int i=1;i<=m;i++){fread(&que[i],sizeof(struct question)-1,1,fp);printf("%s\n%s\n%s\n%s\n%s\n",que[i].topic,que[i].a1,que[i].a2,que[i].a 3,que[i].a4);printf("\n 请输入您的答案:");scanf("%c",&r);getchar();if(que[i].real==r){ printf("\n 答案正确!\n");score++;}else {printf("\n 答案错误!\n"); score=score;printf("\n 你的总成绩为:%d\n",score); getchar();getchar();}}int main(){ Menu1();}。

相关主题