下载此文档

C语言单项选择题标准化考试系统.pdf


文档分类:IT计算机 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
该【C语言单项选择题标准化考试系统 】是由【青山代下】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【C语言单项选择题标准化考试系统 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..青岛理工大学《C语言程序设计》题目C语言单项选择题标准化考试系统指导教师:姓名:学号:班级:专业:地点:时间:2013-7-1至2013-7-5:..一、内容【设计内容】试设计一单项选择题标准化考试系统,实现试题的录入、抽取、用户的答题、系统的自动判卷等功能。【设计要求】1、用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)2、试题录入:可随时增加试题到试题库中3、试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)4、答题:用户可实现输入自己的答案5、自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。二、上机环境操作系统::、函数调用关系图Main()Menu()ReadfromFile()Answer()Output()TorF()createLinkedList()Input()InsertNode()WritetoFile():..图1函数调用关系图四、()()(intn,TEST*sp)(TEST*,inti)(TEST*sp,charm)(TEST*)(TEST*sp)*createLinkedList(TEST*sp)*InsertNode(TEST*head,TEST*s)(TEST*head)保存到文件五、流程图:..开始Menu()输入选择item真Item=1?答题假真录入题目将题目信息Item=2?创建链表信息插入链表中假真Item=3?保存文件假Item=4?真结束图2系统总流程图:..开始输入答题数ni=0?num[0]=rand()%(M-1)+0输出总i++i<n?成绩真结束num[i]=rand()%Score+=TorF()(M-1)+0输入答j=i案假Output()j>=0?真假num[j]=num[jj---1]?真图3Answer()函数流程图:..开始输入答案m标准答案与输入答案是否相等?开始真假输出题号输出选项A输出输出输出选项B“Right!“Wrong输出选项C”!”输出选项D该题分数为1该题分数为0分分结束结束图4Ooutput()函数流程图图5TorF()函数流程图:..开始开开打开文件输入题目读取文件里输入选项A的信息输入选项B输入选项C输入选项D输入答案关闭文件结束结束图6Input()函数流程图图7ReadfromFile()函数流程图:..开始i=0,p,q假返回头指针i<M?真结束将第一条信息存入p中初始化p指针的下一个节点初始化q指针假真的下一个节点i=0?head=pq=pi++图8createLinkedList()函数流程图:..开始p,qi=0输入n将保存信息假假的s,插入p,q=NULL?(q!=NULL&&n!=i+1)?q之间;返回头指针真真输出“Notp,q指针都found!指向下一节”点i++结束图9InsertNode()函数流程图六、:..:..通过这短短5天的时间,学到了许多东西,尤其是对链表及文件的使用。在这之前对于链表和文件的使用还不是特别明白,现在已经可以较为熟练的应用它们。对结构体数组的使用也更加清晰了。在做单项选择题标准化考试系统时,碰到的第一个问题就是如何从文件里读取数据,为了解决这个问题,我细心的研究了老师给的课件,,:..碰到的第二个问题是,如何让编译器随机抽取的题目不重复,通过认真思考算法,最终得出了一个较为合理的算法。第三个问题是,链表的使用,在做“插入试题”这一块的函数时,经常出现编译错误的提示,仔细阅读编译器提供的错误信息,并对程序进行修改,最后也成功解决了这一个问题。这份程序在文件的读取和保存以及链表的使用方面参考了老师给的课件,并进行修改。但是,我的程序在图形处理上基本是没有,所以界面不是特别美观。通过网络资源,学会了清屏,system(cls”);通过这次的课程设计,让我进一步的了解到C语言在我们日常生活中的重要性,体会到编一个对人们现实生活有用处的程序的快乐,,我相信自己以后会用更多的时间来把这门语言学好,掌握好这门必修的基础语言。最后,在此对我的C语言老师——陈老师,表示感谢。感谢她平时认真地帮我调试程序,并耐心地解答疑点。在她的辅导下我从对C语言没有丝毫概念的程度到现在已经可以成功地写出一些比较像样的程序,是她开启了我的编程人生。八、参考文献[1],2009[2](第三版).清华大学出版社,2005[3],2007九、程序清单/*单项选择题标准化考试系统设计*/#include<>#include<>#include<>#include<>#include<>#defineM30typedefstructtest{charproblem[300];charoption1[100];charoption2[100];charoption3[100];charoption4[100];charkey;structtest*next;}TEST;Menu();//菜单函数:..//voidOutput(TEST*,inti);//输出第n道题题目intTorF(TEST*sp,charm);//判卷函数voidInput(TEST*);//录入题目voidReadfromFile(TEST*sp);//从文件中读取题目信息TEST*createLinkedList(TEST*sp);//创建链表TEST*InsertNode(TEST*head,TEST*s);//插入函数voidWritetoFile(TEST*head);//保存到文件intmain(void){TESTtest[M];TESTs;TEST*head;intitem,n;while(1){Menu();ReadfromFile(&test);switch(item){case1:请输入答题数:Answer(n,&test);break;case2:Input(&s);head=createLinkedList(&test);head=InsertNode(head,&s);break;WritetoFile(head);break;case4:exit(0);break;输入有误!请重新输入。}}:..//Menu(){:}//答题函数voidAnswer(intn,TEST*sp){inti,j,score=0,num[M];charm;srand(time(NULL));num[0]=rand()%(M-1)+0;for(i=0;i<n;i++){loop:srand(time(NULL));//产生真随机数num[i]=rand()%(M-1)+0;for(j=i;j>=0;j--)//保证不出现重复的题目{if(num[j]==num[j-1])//若抽中的题重复则重新抽题{gotoloop;}}Output(&sp[num[i]],i+1);//输出抽中的题目请输入答案:score+=TorF(&sp[num[i]],m);//判段用户输入的答案与标准答案是否一致}你的总成绩为//输出总成绩}voidOutput(TEST*sp,inti)//输出第n道题题目函数{A%s:..B%sC%sD%s}intTorF(TEST*sp,charm)//{if(sp->key==m)//若用户输入的答案与标准答案一致,返回1{return1;}else{//若用户输入的答案与标准答案不一致,返回0return0;}}voidInput(TEST*sp)//试题录入函数{请输入要插入的试题信息:请输入题干:请输入选项请输入选项请输入选项请输入选项请输入答案:}voidReadfromFile(TEST*sp)//文件读取函数{FILE*fp;inti;//文件打开失败{exit(0);:..}for(i=0;!feof(fp);i++)//文件打开成功{//将读出的数据保存在sp变量里}fclose(fp);//关闭文件}TEST*createLinkedList(TEST*sp)//创建链表{inti;TEST*head=NULL,*q=NULL,*p=NULL;//定义三个变量for(i=0;i<M;i++){p=(TEST*)malloc(sizeof(TEST));//申请内存p=&sp[i];p->next=NULL;if(i==0){head=p;//链表的表头}else{q->next=p;}q=p;}returnhead;}TEST*InsertNode(TEST*head,TEST*s)//插入函数{intn,i;TEST*p,*q;p=head;q=p->next;请输入要在哪个节点后插入题目信息::..for(i=0;q!=NULL&&n!=i+1;i++)//遍历{p=p->next;q=q->next;}if(q==NULL){}Else//插入数据{p->next=s;s->next=q;}returnhead;}voidWritetoFile(TEST*head)//保存到文件{FILE*fp;TEST*q;//文件打开失败{exit(0);}for(q=head;q!=NULL;q=q->next)//用链表的方式将数据保存到文件{}fclose(fp);//关闭文件}

C语言单项选择题标准化考试系统 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小1.40 MB
  • 时间2024-04-18