C语言填空题考试系统课程设计_第1页
C语言填空题考试系统课程设计_第2页
C语言填空题考试系统课程设计_第3页
C语言填空题考试系统课程设计_第4页
C语言填空题考试系统课程设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳航院设计用纸沈阳航空航天大学课程设计学号2012040305015班级S201201姓名刘亚飞指导教师刘成老师2013年11月24日沈阳航空航天大学课程设计任务书系:创新学院专业:飞行器制造工程(航空维修方向)班级:S201201学号:2012040305015 题目:填空题考试系统一、课程设计时间2013年11月17日至11月23日,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:一些《大学计算机基础》填空题目及其答案,作为考试题库保存在文件file30.txt中,数据格式为:题号,问题,答案。请写程序模拟考试。程序具有如下的功能:①每次仅显示1道题,供考生回答。②5道题作完后,给出总分(每题20分)。三、课程设计要求程序质量:贯彻结构化的程序设计思想。用户界面友好,功能明确,操作方便。用户界面中的菜单至少应包括“开始考试”、“下一个题”、“开始判卷”、“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书。课程设计说明书的写法参见提供的模板。四、指导教师和学生签字指导教师:________学生签名:________成绩教师评语目录TOC\o"1-3"\h\z一、需求分析 1二、设计分析 2三、主要界面截图 4四、技术分析 7五、个人总结 8六、参考文献 8七、源程序 9一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统是一个填空题考试管理系统,其使用者被假定为学生,系统应该具有快捷,准确率高,功能齐全的特点。它能帮老师节省许多时间。1.快捷性分析考试系统管理涉及到学院的所有同学,数据量较大且不易批改,它能帮老师节省许多时间,它能够为其它方面的考试工作提供重要参考。2.准确率高分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3.主要功能分析(1)数据输入:系统自主地把考试题和答案输入其中,能够及时提示用户应该怎样使用,简单明了,容易使用。(2)考生答题:对于考生输入的答案,系统提示是否进行修改,并且系统能够及时准确地判断对错。(3)文件的具体格式题目未作具体要求,所以可采用随机文件,也可采用文本文件。不管采用哪种文件形式,文件中的数据应有固定的格式,以便于程序自动读取或人工阅读。

二、设计分析主要有2大的功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下:1、程序总体结构图(传统流程图或N-S框图)Topoc()getchar()While(1)是case’1’否“开始考试”Menu()getchar()Case(2)是否“开始答题,并且判卷评分”的函数Menu()getchar()是case(3)否“得分为0,抱歉,你还没有答题呢”Case(4)“退出系统”图1程序总体结构图2、主要功能模块框图(传统流程图或N-S框图)“答题并评分”函数exe2()For(i=1;i<6;i++)“填空题录入”printf("%d,%s\n",tes[i].num,tes[i].que);printf("\n\n请输入你的答案:"); scanf("%s",ans);是y是否需要修改?否nprintf("\n请输入你的答案:"); scanf("%s",ans);对判断对错?错得分s加上20分得分加上0分是y是否要继续答题?否n退出系统是y是否要给出分数?否n输出得分s退出系统图二exe2()N—S结构图主要界面截图图一主页面图二(1)答题,判卷页面图二(2)答题,判卷页面图二(3)答题,判卷页面图三判分界面四、技术分析1、结构体的应用定义了结构体用来描述考试题的题号、问题以及答案。具体的定义如下:structtest{ intnum; charque[60]; charans[16];};所定义的结构体主要用于定义数组。2、文件操作包括了考题的录入和考生给出答案两个方面。考题的录入操作,用于保存录入的考题及答案,也用于识别。例如考生答案的对错。下程序段用于考题的录入: FILE*fp=fopen("l:\\file30.txt","r");for(i=1;;i++){ re=fscanf(fp,"%d%s%s",&tes[i].num,tes[i].que,tes[i].ans); if(re==EOF)break; } fclose(fp);3、关于答案的判卷实现从系统中判断考生的答案对错稍微复杂一些,其实质是利用strcmp的用法。判断之后,就能给出对错了。下程序段用于判断对错的:if(strcmp(ans,tes[i].ans)==0) { printf("\n\n恭喜你,你答对了"); printf("\n\n正确答案为:%s",tes[i].ans); j=j+20; } else { printf("\n\n对不起,你答错了"); printf("\n\n正确答案为:%s",tes[i].ans); j=j+0; }五、个人总结通过上C语言课程设计这课,在刘成老师的指导下,我从中又学到了许多的知识,我对指针的概念又理解了许多,并且我又学会了strcmp的作用。这个程序对填空题考试系统有快捷,准确率高,功能齐全的特点,并且还能给选择题考试系统提供借鉴。但是,它不能再随意的添加题目,只能按程序来做题。六、参考文献(参考的书籍或互联网资源)[1]谭浩强.《C程序设计》.北京:清华大学出版社,2005[2]王萍,冯建华.《C++面向对象程序设计》.清华大学出版社[3]吴启武,刘勇,王俊峰,薛欣.《C语言课程设计案例精编》清华大学出版社七、源程序#include<stdio.h>#include<stdlib.h>//其中定义了system()函数#include<conio.h>//其中定义了getch()函数voidmenu(){ puts("\n**************************************\n"); puts("欢迎使用填空题标准化考试系统\n"); puts("**************************************\n"); puts("\n\n1.开始考试"); puts("\n2.下一个题(直接做题)"); puts("\n3.评分"); puts("\4.退出系统"); puts("\n请按功能键编号:");}structtest{ intnum; charque[60]; charans[16];};voidexe1(){ printf("\n\n^-^欢迎大家进入填空题考试"); printf("\n\n\(开始答题请按功能键'2')");}voidexe2(){ structtesttes[5];//结构体test,有5个 charans[6],p[3],q[6]; inti,j=0,re,k; FILE*fp=fopen("l:\\file30.txt","r"); for(i=1;;i++) { re=fscanf(fp,"%d%s%s",&tes[i].num,tes[i].que,tes[i].ans); if(re==EOF)break; } fclose(fp); for(i=1;i<6;i++) { system("cls"); printf("\n\n\n填空题录入\n\n\n"); printf("%d,%s\n",tes[i].num,tes[i].que); printf("\n\n请输入你的答案:"); scanf("%s",ans); printf("\n是否需要修改?回答:(y或n)"); scanf("%s",p); if(strcmp(p,"y")==0) { printf("\n请输入你的答案:"); scanf("%s",ans); } if(strcmp(ans,tes[i].ans)==0) { printf("\n\n恭喜你,你答对了"); printf("\n\n正确答案为:%s",tes[i].ans); j=j+20; } else { printf("\n\n对不起,你答错了"); printf("\n\n正确答案为:%s",tes[i].ans); j=j+0; } printf("\n\n你是否要继续答题?(回答‘y’或‘n’)"); scanf("%s",p); if(strcmp(p,"y")==0) { system("cls"); } else { exit(0);} } printf("\n\n\n\n\n^-^考试结束^-^"); printf("\n\n\n\n你是否想要评分(回答‘y’或‘n’)?"); scanf("%s",q); if(strcmp(q,"y")==0) { system("cls"); printf("\n\n\n\n\n请按功能键('3')"); scanf("%d",&k); printf("\n\n\n你的分数为:%d",j); } else exit(0);}voidex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论