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

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

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

2 任务概述(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案). (2)试题录入:可随时在试题库中增加试题.(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入). (4)答题:用户可以输入自己的答案.(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩. 3 模块划分单项选择体标准化考试系统判退添显答卷出加示题系试试统题题到库试题库4主要函数说明及N-S图(1)菜单Menu():用来给用户提供选项;输出菜单界面输入选项输入1 N Y添加Add 输入2 N Y ()函数添加Put输入3 N Y ()函数添加输入4 N Y Ask()函数exit(0)break break break(2)Read()函数:用于打开文件; FILE *fp ,int i=0 breakfp=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()函数:用于添加试题后保存试题;FILE *fpint i=0if((fp=fopen(“单项选择题标准化考试系统设计.txt”))==Null)Y Nprintf(“文件打开失败~”)i=0;i<n;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”) (4)Put()函数:用于显示试题;int i,nn=Read(que)打印表头i=0;i<n;i++fprintf(fp,”%s %s %s %s%s\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4”)getch()(5)Add()函数:用于添加试题(5)Adi FILE *fp int i,a,n . sruct question quen=Read(que)printf(“请输入增加试题的数目”)scanf(“%d“,&a);i=0;i<n; i++scanf(”%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”)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)(5)Ask()函数:用于答题并判卷。

sruct question que[N]int m,score=0;char r;fp=fopen("单项选择题标准化考试系统设计.txt","r+");printf(“请输入要答得题目数:”)Scanf(”%d”,&m);for(i=0;i<n;i++)if(strcmp(number,stu[i].num)==0);break;printf("%s\n%s\n%s\n%s\n%s\n",que[i].topic,que[i].a1,que[i].a2,que[i ].a3,que[i].a4);printf("\n请输入您的答案:");scanf("%c",&r);getchar();if(que[i].real==r) Y N图4-6printf("\n答案正确!\n"); printf("\n答案错误!\n"); 修改函数(cor) score++; score=score;printf("\n你的总成绩为:%d\n",score);getchar(); getchar();5. 程序运行数据及其结果6 课程设计心得通过这次实训,感觉到自己还是差很多的,自己学到的还是远远不够的,练习的太少了,好多知识点都记得不牢,还需要大量的练习。

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

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

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

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

附录:#include<stdio.h>#include<stdlib.h> //串操作及内存操作函数#include<string.h> //调用系统函数#include<malloc.h>//动态内存#include<conio.h>#define N 100void 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-----欢迎进入单项选择题标准化考试系统设计-----"); 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.txtif(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,que[i].a3,que[i].a4,que[i].real);}fclose(fp);}void Put()//显示试题信息{struct question que[N];int i,n;n=Read(que);printf("*********************所有的试题信息如下**********************\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].a3,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(); }。

相关主题