计算机系在线考试系统的毕业设计说明_第1页
计算机系在线考试系统的毕业设计说明_第2页
计算机系在线考试系统的毕业设计说明_第3页
计算机系在线考试系统的毕业设计说明_第4页
计算机系在线考试系统的毕业设计说明_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

.PAGE.N科类理工科编号〔学号本科生毕业论文〔设计在线考试系统设计与实现Thedesignandrealizationonlineexaminationsystem姓名指导*****大学地址学院:基础与信息工程学院专业:计算机科学与技术年级:2001级论文〔设计提交日期:20XX5月答辩日期:20XX6月答辩委员会主任:******大学20XX6月日目录摘要2Abstract31绪论41.1开发背景41.2系统的总体概述及其研究意义41.3本考试系统的功能和特点52开发软件和开发环境72.1开发软件72.2ASP的运行环境72.3ASP环境的配置〔前提是IIS已经安装成功83系统需求分析93.1在线考试系统可行性分析93.2在线考试系统功能需求93.3在线考试系统的性能需求113.4系统的物理架构需求114在线考试系统总体设计和详细设计134.1在线考试系统使用流程134.2各功能模块设计154.2.1考生注册154.2.2考生登陆模块154.2.3考试模块164.2.4评分系统模块174.2.5单选题管理184.2.6多选题管理184.2.7填空题管理184.2.8判断题管理184.2.9试卷管理模块184.2.10成绩管理184.2.11学生管理194.2.12公告栏管理194.2.13留言薄管理194.2.14系统管理194.3系统数据库设计19实体联系图〔E-R19数据库结构205系统实现225.1系统的主要界面225.2系统主要模块代码235.3ASP连接数据库266系统测试及分析277结论29参考文献30致谢31摘要在科技迅猛发展的21世纪,网络技术已经渗透到了社会的各个领域,而且正在改变着人们工作和学习的方式。在线考试系统就是很好的一个例子。通过网上在线考试系统,考生几乎可以在任何地方参加考试,在很大程度上拓展了考试的灵活性。在交卷不到一秒钟的时间内便可知道自己的考试成绩。老师也可以通过网络随时查看考生成绩和考试相关情况,这不但解决了传统考试存在的一系列问题,也大大提高了考试效益。采用ASP+ACCESS数据库结合设计的一个在线考试系统正是实现了此用途。管理员登录后能够动态添加、删除、修改题库中的试题,并且对考生、考生成绩以及留言薄和公告栏等进行管理。考生通过注册、登录后,由系统自动分发试卷实现在线考试并得出考生成绩。除此之外,本系统还有很好的安全策略,可以应付在考试过程中出现的各种意外情况。从而保证了在线考试的公平、公证和严谨.关键词:在线考试;ASP;试卷管理;ACCESS数据库AbstractInthe21stcenturywhenscienceandtechnologyisdevelopedrapidly,thenetworktechnologyhasalreadypermeatedthrougheveryfieldofthesociety,andischangingthewaythatpeopleareworkingandstudying.Theonlineexaminationsystemisaverygoodexample.Throughtheonlineexaminationsystemnow,examineenearlycanparticipateinexaminationinanyplace,canknowhisownmarksoftheexaminationinhandinginanexaminationpaperlessthanonesecond.Theteacherscanalsolookoverexaminee'sscoresandrelevantstateofhavinganexaminationatanytimethroughthenetwork.Thishasnotonlysolvedaseriesofproblemsexistingintraditionalexamination,butalsoincreasedthebenefitgreatly.Thesystem’sfunctionsarerealizedbyadoptingASPandAccessdatabaseandcombininganonlineexaminationsystemdesigned.Theadministratorcanadd,delete,revisetheexaminationquestionintheexampooldynamically,andmanageexaminee,examinee'sscoresandcommentsnotebookandannouncementboardafterlogging-in.Theexamineesaredistributedthepaper,thenanexaminationonlinebeginautomaticallyafterregistration.Inaddition,thissystemhasverygoodsecuritystrategy,andcandealwithvariousunexpectedsituations.Keyword:onlineexam;ASP;examinationpapermanagement;Accessdatabase1绪论1.1开发背景近年来,计算机科学技术的发展迅猛异常,日新月异。网络技术、多媒体技术、面向对象的技术日趋成熟,为计算机的应用揭开了新篇章。为了适应计算机技术的发展,网上教育也以受众广、投入低、不受师资和校舍等办学基础设施等条件限制、容易开展高水平教学、教学质量相对容易保证等特点而受到教育界的广泛重视,网上教育促进了教育思想、教育方法、教育手段的更新。信息时代的未来教育,具有创造性、多样性、开发性和个性化的特点。未来教育发展层次的高低,与教育网络的建设与否息息相关。落后的教学手段与封闭的教学模式,再也不能适应未来教育的需求。在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革和更新,而网络考试则是一个很重要的发展方向。基于Web技术的网络考试系统可以借助于遍布全球的因特网进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。试卷可以根据题库中的内容按条件组成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机判卷评分,大大提高阅卷的效率;还可以直接把成绩送到数据库中,进行统计分析、排序等操作。所以现在较好的考试方法是采用网络考试,试题内容放在服务器上,考生通过姓名、准考证号码和口令进行登录,登录后进行考试,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,采用网络考试方式将是以后考试发展的趋势。本校为了适应远程教育的发展,也开始进行计算机实用基础课程的建设,也就是实现网上教学。网上考试是这个课程建设其中的一部分,本文将重点介绍网上考试系统。1.2系统的总体概述及其研究意义网络考试系统的实现技术有多种,可以采用传统的架构,即试题内容放在远程的服务器上,在考试机上安装考试应用程序和数据库客户机配置,因此每次考试时要对机器进行安装、配置,考务工作比较烦琐,而且考试程序放在客户机上,安全性也受到一定影响,因此本文讨论的网络考试系统采用Web技术实现。Web技术采用了三层体系结构:用户界面层/事务层/数据库层,因此Web结构有着更好的安全性,在用户机上不需要安装任何的应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数据库可以是同一台机器〔如果条件允许,还是应该把这两层分开在不同的计算机上。本文讨论的系统中,先有超级用户登陆,他首先录入教师的信息。由于库里存在了教师的编号、密码等信息,教师可以进入此系统进行考试前的准备,即向数据库中录入各类型的试题建立题库并进行维护。录入完毕后,可以按照一定的难度和要求组出多套符合条件的试卷,放入库内保存以便于考试时学生随机抽取到一套试卷。这些准备工作就绪后,学生可以参加考试,首先学生要注册,得到自己的用户名和密码〔如果是一个班级同时参加考试,为了形式统一,也可以由教师在考前按照学号将考生信息提前输入到学生管理表中,学生考试的时候便可直接登陆然后由系统进行身份验证,验证通过后,系统随机调出一套完整的试卷,此时系统开始计时,在此同时学生开始答卷,在规定的时间内答完试卷提交,否则系统自动交卷,交卷后进入判卷评分模块,进行试卷评判,最后得出该生的卷面得分。分数而增强保密性。其次,迅速准确,公平公正。计算机考试系统可自动评分,迅速准确,无任何人为因素,从而避免人为误差及人情分等问题,保证考试的公平公正。并且考生可以马上就知道分数,避免三番两次得去找老师问分数。且老师可以不用手工批卷,省时省力。再次,便于组织大规模的异地实时考试。以网络技术为支撑的现代计算机应用,已经具备较大的规模并相当普及,利用计算机网络组织实施大规模的异地实时考试已成为现代考试中的一种重要的方式,计算机网上考试系统是其中最关键的一环。1.3本考试系统的功能和特点本考试系统是由ASP+ACCESS数据库开发的。主要具有如下功能:通过后台管理程序可以动态添加,删除,和修改题库中的题目〔题目类型包括单项选择题,多项选择题,填空题和判断题;从题库中随机选题组成试卷〔试卷数和题数以及考试时间由出题老师指定;考生注册和登陆;当有考生登陆时,随机分配一套试卷给考生,并记录此试卷编号;当考生答题完毕交卷后,自动给出得分,正误信息或者解答。本考试系统不仅美观大方,功能齐全,而且还有很好的安全策略:考生所做的试题均由系统随机生成;如果考生到考试规定时间未交卷系统会自动提交;已经交卷的考生不允许再次作答;如果考生在答题过程中因人为或者意外事故〔死机,断电,网络中断等而导致的中途退出考试,当再次登陆时,系统会将刚才的试题重新发送给考生,并从考试规定时间中减去已经用去的作答时间作为剩余答题时间,这样既可以避免再次登陆所造成的试题更换给考生带来不便,又可以防止人为的更换试卷,可谓一举两得。这也是本考试系统最具特色的地方。考试流程如下:管理员添加试题到题库系统自动生成试卷,通过后台管理程序的"试卷管理"页面,管理员指定所要生成的试卷数,每套试卷单选、多选、填空、判断题的题数和分值,以及考试规定时间。第一次参加考试的考生需要先注册,并牢记用户名和密码。已注册过的考生登录后参加考试,按照要求作答,交卷。系统会自动把用户提交的答案和标准答案比较,判断正误,并给出得分和相关提示信息,同时把考生成绩写入数据库,供老师查看。分析已有的考试系统,其设计思想如下:单选题、多选题、判断提、填空题分别放在一个表当中,四个表可以看做是题库,存放着所有试题信息。考生考试时,由考试系统随机从题库里抽题给考生,只要考生登陆成功,由系统将试题发送给考生,就算已经参加过考试,禁止再次登陆考试系统,这样做似乎很合理,但在实际应用中却会遇到这样的尴尬局面:考生在答题过程中突然出现死机、掉电、网络中断或其它意外事故,中途退出考试。此时虽然考生已经答题了,但是成绩为0,考生又不能重新登陆,这在许多重要考试中是不允许的。如国家计算机等级考试。很自然会想到以下解决方法:允许考生重复登陆。但马上会带来两个新的问题:一、如果遇到以上意外情况考生可以再次登陆,但题目已经更换,刚才考生作答的题目无效,考生只能重新考试答新的试题,如果刚开始考试还可以容忍,但是快到交卷的时候出现这种情况就不能接受了。二、如果可以无限制的登陆,如果考生有一两道题不会做,就可以干脆不做,退出以后重新登陆,系统会分配新的题目给他,直到避开不会做的题目。正样就使考试失去了公正性。上述矛盾又有新的解决方法:限制登陆次数,例如只允许登陆三次,因为意外故障有一个概率问题,不会在一段时间内连续发生多次,但还是没有从根本上解决问题,一旦有意外故障发生,试题还是要更换。本考试系统从根本上解决了上述难题:允许考生多次登陆,但一旦交卷以后就不能再次提交。第一次登陆时由考试系统随机分配试卷给考生,但再次登陆时题目不变。这是对以往的在线考试系统的一个重大改进。为了能够实现上述目标,本考试系统设计思想如下:发给考生的试题并不是直接从题库中直接取出的,而是通过另外一个表"试卷管理表"间接转发的。考试先生成试卷,并将试卷存放到"试卷管理表"中。试卷中的题目是随机从题库中抽出来的。试卷管理表其实是指明哪套试卷包括哪些试题。其中包括完整的试题信息〔题干,选项,答案和题目所属的试卷编号。由系统从题库中随机选题并生成N〔由管理员指定,编号依次为1到N,并存放于"试卷管理表"中,"student"表中记录考生相关信息,包括所选择的试卷编号,默认为0;当考生登陆是,先判断试卷编号,如果为0,说明是第一次参加本轮考试,随机分配一套试卷给考生,并记录此试卷编号。如果不为0,则必为1到N的一个自然数,假定为X,说明考生已经参加过本轮考试,选择的是第X套试卷,但未提交;则系统再将"试卷管理表"中第X套试卷发送给此考生。虽然网上考试系统有省时,高效等诸多优点,但毕竟还有不尽人意的地方,比如说:在线考试系统只能实现客观题目〔例如选择,填空,判断的自动评分,而对于主观题目如:作文或者问答题还不能做到网上考试、评分。所以还有待于进一步的改进和完善。为了弥补以上不足,我在考试系统中加入了留言薄,用于师生之间的进一步交流或者其他的信息反馈。百尺竿头,更进一步,为了能把考试系统做的竟善竟美,我会继续努力的。2开发软件和开发环境我这次开发程序所使用的开发工具是Microsoft公司的ASP,数据库管理软件采用的是Microsoft公司的ACCESS2000。2.1开发软件ACTIVESERVERPAGE<ASP>是微软公司开发的服务器端的脚本编写环境,可以用它来创建动态WEB页或生成功能强大的WEB应用程序。使用ASP可以组合HTML页,脚本命令和ACTIVEX组件来创建动态交互的WEB页和基于WEB的应用程序。严格说来ASP并不是一种语言,它只是提供一个环境来运行SCRIPT,它所用的语言仍然是VBSCRIPT和JAVASCRIPT〔或者MicrosoftJSCRIPT,也可以是他们两者的组合。ASP没有固定的开发工具,任何一种文本编译器都可以胜任ASP脚本的编辑工作,当然不同的开发工具开发调试的效率不一样的。使用VBScript、JavaScript等简单易懂的脚本程序,结合HTML代码,即可快速地创建网站的应用程序。无须Compile编译,容易编写,可在服务器端直接执行。使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。与浏览器无关〔BrowserIndependence,用户端只要使用可执行HTML代码的浏览器,即可浏览ASP所设计的网页内容。ASP能与任何ActiveXScripting语言相兼容。除了可使用VBScript或JavaScript语言来设计外,还通过Plug-in的方式,使用由第三方所提供的其他脚本语言,譬如Perl、Tcl等。脚本引擎是处理脚本程序的COM〔ComponentObjectModel物件。ASP的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。可使用服务器端的脚本来产生客户端的脚本。ActiveXServerComponents〔ActiveX服务器元件具有无限可扩充性。可以使用VisualBasic、Java、VisualC++、COBOL等编程语言来编写所需要的ActiveX服务器元件。2.2ASP的运行环境Microsoft公司推出的支持ASP的Web服务器有以下几个:Windows2000+IIS5·0〔InternetInformationServer即Internet信息服务管理器5·0WindowsXP+IIS5·0〔InternetInformationServer即Internet信息服务管理器5·0Windows98+PWS4·0〔PersonalWebServer4·0即个人Web服务管理器WindowsNT4·0+WindowsNTOptionPack目前的大型的站点大多数使用IIS作为服务器,而PWS是为一般的PC用户开发的。安装服务器其中之一,成功之后就可运行ASP程序。ASP文件的后缀名为.asp形式。访问一个ASP文件时不能用实际的物理路径,而只能用虚拟路径。系统默认的WWW主目录是C:\Inetpub\wwwroot,如果把任意一个ASP文件〔如temp.asp复制到该文件夹下就可以通过如下办法访问该文件。◆://localhost/temp.asp◆◆://您的计算机的名字/temp.asp◆://您的计算机的IP地址/temp.asp注意:前三种方法指的是在自己的计算机上访问自己的ASP文件,第四种方法指的是别人通过INTERNET访问你的ASP文件,前提是你的计算机必须连入INTERNET且别人知道你的IP地址。2.3ASP环境的配置〔前提是IIS已经安装成功IIS配置:〔1首先进入[控制面板]→[管理工具]→[Internet服务管理器]在Web服务器提供服务之前,首先要启动服务,可以通过工具栏上面的按钮来实现,也可以通过右击默认Web站点弹出菜单实现。〔2设定虚拟路径:右击默认Web站点在快捷菜单中选择新建→虚拟目录。设置以后,可以通过虚拟路径别名来访问里面的文件。虚拟路径设置只是网站管理的开始,要对网站进行更加详细的设置,需要通过"属性"菜单项来实现。如图1图1IIS配置图在属性页中不需要过多的设置,通常采用默认值。其中最重要的一个选项是"TCP/IP端口"选项,用户可以在其中设定其他的值。通常默认的端口80。3系统需求分析首先,因为考试是面向特定的对象的,所以应试者进入系统应该进行身份认证。进入考试系统后,应试者进行的是在线考试,鉴于考试环境一般为机房,应试者之间的距离很近,为保证试卷的安全,防止考生作弊,每个应试者得到的试卷的题型和题量都是相同的,但试题内容并不相同。在线考试基于网络环境,能满足上述要求的试卷应该从服务器的数据库随机抽取试题后动态生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考试者交卷或强制停止考试。应试者提交试卷后,由计算机自动判卷,得出成绩。通过考试系统,管理员能够随时随地进行试题的添加、删除、修改,进行考生、考试成绩和系统等的管理。3.1在线考试系统可行性分析可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。<1>经济可行性:主要是对项目的经济效益进行评价,本系统作为一个毕业设计,无需开发经费,对于我系在经济上是可以接受的,并且本系统实施后可以显著提高考试效率,有助于学院完全实现网络化管理。所以本系统在经济上是可行的。<2>技术上的可行性:技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该管理系统采用了当前新兴的Client/Server模式进行开发。结合了Internet/Intranet技术。数据库服务器选用微软公司的ACCESS数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。3.2在线考试系统功能需求整个系统的用户主要有二类:考生和管理员。这二类用户的相关信息都被存储在数据服务器中,称之为合法用户。他们具有不同等级的权限,进入考试系统时,都必须经过系统的身份认证,只有其中的一种合法用户,才能进入系统,并对规定系统资源进行访问。以下是二类用户登录系统的用例图。图2考生登录用例图图3管理员登录用例图"在线考试系统"首先得体现出它是由计算机来代替人工完成考试中需要完成的一系列任务,达到考试智能化。必须能够自动生成试题,让考生在计算机上答题,"纸张化考试"中,每次考试教师均需花时间准备试卷。在"在线考试系统"中,试题可以在已建立的试题题库中随机自动生成减少人为因素的影响。必须能够自动批改每张试卷。"纸张化考试"后教师的工作量大大增加,批改试卷,记录出错率较高的题目,统计学生成绩,最后写出考试小结报告。既然学生可以在计算机上答题,那计算机也就可以迅速地批改试卷。计算机统计出错率较高的题目和在基本问题上出错的考生记录,及时在程序中统计出考试单,大大提高教师分析试卷的效率。"在线考试系统"还要实现的一个重要功能是:让考生完全是自主的,从考试的申请到最后正式考试的结束完全是一个自主的过程,从根本上摆脱了传统考试模式的束缚。除此之外还能够智能控制考试的时间,也可以随时向广大考生开放,做到随到随考的功能,完全摆脱时间的束缚,这也是开放性要实现的一项重要功能。在线考试系统的主要目标是实现在线考试,围绕这一中心任务,必须提供对在线考试的全面支持和其他考务辅助功能。包括自动出卷、自动评卷、成绩查询、用户信息管理、试题库管理、成绩管理等。3.3在线考试系统的性能需求在线考试系统是基于网络的、可远程管理和操作方便的考试系统,为了使学生能够正常考试,既达到了传统考试的目的,又利用了网络的优势解决了传统考试不能实现的目标,为此,系统设计必须满足以下的要求:具有友好、简洁的界面,安全性要高,稳定性要强。〔1可靠性是指系统使用的软、硬件可靠性程度,是系统在运行中不发生或极少发生故障,在偶然事故及操作失误时,系统应具有较强自恢复能力,而不应造成系统死锁或信息丢失。〔2安全性要在非常情况下保证数据的丢失减少到最低限度,在考生遇到特殊情况中断考试时,可以恢复考试。因此,在线考试系统应充分利用数据库的维护工具,便于数据备份、恢复,从而提高系统的安全性。〔3系统的简单易用性考试系统开发时要本着"简单易用"的原则。对于考生来说,只要掌握基本的计算机操作,便可完成整个考试过程,即使是没有操作过计算机的人来说,只需要进行简单的操作培训就可以达到熟练,使之能顺利的完成考试。3.4系统的物理架构需求基于B/S的网络考试模式,我们可设计出本系统的物理模型。一方面是管理员在一端通过局域网或Internet和服务器进行连接,另一方面是考生分别从不同的地方,也是通过局域网或Internet与考试服务器连接。见图4所示。后台数据库系统服务器用户后台数据库系统服务器用户考试系统局域网或Internet考试系统局域网或Internet图4系统的网络原理图4在线考试系统总体设计和详细设计在构造这个系统之前应该对此系统有个总体的思考,从程序实现的功能,程序目录框架结构,到编程当中可能遇到的问题以及该程序以后的扩展性有个总体的把握。在线考试在线考试后台管理进入考场考生注册考生登录考试试卷管理成绩管理考生管理公告栏管理留言簿管理系统管理题库管理图5系统模块4.1在线考试系统使用流程〔1使用流程图在线考试系统分发试卷开始考试有无异常考试结束得分数结束考试在线考试系统分发试卷开始考试有无异常考试结束得分数结束考试重新开始YN〔2管理使用图管理员登录管理员登录试题管理定义试卷结构生成试卷退出管理添加试题修改试题删除试题输入题目答案修改题目答案提交题库提交题库更新题库图7在线考试系统管理使用图为了更好更合理的开发这个系统,进行模块化设计是比较合适的。模块之间可以独立设计,以便设计可以同时进行,缩短开发时间。最后模块可进行独立测试,最终构成一个完整的系统。经过前期的分析,我将本系统分为以下几大模块:考生登录模块、考试模块、评分系统模块、试题管理模块、试题选择模块、成绩管理模块。4.2各功能模块设计4.2.1考生注册考生在考试前需先注册,此模块的作用是实现考生信息的输入,包括考生姓名、密码、性别、班级、学号等内容。考生登陆模块考生登陆模块主要有两种功能:一、当有考生登陆时,判断用户名和口令是否合法,如果不合法,则不允许进入考试,并给出提示"请先注册!"二、如果合法,再次判断是否第一次登陆,判断方法如下:学生管理表〔表格完整结构见第四章数据库设计中设"试卷编号"字段,类型为整形,默认值为0,用它来表示系统将试卷管理表中的第几套试卷分配给考生。如果"试卷编号"为0,说明是第一次登陆,系统还没有为其分配试卷。则考试系统随机分配一套试卷给考生,并将此试卷的编号写入学生管理表此考生对应的"试卷编号"字段中,然后转入考试模块;随机分配试卷的算法如下:从试卷管理表中取出最大的试卷编号,假定为Max;取一个随机数R,此随机数可由随机函数自动生成,然后强制转换成整数。还可以采用另一种简单有效的办法,就是取出此刻系统时间的秒,其值必为0-59中的一个自然数,且是随机的;试卷编号I=[R%Max]+1。则I必为1到Max之间的一个随机的自然数。如果判断试卷编号不为0,说明已经分配过试卷了,直接转入考试管理模块当中。考生登陆模块的工作流程如图8:用户名用户名密码合法用户考生登录结束退出NY图8考生登录流程考试模块考试模块有以下两种功能:根据考生的用户名和口令〔登陆时由用户输入,然后通过登陆页面将参数传递到考试模块,也可将用户名和密码存放到session变量中供考试模块调用,从学生管理表中找出对应的试卷编号,再从试卷管理表中找出此试卷编号对应的所有题目发送到客户端。这样由登陆模块和考试模块相互配合,便可实现以下功能:考生第一次登陆,随机分配一套试卷给考生,一旦分配,以后再次登陆,考试系统仍将第一次分配的试卷给考生。自动提交试卷功能,和一般的考试系统相同,本系统也有计时和自动提交试卷的功能,但于别的考试系统不同的是:一般的考试系统的计时功能完全由代码实现,只要重新执行这段代码就会重新计时。但是本考试系统允许考生重新登陆,这就相当于又执行一次代码,所以重新登陆后又重新开始计时,那么这个计时系统就没有任何意义了。考虑到这样一种情况:假如考试时间为120分钟,考生在99分钟的时候刷新页面或者退出重新登陆,相当于又执行了一次计时代码,那么系统分配的试卷仍然是原来的试卷,而考试时间却变为120分钟,所以本考试系统的计时功能时借助于数据库来设计的,设计方法如下:在考生管理表中设"剩余时间"字段,默认值为考试规定时间〔单位为分钟,然后再另外设一个程序,用于更新数据库中的剩余时间字段的值,此程序先判断学生管理表中的"试卷编号"字段,如果不为0,说明已经分配又试卷,再判断"成绩"字段,如果为-1,说明未提交试卷。以上两点同时成立,便可确定此考生正在参加考试,然后执行如下操作:凡是学生管理表中同时符合以上两个条件的考生,每隔60秒剩余时间减1,同时判断剩余时间是否等于0,等于0则自动提交。进入考试进入考试合法用户读取题目试卷题目编号库生成试卷考生答题统计成绩结束考试题库退出NY取题读取题目内容图9考试流程4.2.4评分系统模块评分系统主要有以下两大功能:〔1自动评分并将考试成绩写入学生管理表当中的"成绩"字段。评分系统的实现过程如下:从分数统计表中读取如下数据:单选题每题分值〔此处假定为a,多选题每题分值<此处假定为b>,判断题每题分值<此处假定为c>,填空题每题分值〔此处假定为d;因为试卷是按排列顺序输出的,在本程序中用的是升序排列。为了说明问题,不妨做以下假设:考生所做试题在试卷管理表中的编号为1到N。先接受ID号为1的试卷考生提交的答案,赋值给字符串变量sel,然后从数据库中读取ID号为1的试题的标准答案,赋值给字符串变量anl.然后比较sel是否等于anl.如果等于说明正确,则将分值加入到总分中。然后进入下一次循环,判断ID号为2的试题,直到为N。〔2防止考生重复提交试卷这是评分系统的另外一个重要功能,本考试系统虽然允许多次登陆考试,但一旦考生按"交卷"按扭之后就不能再次交卷。考生按"交卷"按扭之后程序运行到下一个模块,评分模块,此模块在评分之前先做一个判断,如果学生管理表中此考生对应的成绩为-1,则进入评分程序,如果不为-1,说明已经交卷了,系统给出提示"您已经考过了!"的同时,又返回上一个页面。这个程序其实是介于考试模块和评分模块之间的一个判断程序。在这里将其归入到评分模块当中。4.2.5单选题管理单选题管理模块主要实现以下功能:添加单选试题到题库中,编辑和删除题库中以有的单选试题。4.2.6多选题管理多选题管理模块主要实现以下功能:添加多选试题到题库中,编辑和删除题库中以有的多选试题。4.2.7填空题管理填空题管理模块主要实现以下功能:添加填空题到题库中,编辑和删除题库中以有的填空题。4.2.8判断题管理判断题管理模块主要实现以下功能:添加判断题到题库中,编辑和删除题库中以有的判断题。4.2.9试卷管理模块试卷管理模块的功能是从题库中随机选取试题组成多套试卷,由管理员通过"试卷管理"页面指定要生成的试卷数,每套试卷单项选择题,多项选择题,填空题和判断题各自的题数和分数,以及考试规定时间,然后把试题信息存放到一个临时的数据库表"试卷管理表"当中,其中记录试卷编号和试题信息。4.2.10成绩管理成绩管理模块的主要功能是让管理员查看所有考生的考试成绩。4.2.11学生管理学生管理模块的功能如下:管理员可以通过它查看所有考生的注册信息,包括姓名、性别、班级、学号、试卷编号等等,还提供删除考生的权限。4.2.12公告栏管理公告栏管理模块用于管理员向考生公布信息,并且可以编辑,删除以有的公告信息。公告信息在考试系统首页显示。4.2.13留言薄管理留言薄管理模块主要用于考生的信息反馈,考生之间交流心得体会,管理员可以通过"留言薄管理"页面删除考生留言。4.2.14系统管理系统管理模块用于管理员修改用户名和口令。不定时的更改用户名和口令有利于系统安全。4.3系统数据库设计网上考试系统是一个应用系统,所有的考生信息和试题信息都是保存在数据库中,在应用系统的开发过程中,数据库的结构设计是一个非常重要的问题。我们这里所说的数据库设计是指数据库中各个表结构的设计,包括信息保存在哪些表格中,各个表格的结构如何及各个表之间的关系。数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一直性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。但这些设计方法和设计者的工作经验有很大关系。因此要从基本上解决所有数据库结构设计的问题,就需要多进行实践,在实践中积累经验和教训。实体联系图〔E-R此系统主要包括以下几个主要实体:管理员〔姓名、性别、密码,用户〔姓名、性别、密码、班号、学号,题库〔单选题量、多选题量、填空题量、判断题量,试卷〔试卷编号、题干、选项。管理员管理员用户试卷题库管理管理生成解答1N11111N密码性别姓名姓名性别密码班号学号选项题干试卷编号判断题量填空题量多选题量单选题量图10E-R图4.3.2数据库结构在进行了对试题结构的分析后,我在这个系统中设计的数据项和数据结构如下:表1student表〔学生管理表字段名称字段类型字段大小说明姓名文本50考生姓名密码文本50考生密码性别文本50考生性别班号文本50考生班号学号文本50考生学号注册日期时间/日期类型考生注册日期试卷ID数字长整型考生所选试卷编号,默认值为0剩余时间数字长整型考试剩余时间,默认值为考试规定时间分数数字长整型考生分数,默认值为-1表2分数统计表〔分值统计字段名称字段类型字段大小说明单选题题数数字长整型单选题题数单选题每题分数数字长整型单选题每题分数多选题题数数字长整型多选题题数多选题每题分数数字长整型多选题每题分数填空题题数数字长整型填空题题数填空题每题分数数字长整型判断题题数判断题题数数字长整型判断题题数判断题每题分数数字长整型判断题每题分数设置日期时间/日期设置日期考试剩余时间数字长整型考试剩余时间,以分钟为单位。表3试卷管理表字段名称字段类型字段大小说明试卷编号数字长整型试卷编号题干文本255四种类型试题的题干选项1文本255选项A,如果为判断或者填空,此字段为空选项2文本255选项B,如果为判断或者填空,此字段为空选项3文本255选项C,如果为判断或者填空,此字段为空选项4文本255选项D,如果为判断或者填空,此字段为空正确答案文本255四种类型试题的标准答案题型文本50包括单选,多选,填空,判断四种;5系统实现在进行了整体详细的设计以后,就开始进行编码工作。也就是设计文件和把他们有机地组织在一起实现所有功能。5.1系统的主要界面在线考试系统本着友好、简洁的界面,为考生提供一个简单易用的考试平台,考生只要掌握基本的计算机操作就可完成考试.下面将对系统前台界面和后台管理界面做简单的介绍.〔1系统前台界面:此界面是系统必不可少的,它是系统与用户对话的直接窗口.用户通过用户名和密码登录后进行考试。如图11所示.图11前台界面〔2系统后台管理界面:此界面是考试系统最重要、功能最强大的主要界面.它承载着系统题库、试卷、成绩、用户等的管理,管理员通过此界面对其进行一系列有效的管理工作.如图12所示.图12后台管理界面5.2系统主要模块代码在线考试系统包含两个主要的功能模块,即考试模块和评分系统模块.下面是实现这两个主要模块的代码:〔1考试模块<CENTER> <H1><FONTCOLOR=#000000face="华文行楷">在线考试系统</FONT></H1> </CENTER> <formname="fm0"onSubmit="0"><fontsize="-1"><I><FONTCOLOR="#888888"></FONT></I></font><br><INPUTtype="text"name="time_spent"size=7onFocus="this.blur<>"><%qq="select*from分数统计orderbyid" conn=Server.CreateObject<"ADODB.Connection">; conn.Open<"driver={MicrosoftAccessDriver<*.mdb>};dbq="+Server.MapPath<"data/test_admin.mdb">>;rss=conn.execute<qq>cs=conn.execute<"select*fromstudentwhere姓名='"+student+"'and密码='"+pwd+"'">%><fontcolor="red"size="2"face="幼圆"><请注意按时交卷:考试时间总计<%=cs<"剩余时间">%>分钟</font><fontcolor="#FF0000"size="2"face="幼圆">,超过考试规定时间系统会自动提交></font> </form> <tableborder=1bordercolor="#CBEFDC"CELLPADDING=0CELLSPACING=0><tr><tdwidth=800><FORMAction="Score.asp"Method="GET"> <INPUTType="Hidden"Name="student"Value=<%=student%>><INPUTType="Hidden"Name="pwd"Value=<%=pwd%>><% SQL="Select*From试卷管理表where题型='单选'and试卷ID=<select试卷IDfromstudentwhere姓名='"+student+"'and密码='"+pwd+"'>OrderByid"; conn=Server.CreateObject<"ADODB.Connection">; conn.Open<"driver={MicrosoftAccessDriver<*.mdb>};dbq="+Server.MapPath<"data/test_admin.mdb">>; rs=conn.Execute<SQL>;%><INPUTType="Hidden"Name="id"Value=<%=rs<"id">%>><p><font>一、单项选择题目:</font></p><BR><%while<!rs.EOF>{r=r+1;Response.Write<r+"、"+Server.HTMLEncode<rs<"题干">>+"<br>"+"<br>"> Response.Write<"<div>">; { Response.Write<"<INPUTType=RadioName=No"+rs<"id">+"Value=A>"+"A:"+Server.HTMLEncode<rs<"选项1">>+"<br>">; }{Response.Write<"<INPUTType=RadioName=No"+rs<"id">+"Value=B>"+"B:"+Server.HTMLEncode<rs<"选项2">>+"<br>">; }{Response.Write<"<INPUTType=RadioName=No"+rs<"id">+"Value=C>"+"C:"+Server.HTMLEncode<rs<"选项3">>+"<br>">; }{Response.Write<"<INPUTType=RadioName=No"+rs<"id">+"Value=D>"+"D:"+Server.HTMLEncode<rs<"选项4">>+"  "+"<BR>"+"<br>">; }Response.Write<"</div>">; rs.MoveNext<>; } %><%〔2评分系统模块</table> </center></H2> <p><fontsize=4>一、单选题:</font></p><br><% Score=0;L=0;K=0;M=0; while<!rs1.EOF> { r=r+1; if<Request<"No"+rs1<"id">>.Count>0> {Response.Write<r+"、"+rs1<"题干">>; Sel=Request<"No"+rs1<"id">>+""; Ans=rs1<"正确答案">; if<Ans==Sel> {L=L+1;score=score+rss<"单选题每题分数">Response.Write<"<FONTCOLOR=green>"+"√"+"</FONT>"+"</B>"+"<br>">;Response.Write<"<fontcolor=green>"+"正确答案:"+Ans+"</font>"+"  ">;Response.Write<"<fontcolor=green>"+"提交答案:"+Sel+"</font>"+"<br>">;}else {K=K+1;Response.Write<"<FONTCOLOR=RED>"+"╳"+"</FONT>"+"</B>"+"<br>">;Response.Write<"<fontcolor=red>"+"正确答案:"+Ans+"</font>"+"  ">;Response.Write<"<fontcolor=red>"+"提交答案:"+Sel+"</font>"+"<br>">; } } rs1.MoveNext<>; }%>单选题小计得分:<%=Score%><BR>本次考试作答题目数为:<%=L+K%><BR>作答真确的题目数为:<%=L%><BR>作答错误的题目数为:<%=K%><BR>正确率为:<%=L/<L+K>*100%>%<br>〔3成绩管理模块:<tr><tdalign="center"colspan="3"><fontcolor=red><%=rs<"姓名">%></font>各期考试统计<p>学生基本资料==>性别:<%=rs<"性别">%>班号:<%=rs<"班号">%>__<%=rs<"学号">%></p><p>〔参加过<fontcolor=red><%=ci%></font>期考试,最高<fontcolor=red><%=fs%></font>分,最低<fontcolor=red><%=lf%></font>分,<fontcolor=red><%=bjg%></font>次不及格</td></tr><tr><tdalign="center"bgcolor="#CBEFDC">期数</td><tdalign="center"bgcolor="#CBEFDC">分数</td><tdalign="center"bgcolor="#CBEFDC">补考成绩</td></tr><%printcode="<html><head><title>网上考试系统</title><linkrel=stylesheettype=text/csshref='../css.css'></head>"printcode=printcode&"<bodytopmargin=0leftmargin=0><p><palign=center><fontclass=test1>我的成绩统计管理</font></p>"printcode=printcode&"<divalign=center><center><tableborder=1cellpadding=5cellspacing=0style='border-collapse:collapse'bordercolor=#111111width=400>"printcode=printcode&"<tr><tdalign=centercolspan=3><fontcolor=red>"&rs<"姓名">&"</font>各期考试统计</p>学生基本资料==>性别:"&rs<"性别">&"班号:"&rs<"班号">&"__"&rs<"学号">&"</p>"printcode=printcode&"<p>〔参加过"&ci&"期考试:"printcode=printcode&"最低"&lf&"分:最高"&fs&"分,"&bjg&"次不及格</td>" printcode=printcode&"</tr><tr><tdalign=centerbgcolor=#CBEFDC>期数</td><tdalign=centerbgcolor=#CBEFDC>分数</td><tdalign=centerbgcolor=#CBEFDC>补考成绩</td></tr>" whilenotrs1.eofsqls="select*fromreportwhere学生id="&request<"id">&"andid="&rs1<"id">setrss=conn.execute<sqls>ifrss.eofthenfen="未参加"bfen="未参加"elseifrss<"分数">>=60thenfen="<fontcolor=#008000>"&rss<"分数">&"分</font>"elsefen="<fontcolor=red>"&rss<"分数">&"分</font>"endififrss<"是否补考">=truethenifisnull<trim<rss<"补考成绩">>>ortrim<rss<"补考成绩">>=""thenbfen="无"elseifrss<"补考成绩">>=60thenbfen="<fontcolor=#008000>"&rss<"补考成绩">&"分</font>"elsebfen="<fontcolor=red>"&rss<"补考成绩">&"分</font>"endifendifelsebfen="未参加"endifendif%><tr>5.3ASP连接数据库无论哪一种编程语言或编程工具,都必须先建立与数据库的联系才能访问数据库中的数据。ASP也不例外,要让ASP能够访问数据库,最重要的环节就是设置访问数据库的接口。它可以分为DSN和非DSN两种。DSN又叫ODBC数据源。ODBC的中文名字是:"开放数据库连接"。在windows操作系统中,ODBC的连接主要是通过"ODBC数据源管理器"来实现的。ODBC的数据源有三种:〔1用户DSN:只能由配置该DSN的用户使用或只能在当前计算机上使用。〔2系统DSN:可以被任何使用用户计算机的人使用。〔3文件DSN:除了能够被用户在其他计算机上使用之外,与系统DSN相同。因为非DSN访问数据库具有可移植性好,运行速度快等优点,所以本系统中的所有程序采用的都是非DSN访问数据库。连接微软公司的ACCESS数据库的程序如下:<%setconn=server.createObject<"ADODB.Connection">conn.open<"Driver={MicrosotfAccessDriver<*.mdb>};PWD=111;DBQ="&_server.Mappath<"../student.mdb">>Conn.close‘关闭conn的连接Setconn=nothing‘从内存中释放conn对象

温馨提示

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

评论

0/150

提交评论