《c语言单项选择题标准化考试系统设计.doc》由会员分享,可在线阅读,更多相关《c语言单项选择题标准化考试系统设计.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 课程设计任务书学 院、系:专 业:学 生 姓 名:学 号:设 计 题 目:单项选择题标准化考试系统设计 起 迄 日 期:指 导 教 师:1.设计目的设计单项选择题标准化考试系统。2 任务概述(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案).(2)试题录入:可随时在试题库中增加试题.(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入).(4)答题:用户可以输入自己的答案.(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩.3 模块划分单项选择体标准化考试系统添加试题到试题库显示试题库答题判卷退出系统4主要函数说明及N-S图(1) 菜单Menu()
2、:用来给用户提供选项;输出菜单界面输入选项N输入1Y 输入2N添加Add()函数输入3添加Put()函数YNY输入4NY添加Ask()函数exit(0)breakbreakbreakbreak(2) Read()函数:用于打开文件;FILE *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 %cn,quei.topic,quei.a1,quei .a2,quei.a3,quei.a4,q
3、uei.real);fclose(fp)return i(3) Save()函数:用于添加试题后保存试题;FILE *fpint i=0 if(fp=fopen(“单项选择题标准化考试系统设计.txt”)=Null)Y Nprintf(“文件打开失败!”)i=0;in;i+fprintf(fp,”%s %s %s %s %s %cn,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4,quei.real”)(4) Put()函数:用于显示试题;int i,nn=Read(que)打印表头i=0;in;i+ fprintf(fp,”%s %s %s %s %sn
4、,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4”)getch()(5)Add()函数:用于添加试题FILE *fp int i,a,n(5)Adisruct question que.n=Read(que)printf(“请输入增加试题的数目”)scanf(“%d“,&a);i=0;in; i+scanf(”%s %s %s %s %s%cn,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4,quei.real”)fprintf(fp,”%s %s %s %s %s%cn,quei.topic,quei.a1,quei
5、.a2,quei.a3,quei.a4,quei.real”)fclose(fp)(5) Ask()函数:用于答题并判卷。 sruct question queNint m,score=0;char r;fp=fopen(单项选择题标准化考试系统设计.txt,r+); printf(“请输入要答得题目数:”)Scanf(”%d”,&m);for(i=0;in;i+)if(strcmp(number,stui.num)=0);break;printf(%sn%sn%sn%sn%sn,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4); printf(n请输入您
6、的答案:); scanf(%c,&r); getchar();if(quei.real=r)NYprintf(n答案错误!n);score=score;printf(n答案正确!n);score+; 图4-6修改函数(cor) printf(n你的总成绩为:%dn,score);getchar();getchar();5. 程序运行数据及其结果6 课程设计心得通过这次实训,感觉到自己还是差很多的,自己学到的还是远远不够的,练习的太少了,好多知识点都记得不牢,还需要大量的练习。又因为一个学期没看了,好多东西都忘了,所以好多知识点都是在看得时候重新拾起来的。这次实训给我的教训就是平时要多多练习一些
7、题型,时不时的复习以前的知识点,让自己更加熟练的掌握更多编程技巧,更多的思路。还有一点就是没有思路的时候千万不要放弃,要学会思考,学会独立有耐心的完成一些事情,等到做完成功之后,便会收获很多的信心和欣慰。总之就是要有耐心,坚持多做练习,不会的多请教别人,一切困难都会迎刃而解。附录:#include#include /串操作及内存操作函数#include /调用系统函数#include/动态内存#include#define N 100void Menu1();int Read();void save();void Put();void Add();void Ask();struct quest
8、ion char topic100;char a1100;char a2100;char a3100;char a4100;char real;void Menu1()/主菜单 system(cls); puts(tt-欢迎进入单项选择题标准化考试系统设计-); puts(tt 1-添加试题到试题库中); puts(tt 2-显示试题库);puts(tt 3-答题并判卷); puts(tt 4-退出); puts(tt 请选择); int choice1,choice2; while(12) scanf(%d,&choice1); switch(choice1) /调用子函数。 case 1:
9、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 queN)/打开文件 FILE *fp;int i=0;fp=fopen(单项选择题标准化考试系统设计.txt,r+); /以读的形式打开文件information.txtif(fp=NULL)printf(文件打开失败);return 0; for(i=0;!f
10、eof(fp);i+)fscanf(fp,%s %s %s %s %s %cn,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4,quei.real);fclose(fp);return i;void save(struct question queN,int n) / 考试系统改变后更新并保存文件 FILE *fp;int i=0; if(fp=fopen(单项选择题标准化考试系统设计.txt,w+)=NULL) printf(文件打开失败!n); return ; else for(i=0;in;i+) fprintf(fp,%s %s %s %s %s
11、 %cn,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4,quei.real); fclose(fp); void Put()/显示试题信息 struct question queN;int i,n;n=Read(que);printf(*所有的试题信息如下*nn); for(i=0;in;i+) printf(%sn%sn%sn%sn%snn,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4); getch(); void Add()/添加试题 FILE *fp;int a,i;struct question queN
12、;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(%sn%sn%sn%sn%sn%c,&quei.topic,&quei.a1,&quei.a2,&quei.a3,&quei.a4,&quei.real); fprintf(fp,n%sn%sn%sn%s
13、n%sn%cn,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4,quei.real); printf(添加信息成功!);fclose(fp);getchar();getchar(); void Ask()/答题并判卷 FILE *fp;struct question queN;int m,score=0;char r;fp=fopen(单项选择题标准化考试系统设计.txt,r+); printf(请输入要答得题目数:); scanf(%d,&m);for(int i=1;i=m;i+)fread(&quei,sizeof(struct question)-1,1,fp);printf(%sn%sn%sn%sn%sn,quei.topic,quei.a1,quei.a2,quei.a3,quei.a4);printf(n请输入您的答案:); scanf(%c,&r);getchar();if(quei.real=r) printf(n答案正确!n);score+; else printf(n答案错误!n);score=score; printf(n你的总成绩为:%dn,score);getchar();getchar(); int main() Menu1();
限制150内