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