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