




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上仲恺农业工程学院课程设计报告单项选择题标准化考试系统课程名称 C 语言程序设计姓 名 院(系) 信息科学与技术学院专业班级 学 号 指导教师 目 录1 目的设计一个单项选择题标准化考试系统,方便考试时试题的录入与批改。2 系统总框图和功能模块说明2.1 系统总框图单项选择题标准化考试系统答题插入试题显示题库题目删除试题退出系统2.2 功能模块说明答题模块:输入答题数n,n<j产生n个不同的随机数输入答案m,并批改进入函数answerq()统计文件中的题目数j结束YN插入试题模块:确定插入题目数,选择需要插入的题目类型,打开文件,插入题目,关闭文件.删除试题模块:
2、确定删除题号,选择需要删除的题目类型,读出文件,删除题目,并创建一个新的文件覆盖原文件,把剩下的试题读入文件.3 系统设计3.1 主要结构体题目,选项A,B,C,D,答案struct Testchar question200;char option1100;char option2100;char option3100;char option4100;char key;3.2主要功能函数int addtest()/增加试题void answerq()/答题void changeface()/选择试题类型界面int changeopenfile()/选择打开文件int compare(char
3、a,char b)/答案对照void readfile(int i,Test p)/显示题目void showtest(int n,int m)/展示题目或删除结构体元素 void startinterface()/开始界面4 系统调试(1)操作界面(2)选择界面:(3)答题:(4)插入试题:(5)显示题库试题(6)删除题目:(7)退出系统总结经过这两个星期的C语言课程设计的训练,我学到了很多,最主要的一点是怎样去自学一种东西,怎样去找到你所需要的资料,并在短时间把它学会,运用到你所需要的方面。这个过程是很艰难的,要花费很多的时间和精力,但是,在事情过后,自己就会发现自己已经在这个过程中学到了
4、自己想要的东西,这种获得是更深刻的。 在做这个C语言课程设计的时候,我原先也是知之甚少,什么是结构体数据,什么是定义类型,怎样在一个main函数中调用别的定义函数,等等,可以说是一无所知。然而,在这门课程设计中,这些方面却是特别重要的,可以说,掌握了这个,你就完全可以完成自己的任务。这就要求我们要自己去学,自己去探索。当然,跑图书馆是必不可少的,还有,身边有非常丰富的网络资源给我们好好利用,百度就是个很不错的地方。这样就从另一方面锻炼了我们检索知识获取信息的能力,在这个过程中,可以学到的是一种提升自我的能力。当然,由于个人能力所限,这份课程设计有一些别的方面还是要参考人家的的资料,在读懂别人材
5、料的同时,自己取人所长,补己之短,经过多次的调试,总结,最后交出一份自己比较满意的答卷。通过这次的课程设计,让我进一步的了解到C语言在我们日常生活中的重要性,而且,也更进一步的激发了我学习这门语言的兴趣.经过这次的训练,我相信自己以后会用更多的时间来把这门语言学好,掌握好这门必修的基础语言。源程序清单#include <stdio.h>#include <stdlib.h>#include <time.h>#include<conio.h>#define MAX 50typedef struct Testchar question200;char
6、 option1100;char option2100;char option3100;char option4100;char key;Test;FILE *fp;void changeface()/选择试题类型界面printf("nnnnn"); printf("tt-n"); printf("tt| 选择试题类型 |n"); printf("tt| |n"); printf("tt| 1.数据结构 |n"); printf("tt| |n"); printf("
7、;tt| 2.c/c+ |n"); printf("tt| |n"); printf("tt-n");int addtest()/增加试题int i, num;Test titleMAX="0"FILE *fp;changeface(); do scanf("%d",&i); fflush(stdin);switch(i)case 1:fp=fopen("questionbank1.txt","a+");break;case 2:fp=fopen("
8、;questionbank2.txt","a+");break;default:printf("你输入的指令不正确,请重新输入n"); while(i!=1&&i!=2); system("cls");while(1) printf("请输入要插入的题目数(<=50)n"); scanf("%d",&num);fflush(stdin); if(num<=MAX&&num>0)break;else printf("输入
9、有误,请重新输入题目数n");for(i=0;i<num;i+)printf("请输入第%d道题题目,选项和答案:n",i+1);/输入结构体元素内容printf("请输入题目n"); gets(titlei.question);printf("请输入选项A:"); gets(titlei.option1);printf("n请输入选项B:");gets(titlei.option2); printf("n请输入选项C:");gets(titlei.option3); print
10、f("n请输入选项D:");gets(titlei.option4);fflush(stdin);printf("n请输入答案:n");scanf("%1c",&titlei.key);fflush(stdin);system("cls"); for(i=0;i<num;i+) printf("%d.%sn%st%st",i+1,titlei.question,titlei.option1,titlei.option2); printf("%st%sn答案:%cn&quo
11、t;,titlei.option3,titlei.option4,titlei.key); if(fp=NULL)return 0; else for(i=0;i<num;i+) fprintf(fp,"%st%cn%st%st%st%sn",titlei.question,titlei.key,titlei.option1,titlei.option2,titlei.option3,titlei.option4);fclose(fp);return 1;void startinterface()/开始界面 printf("nnnnn"); pri
12、ntf("tt -n"); printf("tt | 单项选择题标准化考试系统 |n"); printf("tt | |n"); printf("tt | 1.答题 |n"); printf("tt | |n"); printf("tt | 2.试题插入 |n"); printf("tt | |n"); printf("tt | 3.显示题库题目 |n"); printf("tt | |n"); printf(&qu
13、ot;tt | 4.删除试题 |n"); printf("tt | |n"); printf("tt | 5.退出系统 |n"); printf("tt -n");int changeopenfile()/选择打开文件int i;do scanf("%d",&i); fflush(stdin);switch(i)case 1:fp=fopen("questionbank1.txt","r+");break;case 2:fp=fopen("ques
14、tionbank2.txt","r+");printf("rrrrrrrrrn");break;default:printf("你输入的指令不正确,请重新输入n"); while(i!=1&&i!=2); system("cls");return i;int compare(char a,char b)/答案对照if(a=b|(a-32)=b)printf("答对了n");return 1;else printf("答错了n正确答案是%cn",b);
15、return 0;void readfile(int i,Test p)/显示题目 printf("%d.%sn",i+1,p.question); printf("A.%st",p.option1); printf("B.%sn",p.option2); printf("C.%st",p.option3); printf("D.%sn",p.option4);void answerq()/答题Test titleMAX;int n,i,j,k,numMAX,score,sum=0;char h
16、;if(fp=NULL)printf("n不能打开questionbank.dat文件,按任何键退出程序!n");getch();exit(-1); for(j=0;!feof(fp);j+)/统计文件中的结构体项数 fscanf(fp,"%st%cn%st%st%st%sn",&titlej.question,&titlej.key,&titlej.option1,&titlej.option2,&titlej.option3,&titlej.option4); fclose(fp);while(1)pr
17、intf("请输入需要答题的题目数n");scanf("%d",&n);/n必须小于jfflush(stdin);if(n>j)printf("输入的题目数大于题库的题目数,请重新输入n");else break;for(i=0;i<n;i+)/产生n个不同的随机数srand(time(NULL); numi=rand()%j; while(1) for(k=0;k<i;k+)/排除相同随机数 if(numk=numi)break; if(k=i)break; numi=rand()%j;readfile(i
18、,titlenumi); printf("输入答案:");scanf("%c",&h);fflush(stdin);score=compare(h,titlenumi.key);sum+=score;printf("答对%d题n",sum);printf("按任意键返回主界面n");getch();void showtest(int n,int m)/展示题目或删除结构体元素int i,j,k;Test titleMAX;if(fp=NULL)printf("n不能打开questionbank.d
19、at文件,按任何键退出程序!n");getch();exit(-1);for(j=0;!feof(fp);j+)/统计文件中的结构体项数 fscanf(fp,"%st%cn%st%st%st%sn",&titlej.question,&titlej.key,&titlej.option1,&titlej.option2,&titlej.option3,&titlej.option4); fclose(fp);for(i=0;i<j;i+)readfile(i,titlei);if(n=1) printf(&qu
20、ot;按任意键返回主界面n"); getch(); system("cls") ;elseprintf("输入需要删除的题号:n"); scanf("%d",&k); switch(m) case 1:fp=fopen("questionbank1.txt","w+");break; case 2:fp=fopen("questionbank2.txt","w+");break;for(i=0;i<j;i+)if(k-1=i)continue; fprintf(fp,"%st%cn%st%st%st%sn",titlei.question,titlei.key,titlei.option1,titlei.option2,titlei.option3,titlei.option4);fclose(fp);printf("删除成功nn按任意键返回主界面n"); getch(); system("cls") ;void main()c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年临沂高新区教育系统部分事业单位公开招聘教师(6名)考前自测高频考点模拟试题及1套参考答案详解
- 2025广西河池市金城江区人民法院招聘3人考前自测高频考点模拟试题及一套答案详解
- 2025年甘肃省庆阳市新庄煤矿面向社会招聘生产性灵活用工206人考前自测高频考点模拟试题附答案详解
- 2025年宿州学院高层次人才公开招聘39人考前自测高频考点模拟试题及完整答案详解1套
- 2025北京市通州区漷县镇觅子店社区卫生服务中心招聘非在编护理人员2人模拟试卷及答案详解(夺冠)
- 2025广西贺州市八步生态环境局面向社会招聘工作人员3人考前自测高频考点模拟试题含答案详解
- 2025河南新乡市长垣行知学校招聘中小学教师考前自测高频考点模拟试题附答案详解
- 2025广东省连州市赴高校设点面向社会招聘编制教师37人模拟试卷及参考答案详解1套
- 班组安全培训需求建议课件
- 2025广州医科大学校本部招聘工作人员9人(第二次)模拟试卷及参考答案详解
- 2025年初级药师资格考试试题(附答案)
- 2025国企竞聘上岗与干部竞聘上岗笔试题及答案
- 人工智能与建筑产业体系智能化升级研究报告
- 学习通《大学生就业指导》章节测试含答案
- GB/T 4025-2010人机界面标志标识的基本和安全规则指示器和操作器件的编码规则
- 水池(水箱)清洗记录
- 大学学生转学(转入)申请表
- 角膜 角膜炎课件
- DL∕T 5440-2020 重覆冰架空输电线路设计技术规程
- 《发展汉语(第二版)初级读写Ⅱ》全套教案
- 孔明灯(Lantern)3.4使用指南课件
评论
0/150
提交评论