在线考试系统的设计与实现毕业论文

在线考试系统的设计与实现毕业论文

ID:957607

大小:1.00 MB

页数:51页

时间:2017-10-20

上传者:U-1863
在线考试系统的设计与实现毕业论文_第1页
在线考试系统的设计与实现毕业论文_第2页
在线考试系统的设计与实现毕业论文_第3页
在线考试系统的设计与实现毕业论文_第4页
在线考试系统的设计与实现毕业论文_第5页
资源描述:

《在线考试系统的设计与实现毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

武汉工业学院毕业设计(论文)设计题目:在线考试系统的设计与实现姓  名:     张守龙    学  号:070505202院  系:计算机与信息工程系专  业:软件工程指导教师:周建芳老师2011年6月2日51 目录目录2摘要4ABSTRACT4第一章绪论61.1研究背景61.2研究问题的提出61.2.1研究内容71.2.2研究目标71.3研究意义71.4研究思路与研究方法81.5论文框架10第二章开发环境介绍102.1开发环境配置102.2Web概述112.3ASP技术122.5.3SQLServer介绍132.5.4Ajax介绍142.4开发环境及技术的选择162.5小结17第三章系统设计173.1系统需求分析173.1.1系统可行性分析173.1.2系统功能需求分析183.2系统总体设计193.2.1系统的体系结构193.2.2系统的用例图2151 3.3系统详细设计233.3.1后台总体架构介绍233.3.2身份验证模块243.3.3组卷模块253.4数据库设计253.4.1创建数据库253.4.2数据表结构263.5小结30第四章详细设计314.1界面制作324.2程序编码384.3系统测试424.3.1测试环境424.3.2测试过程424.3.3测试结果434.3.4调试及回归测试434.4系统评估454.5小结45第五章总结455.1研究内容的总结455.2主要创新点465.3存在的不足点及今后的研究方向46致谢47参考文献4751 基于Web的在线考试系统的设计与开发(后台管理)摘要作为对传统考试方式的改革,网络化考试是近年来研究的一个热点课题。在线考试是网络化考试系统的重要组成部分,本论文的主要工作是设计并实现一个在线考试系统。利用在线考试系统,试卷动态生成,使用计算机自动判卷,大大提高阅卷效率。在服务器端,系统平台采用WindowsXP,数据库平台采用SQLServer2000,采用ASP技术实现用户界面层设计。采用管理员、教师、考生三级授权方式,提高系统安全性。关键词:在线考试,题库,试卷,动态生成THEDESIGNANDDEVELOPMENTOFONLINEEXAMINATIONSYSTEMBASEWEB(BACKGROUNDMANAGEMENT)ABSTRACTAsthereformoftraditionaltest,theexaminationsysteminnetworkisahotpointstudyinrecentyearstopic.Theonlineexaminationsystemistheimportantpartoftheexaminesysteminnetwork.Themainworkofthisthesisisdesignofanon-lineexaminationsystem.Withonlineexaminationsystem,testpapercanbeproduceddynamicallyandcanbecorrectedbycomputerefficiently.TheoperatingsysteminservermachineisWindowsXP.SQLserver2000isusedasdatabasedevelopmentplatform.ASPtechnologyisadoptedtodesignuserinterface.Thesystemprovidesgoodsecurityinthefashionofthree-tierauthorizedsystemincludingadministrator,teacherandstudent.KEYWORDS:onlineexamination,questiondatabase,testpapers,produceddynamically51 第一章绪论1.1研究背景随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,也有人称之为数字化时代。在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学习,同时希望能够得到科学的评价;老师希望有效改进现有的考试模式,提高考试的效率;教育机构也希望给网上的学生提供更全面灵活的服务,同时希望全面准确地对学生进行跟踪和评价。在线考试系统正式迎合这一市场需求而开发的,它旨在探索一种以互联网为基础的考试模式。通过这种新的模式,为学校创造一种新的考试环境,使考务管理突破时空限制,提高考试工作效率和标准化水平,使学校管理者、教师和学生可以随时、随地通过网络完成考试[2]。1.2研究问题的提出随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。现在,计算机硬件技术的发展已经达到了相当高的水平。但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户[3]。51 1.2.1研究内容让系统在Windows98/2000/XP平台环境下运行稳定,对软、硬件要求低,运行速度快、操作简单、界面友好、易于管理和维护;而且具有较强的针对性、实用性和可操作性,初步解决了校园理论考核层次广、次数多、内容全,以及保密性和公平性差、评卷困难等问题。并对其详细的设计方案、实现技术和运行情况做了分析和研究,最后对未来的工作做了研究与探讨。论文主要围绕系统设计开展研究,保证了考核的公平、公正、公开,有力地促进了理论学习的全面开展。本文重点研究了以下几个方面:(1)系统的体系结构、工作方式、主要功能模块、主要数据的工作流程、后台数据库的设计、数据库配置与连接;(2)系统各功能模块的详细设计、开发及其关键技术[4]。1.2.2研究目标我们设计的在线考试系统是一个基于Web的实时在线考试系统,系统的目标是实现一个基于Internet的智能化远程考试系统,采用开放、动态的系统架构,将传统的考试模式与先进的网络应用相结合[5]。1.3研究意义考试是教学中最后也是一个重要的环节,可以帮助教师了解学生对知识的掌握情况,同时也是对自己教学方法的一种检测,利于改进教学。但是这又受到考试本身的各种因素的影响,比如试卷的难易程度、评分标准和考试作弊等。因此在21世纪,推进教育改革的同时,考试改革也是研究的一个重要课题。传统的考试需要经过很多复杂的步骤才能进行。步骤如下:组织教师命题;印刷大量试卷;安排考场、考试时间、监考老师等;进行考试,统计成绩等。这整个过程存在了大量的问题。第一,科学性。试题由部分教师完成,所以出题老师一定对难度和内容的把握非常小心,否则达不到预期的效果。并且每套试题涵盖的知识点固定,造成了对知识考察不全面。第二,保密性。由于从出题到印刷一直到最后的考试,很多人参与,导致保密工作难度较大。第三,公平性。考生考试时所考内容相同,杜绝作弊是考试的一个普遍的难51 题;考试结束后人工评卷可能造成评分标准较大偏差,从而影响考试的公平性。第四,灵活性。时间地点都是经过统一安排,所以如果考生耽误考试就要参考补考。传统的考试从出题、组卷、印刷,到试卷分发、答题、收卷,再到判卷、公布成绩,整个过程都需要人工参与,周期长,工作量大,容易出错,还要有适当的保密工作,使得整个考试的成本较大。所以组织多人参考的考试相当麻烦。当前网络迅速普及,以Internet技术为代表的信息技术为人们创造了一种新的不受地域、时间和计算机约束的信息交流、共享和协作方式。21世纪是信息化的社会,数据信息应用已进入大规模服务阶段。考试作为最直接体现信息化社会中人们的知识水平的一种方式,是目前使用最为广泛的形式之一。实现无纸化、网络化、自动化的在线考试系统,具有深远的现实意义和实用价值。当前,信息技术的发展突飞猛进,特别是网络技术的兴起,使得考试信息化、自动化成为可能。三层结构的出现为出题、组卷和答题提供了良好的系统架构,从而实现统一管理题库、动态组卷、自动判卷,极大地节省了人力、物力,提高了效率[6]。本研究是对在线考试系统进行设计并实现。这个题目已经有人在研究,但是现在存在的考试系统,都存在一定的缺陷,没有一个可靠的、实用的在线考试系统。所以本研究具有挑战性和较强的实用性。1.4研究思路与研究方法论文采用了总体规划、分步实施、软件技术与网络技术相结合,管理模式研究和技术开发相结合,研究与应用相结合的技术路线。首先通过分析在线考试的实际需求,设计考试的组织与管理模式;分析并设计用户登录、考试科目、专业课程等多约束条件下与考试相关的其他信息的关系结构;继而设计考试试卷的组成规则、题型和题量的分布及程序实现方法,分析计算机答卷的技术要求和阅卷评分的准确性要求,并设计解决方案:设计考试系统的模式结构、功能、安全性和网络适应性等;最后,制定系统应用规范。(1)题型和题量的设计在基于Web的在线考试系统中,题库中的题型设计是一个重要因素,决定了考试是否能够产生科学、合理的测试效果。本系统处理的题型有:单项选择题、多项选择题、判断题、填空题和简答题等,并设置有标准答案、试题分值、试题51 归类、难度级别,满足考试抽题及自动阅卷的参数要求。同时,通过录入充足的题量,以满足考试抽题的随机选择空间。(2)计算机答卷的技术要求考生试卷中所有试题均为单项选择题、多项选择题、判断题、填空题或者简答题等。考生答题时,使用鼠标选择各题目中认为正确的选项,单项选择题和判断题仅能够选择选中一个答案,多项选择题能够选择两个以上答案,填空题和简答题将答案填入相应的框中。对考生而言,只需要掌握鼠标的使用方法和键盘输入方法即可。很显然,这样的操作技能,针对社会中具有中、高级文化程度的人员来说,不存在任何障碍。因此考生利用计算机进行考试答卷是完全可行的。(3)阅卷评分的准确性保障在在线考试系统中,对于客观题型的阅卷通过将考生答案与试题标准答案进行字符串比较的方式来判别,保证了阅卷的准确性,对于主观题型的阅卷通过教师的人工阅卷评分,评分可通过累计正确答题的试题分值来获得,算法简单、快速、准确,程序编制容易。(4)系统开发及应用模式基于Web的在线考试,充分利用Internet,采用B/S模式的数据库体系,客户端软件仅需浏览器支持,维护简单。系统开发周期短,应用程序页面简单、轻量,具有很强的伸缩性,对客户端硬件配置要求极低,易于达到要求,可以选择不同厂家的设备和服务。系统资源的冗余度小,部署方便,容易维护且可扩充性良好。(5)选择合适的开发工具开发工具的选择对一个系统来说很重要,既决定了开发人员的开发效率,也对页面的美观和操控性起着重要作用,同时也对系统的易维护性和扩充性有着重要影响。(6)建立多客户环境下数据库应用模式以Web技术为基础的B/S模式正日益显现其先进性,当今很多基于大型数据库的应用系统正在采用这种全新的技术模式。B/S模式由浏览器、Web服务器、数据库服务器三个层次组成。在这种模式下,客户端使用一个通用的浏览器,代替了形形色色的各种应用软件,用户的所51 有操作都是通过浏览器进行的。该结构的核心部分是Web服务器,它负责接受远程(或本地)的HTTP查询请求,然后根据查询的条件到数据库服务器获取相关数据,再将结果翻译成HTTP和各种页面描述语言,传送回提出查询请求的浏览器,由后者与数据库联系完成这些工作。1.5论文框架本文主要分析了现有的在线考试系统的优缺点,并针对这些缺点,利用Ajax技术改进了基于Web的在线考试系统。提供了一个人性化,高交互性与高响应性的在线考试系统。本文各章节的主要内容如下:第一章绪论。主要介绍了本文的研究背景,概述了本文的内容安排和研究目标,并给出了研究意义,研究思路与研究方法。第二章开发环境介绍。本章主要介绍本在线考试系统设计的开发环境,以及开发中应用关键技术。第三章系统设计。介绍了系统的需求分析、总体设计和详细设计。第四章详细设计。本章介绍了系统的界面制作、数据库开发、程序编码、系统测试和系统评估。第五章研究结论与未来研究。介绍了研究内容的总结、主要创新点、存在的不足点及今后的研究方向。51 第二章开发环境介绍2.1开发环境配置本考试系统的开发环境如下:(1)信息服务器:InternetInformationService。(2)开发技术:ASP技术,ajax技术。(3)开发工具:MacromediaDreamweaver8、AdobePhotoshopCS。(4)数据库:SQLServer2000。(5)浏览器:IE浏览器。(6)服务器操作系统:开发过程采用WindowsXPProfessional操作系统,系统实施后可采用Windows2003Server服务器操作系统。在创建系统的时候,将online_Examination创建在IIS服务器的主目录下面,例如C:Inetpubwwwrootonline_Examination;Images文件夹用于存储系统中的图片文件;Database文件夹用于存储备份的数据库文件。2.2Web概述(1)Web定义Web是WWW(WorldWideWeb)的简称,又称万维网。简单的说,Web是建立在客户机/服务器(Client/Server)模型之上,以HTML和HTTP协议为基础,能够提供面向各种Internet服务的、一致的用户界面的一种信息服务系统[17](2)Web的结构和工作原理Web的结构主要分为两部分,一为服务器端(Server),也就是信息的提供者,二为客户端(Client),也就是信息的接受者。在客户机/服务器体系结构中,通常比较容易理解为两端的计算机。但事实上,“客户机”和“服务器”概念更多的是指软件,是指两台机器上相应的应用程序[17]。对于Web系统,客户机上所运行的浏览器程序基本上是标准化的,所以建立客户机/服务器系统的主要任务就落到了服务器端。Web的体系结构因而可以称作浏览器/服务器结构,如图2-1所示。51 图2-1Web的体系结构[17]Web使用超文本传输协议HTTP(HyperTextTransferProtocol)在Web服务器和浏览器之间传输Web文档。而HTTP是一个无连接、无状态的协议。一个完整的HTTP事务由以下4个阶段组成:客户与服务器建立TCP连接;客户向服务器发送请求;服务器响应请求,发送应答,在发送中包含状态码和请求的HTML文档;客户与服务器关闭连接。其过程可以用图2-2表示。图2-2Web的工作原理2.3ASP技术(1)ASP简介ASP(ActiveServerPages)是微软开发的基于WindowsNTServer和IIS服务器端脚本运行环境,利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序。可以看出,ASP既不是一种语言,也不是一种开发工具,而是一种技术框架,其主要功能是为生成动态的交互式的Web服务器应用程序提供一种功能强大的方法或技术[18]。ASP的主要特性是能够把HTML、VBScript、Jscript等脚本语言和ActiveXServerComponent(ActiveX服务器组件)等有机地组合在一起,形成一个能够在服务器上运行的应用程序,并把按用户要求专门制作的标准51 HTML页面送给客户端浏览器。由于本课题研究主要使用ASP技术实现Web与数据库互连,因此这里对ASP技术做详细的介绍。当需要针对不同使用者使用不同浏览器访问服务器资源时,Client端的应用是不够的。ASP是一种Server端的应用环境,它的命令和脚本语句由服务器端解释执行。开发者可以不必考虑浏览器是否支持ASP。同时,由于只是标准的HTML页面送到浏览器,在浏览器上看不到ASP程序,因此可以防止程序被窃取,保护了开发者的利益。(2)ASP工作原理和配置通过ASP访问数据库的工作过程如图2-3所示。图2-3ASP工作原理(3)ASP的特点从软件的技术层面看,ASP有如下的特点:无需编译。ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。易于生成。使用常规文本编辑器(如WINDOWS下的记事本),即可进行asp页面的设计。若从工作效率来考虑,不妨选用具有可视化编辑能力的Dreamweaver。独立于浏览器。用户端只要使用可解释常规HTML码的浏览器,即可浏览ASP所设计的主页。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。面向对象。在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过ActiveXServerComponent(ActiveX服务器组件)来扩充功能。安全性好。源程序码不会外漏,ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。51 2.5.3SQLServer介绍(1)SQLServer特点本系统所采用的后台数据库为MicrosoftSQLServer,它是一个可伸缩的高性能的关系数据库管理系统,其主要特点[19]有:·与Windows系统集成·允许集中管理服务器·提供企业级的数据复制·提供并行的体系结构·支持超大型数据库SQLServer是一个独立于网络的,并且特别适用于那些运行时需要在异构环境下进行连接的应用程序。Windows下的SQLServer;支持绝大多数的网络协议,如IPX/SPX、TCP/IP等,支持在这些协议下客户与服务器的连接。SQLServer集中了诸如数据一致、存储、触发器、索引、视图、事务处理、加锁、备份恢复等管理机制,利用分布式框架(DHF)集中管理整个企业范围的服务器。从数据库管理角度来看,SQLServer实现了以下几方面的功能:数据完整性。安全可靠。并发执行。集成管理。(2)SQLServer安全性良好的数据库的安全设计,可以有效地保护数据库,防止不合法的访问和破坏。在开发数据库系统时,安全性设计是开发者不能回避的重要环节。SQLServer安全性用于保护服务器和存储在服务器中的数据,它提供了完善的安全机制来决定可以登录到服务器的用户、用户可以操作的管理任务、用户可以访问的数据库、数据库对象及其他方面的管理任务。51 2.5.4Ajax介绍Ajax这个概念的最早提出者JesseJamesGarrettl[20-22]。Ajax全称为“AsynchronousJavaScriptandXML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它包括:(1)使用XHTML和CSS标准化呈现;(2)使用DOM实现动态显示和交互;(3)使用XML和XSLT进行数据交换与处理;(4)使用XMLHTTPRequest进行异步数据读取;(5)最后用JavaScript绑定和处理所有数据。Ajax不是一项新技术,而是很多成熟的技术的集合。和Applet,Flash相比,Ajax则是一种轻量级的解决方案。因为它操作的基础是HTML或者是XHTML,使用的脚本语言是JavaScript,这可以保证它的纯文本性质;利用XML,Ajax可以和其他应用程序方便的进行通信。Ajax可以迅速赢得别人的关注的另外一个重要原因还在于它完全是基于成熟的技术,作为异步调用的基础设施XMLHttpRequest,早在1999年就被引入了IE浏览器,随后又被其他浏览器支持。Ajax以一种崭新的方式来使用所有的这些技术[24],使得古老的B/S方式的Web开发焕发了新的活力。见图2-4。图2-4各种技术在Ajax引擘中的引用Ajax是一个结合了Java技术、XML、以及JavaScript的Web开发模式[24],可以构建基于Java技术的Web应用。和传统的Web更新技术不同,传统的Web应用允许用户填写表单(form),当提交表单时就向Web服务器发送一个请求。服51 务器接收并处理传来的表单,然后返回一个新的网页。这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。与此不同,Ajax技术可以仅向服务器发送并取回必需的数据,它相当于在客户端和服务器之间加了一个中间层,即Ajax引擎。并不是所有的用户请求都提交给服务器,一些数据的验证和处理由Ajax自己来做,只有确实需要从服务器读取新数据时,才由客户端通过JavaScript调用Ajax引擎向服务器端发出Http请求,但它并不等待请求的响应,用户可以继续浏览或交互。当服务端的数据以XML形式返回时,Ajax引擎接收数据,并指定JavaScript函数来完成相应的处理或页面的更新,而不是刷新整个页面,从而实现用户操作与服务器响应的异步化。如图2-5所示。图2-5Ajax工作原理图2.4开发环境及技术的选择传统的Web页面重载机制已经严重的制约着网络应用软件的开发,因此,关于页面的载入技术的研究也就成为Web应用程序设计的关键。然而这种状况一直没能彻底改变,直到Ajax技术的出现。在Ajax技术之前,在线考试系统的在线考试都经历提交答案、等待响应、重新加载页面这样的过程。为了保护答案数据的完整,这类系统往往需要进行大量的提交动作,这种独占式请求操作总是与服务器的“响应时间”同步,即当请求未得到服务器完全响应时,用户只能等51 待,而不能进行其他操作;或者当页面只需更新小部分数据时,浏览器必须重新加载整个页面。这些频繁交互请求的过程不仅让考试处于不连续的状态中,同时也消耗了大量服务器资源。与此不同,Ajax采用独特的远程脚本调用技术,可以异步的实现页面数据的更新,彻底解决了传统页面的重载问题,开启了全新的网页应用程序设计模式。其典型应用有google的GMail、GoogleSuggest等。在国内,Ajax技术已经成功的应用到网易的邮件系统。基于Ajax开发的B/S模式系统将继承其所有优势,在面对大数据量与服务器通信时,不但不容易引起数据丢失、服务器死机等现象,而且用户操作页面也会流畅很多,这是一种新的B/S模式上C/S模式速度的Web操作体验。虽然目前计算机技术以及网络技术都在高速发展,但在诸多场合现在的Web系统仍不能完全满足用户的需求。比如:WebGIS领域的实时查图功能,这不仅需要足够的带宽支持,而且需要用户有足够的耐心,同时这对服务器也是一个不小的负担。再如:大多数在线考试系统往往由于带宽不足或是服务器配置不够,经常出现种种问题。尤其是各高校在“数字校园”建设中,经常会遇到类似的问题。网络教育是“数字校园”建设中的重要组成部分,由于校园网的用户众多,网络资源也相当有限,这给网络教育系统的建设带来了一定的困难。这种问题在校园网内的在线考试系统突显严重,因为在固定的考试时间内,大批的考生要同时在线答题,考试结束时,所有考生要同时向服务器提交试卷结果,这给服务器带了巨大的负担。因为同时向服务器提交大量的数据,经常致使无法正常提交试卷,造成页面响应超时,甚至造成丢失数据、服务器死机等现象,考生的操作页面此时也是停滞不前,严重影响在线考试的效果2.5小结本章主要是对本系统设计的一些基本知识进行介绍。由于本系统是使用ASP技术实现的,所以对ASP技术做了一个详细的介绍,包括其工作原理、功能以及使用ASP技术的优点。本章还介绍了SQLServer的特点,它是一个可伸缩的高性能的关系数据库管理系统;接着介绍了它的安全性,因为在开发数据库系统是,安全性是设计师开发者不能回避的重要环节;在本章,介绍了系统运行过程51 中数据库的管理维护,确保系统中的数据完整有效。最后,介绍了Ajax技术及其工作原理等。51 第三章系统设计3.1系统需求分析3.1.1系统可行性分析近几年来,随着我国信息产业的飞速发展,计算机的开发应用已渗透到各个领域,而且日趋普及。在现代的测试与考试中计算机也得到广泛的应用。在线考试系统的开发对考务工作效率有很好的提高。(1)技术可行性基于浏览器的在线考试,关键技术在于网页的动态显示和管理,即从数据库中取得相应的试卷数据,并收集用户输入数据,能够对考试过程进行控制。采用最新的ASP与SQL技术开发,管理端和考生界面全部采用B/S模式构建,系统的部署、应用、维护更加方便。同时,大型数据库SQLServer2000提供了数据库管理的能力,因此技术方案是成熟的和可行的。(2)经济可行性软件开发周期一般为2-3个月,开发所需硬件软件设施目前大多数PC机系统能够承担,开发费用不高。目前,大多数单位都拥有高性能微机和局域网,该软件系统的安装、部署、运行和维护,都不会给单位增加太高的费用。所以该系统在经济上是可行的。(3)操作可行性目前,大多数PC机和局域网能够运行该系统,该系统的安装、调试、运行不会改变原计算机系统的设置和网络的布局,并且大多数用户几乎不用做任何培训都能够方便的操作系统。因此从操作可行性的角度来衡量,本系统的开发方案也是可行的。综合以上三个方面的因素,开发在线考试系统是完全可行的。3.1.2系统功能需求分析在线考试的概念模型如图3-1所示,要满足以下几方面的功能需求:(1)满足系统不同用户角色的应用需求:根据需要,从试题库建立、考生注册登录、考生在线考试、客观题计算机自动阅卷、主观题教师手工阅卷到成绩汇总,整个过程中参与了管理员、教师、考51 生三种不同需求的用户类型。因此系统应对三种用户按其使用功能和权限进行角色划分,形成3种角色,分别是:·管理员:具有系统的功能变更与维护权限及管理教师和学生等信息的用户。·教师:进行试题录入和维护、考试组卷方案维护功能、主观题手工阅卷、成绩查阅与管理功能等。·考生角色:指参加考试的被测试用户。其身份是由考生本人通过注册生成的。考试时,考生利用该身份登录并参加考试。(2)满足多种考试题型的要求:试卷中的题型除包括单项选择题、多项选择题、判断题客观题以外,还包括主观题,即填空题和简答题。填空题难度较低,分值也相对较低,简答题难度较高,分值也相对较高,主观题一律由教师手工阅卷。(3)满足考试功能的要求:·试题库管理功能:通过试题库管理功能建立与维护试题,以便在考试组卷时进行抽题。另为需要具有试题分类查询功能。·考生登录功能:在正式考试开考前,考生通过计算机登录考试系统,考生登录时需用准考证号码结合自定义的密码进行身份认证,登录后进行考试。·自定义考试功能:在每期考试之前,按照待考科目所依据的考试方案,设定考试日期、考试限时、参加考试的专业等项目,从而形成一个逻辑考场。·随机组卷功能:在线考试充分利用计算机强大的运算和数据处理能力,依据试卷生成规则,动态随机组织生成试卷,保证考试的公平竞争原则。·考试时间控制功能:每场考试都有时间限制,在考生答卷时需要由计算机自动倒计时,到时间后系统能够自动终止考生答卷,并自动收卷。·计算机阅卷评分功能:在考试交卷后,计算机能立即依据试题标准答案对考生试卷客观题进行评阅,并根据其正误情况进行计分。·成绩管理功能:通过此功能能够对各场考试的考生成绩进行查询,并能够按成绩分段统计,形成成绩分布情况图。3.2系统总体设计3.2.1系统的体系结构系统采用的三层结构模型,是新一代分布式计算方案设计的应用软件体系结51 构。其体系结构模型如图3-1所示。图3-1系统体系结构图表示层位于学生工作站上,功能层位于Web服务器和应用程序服务器上,数据层位于数据库服务器上。这种结构有利于系统的负载平衡和系统的维护,同时也保证了信息安全。在表示层上,它提供一组标准的界面来发布、编辑和接受数据,并保持用户界面的一致性和完整性。这一层中的客户端代码通过调用功能层所封装的事务处理接口来激活事务。在系统中用户主要通过IE或NETSCAPE等浏览器进行在线考试及网上的各种管理。它将用户层单独列出来,减少了系统的藕合,每层的开发和维护相对来说都比较独立。功能层集中了系统的事务逻辑处理,它对事务规则和过程进行封装,使得每个单独的对象都有清楚的目的和作用。功能层构造事务对象的工作可以和构造表示层的事务方案同时进行,而且形成了一组固定的事务对象后,可以说是建立了51 一个特定的计算环境,以后再开发同一领域的新的事务解决方案时也许直接拿来用就可以了,或者只需要做少量的改动。构建事务部件的工作是比较复杂的,需要十分彻底地理解用户的问题域,以及用户事务的各个部件是如何同一个公共的事务对象打交道的。比如在题库系统中,很多事务都有查询的要求,它们都要以某种方式使用查询信息,那么就有理由创建一个查询代理对象,从而以某种方式使用查询信息。建立部件工作本身就可以构成一项工程,是把应用推向合理化、效率化的积极的一步。数据层为功能层提供服务,使功能层不必关心底层数据库采用哪一种数据库,基至数据库内部数据的结构也可以改变。数据层的对象机制主要由数据库管理系统完成,包括数据表和存储过程、触发器等。数据层为功能层提供使用数据,使这些数据独立于功能层的决策规则,它可以是一个数据库管理系统,也可以是另外一个子系统。3.2.2系统的用例图在线考试系统的主要目标是实现在线考试,围绕这一中心任务,必须提供对在线考试的全面支持和其它考务辅助功能。包括动态出卷、自动评卷、成绩查询、用户信息管理、试题库管理、成绩管理等。整个系统的用户有三类:考生、教师和系统管理员。这三类用户的相关信息都被存储在数据服务器中,称之为合法用户。他们具有不同权限,进入考试系统前,必须经过系统的身份验证,用户只有具有其中一种合法用户身份,才能进入系统,对系统规定资源进行访问。这三类用户的用例图如图3-2至图3-4所示。考生登录系统后,就可以在网络考场参加正式考试。教师是考试科目的创建者、考试的实施者,登录系统后可以对题库管理、组卷管理、考试管理、在线阅卷和试题评估几处进行操作。51 图3-2学生用例图图3-3教师用例图图3-4管理员用例图3.2.3在线考试的模块流程在线考试是系统的核心模块,其中包含选择考试类型、答卷、交卷、自动评卷、保存答案和保存成绩等几个模块,它们之间的关系如图3-5所示。51 图3-5在线考试模块流程图进入系统前进行身份验证,通过后学生便可进入在线考试系统。另外,系统还对考试时间进行控制,时间到了会要求考试者交卷。在抽取试卷、进行考试、交卷时都要进行身份验证,考试者选择将答卷提交后,由计算机自动评卷。自动评卷成绩即记入考试成绩库,以方便查分。3.3系统详细设计3.3.1后台总体架构介绍考生、教师用户或管理员输入自己的用户账号、密码,通过身份验证后可以进入相应的管理界面首页。考生管理页面分为考试列表、成绩查询、我的错题、我的信息、公告列表5个模块。教师管理页面共分为考试设计、考试管理、统计分析、信息发布管理、我的信息管理5个模块。管理员管理页面分为信息管理、考试管理、我的信息和信息发布4个模块。考生管理模块:考试列表模块,罗列该考生可参加的考试,考生可选择任一考试进入,开始考试,若无主观题则会在考试结束后由系统自动评分。成绩查询模块,考生可对自己参加过的考试进行成绩查询。我的错题,考生可对自己的错题进行查询。我的信息模块,考生可对本人信息进行修改。公告列表,考生可对公告进行查询。教师管理模块:考试设计模块,是教师用来对题库试题、试卷库试卷进行添加、删除以及对现有题库中的题目进行修改的操作平台。教师可以根据实际试题或试卷需要情况,方便地利用多功能查询操作,也可以添加或修改、删除,对题库及试卷库进行高效率管理。考试管理模块,是教师用来添加、删除修改考试信息的操作平台,并且其中的人工评卷子模块可用来对主观题进行人工评卷。成绩管理模块,教师正51 常登录后可以进入此页面查看测试的所有考生成绩及成绩分布。信息发布管理模块,教师可对公告进行添加、删除、修改,并可对公告状态进行修改。我的信息管理模块,教师可对本人信息进行修改。管理员模块:信息管理模块,管理员可对考生、教师、管理员、课程、专业进行添加、删除、修改,并可对课程开设进行设置。考试管理模块,管理员可对试题、试卷、考试进行添加、删除、修改。信息发布管理模块,管理员可对公告进行添加、删除、修改,并可对公告状态进行修改。我的信息管理模块,管理员可对本人信息进行修改。3.3.2身份验证模块当用户需要登录的时候,需要有响应的页面来实现这一功能。登录界面是用来支持用户进行登录功能操作的界面,当在界面中输入考生的用户名、密码和验证码后,就可以通过身份验证进入该系统。登录界面需要让用户输入用户名、密码。如果是错误登录信息造成的还要显示错误信息。否则,当信息输入和权限选择正确时,将分别将用户导入各自对应的操作界面首页。用户分为考生、教师和管理员三种。每种用户具有不同的权限,能完成不同的操作。学生用户有参加考试和利用考试系统进行自测的权限。考生用户的用户名为该考生的准考证号,因此本类用户在数据库库中和自己的专业相联系,以方便教师在考试时整体添加专业考生,也方便考试结束以后很好的对每个专业的考试结果进行察看、总结和分析。教师用户具有对试题、试卷和成绩管理的权限,进入系统后进入教师管理页面。只有在教师以专业为单位授权考试开始之后,考生用户才能进行考试。管理员用户除了有教师用户相同的权利之外,还具有了对所有用户的管理。系统中教师和管理员用户均不能自己注册,都要由管理员来添加,以方便统一的管理。用户登录和身份验证功能模块的设计流程如图3-6所示。51 系统首页用户登录输入用户名和密码身份验证用户分类考生用户教师用户管理员用户YN退出系统图3-6户登录和身份验证功能模块设计流程图用户登录信息验证界面是非常重要的一部分,它接收登录表单提交的信息,并在用户信息表里检验是否存在对应的用户,和判断用户的类型以便获得相应的权限。3.3.3组卷模块系统为在线考试系统,因此在线考试将为本系统的关键。在线考试必须要为考试提供一张题型、题量和分值分布都比较合理的试卷。提供试卷的功能就由组卷模块来完成实现。组卷模块分为两种模式,一种是教师手动组卷,另一种是系统自动从试题库中选择合适的试题,生成一张试卷。(1)教师手动组卷本模式类似于传统教师出考试试卷,也更适于一般的考试科目。具体操作如下:进入手动组卷页面,对试卷的考试课程,总分,题型,题量,分值进行设置,然后根据相应的课程、题型调出试题库中相应的试题。教师可以在试题列表中选择试题加入试卷。当教师抽取到所有需要的试题之后,系统将会按照系统提供的统一版式生成一张试卷,并可进行预览。(2)系统自动组卷51 教师生成新试卷是在线考试系统最重要的功能之一,本系统采用的方法是教师先向系统提交想要生成试卷的各种条件信息,然后系统根据所提供的信息使用自动组卷策略。本系统处理自动组卷总共需要3步操作:第一步,教师用户填写并提交试卷的基本信息;第二步,教师用户确认信息无误后由系统随机抽取试题;第三步,教师预览试卷。当教师处理考试卷进行3步功能操作时需要有响应的页面来实现其功能。3.4数据库设计大多数网络应用系统都需要后台数据库的支持。在Windows操作系统中,Access和SQLServer是最常见的网络后台数据库。在互联网上,很多人出于价格的考虑选择Access数据库,但是实现比较大的网络应用系统,还是应该选择SQLServer。本系统就是应用SQLServer数据库存储数据。3.4.1创建数据库在线考试系统采用了SQLServer作为数据库管理系统。先启动“企业管理器”然后创建名为“db_Examination”的数据库在SQLServer2000中创建数据库可以使用以下3中方法:(1)运用数据库向导创建数据库。(2)在SQLServer2000的企业管理器中,首先展开服务器组,然后展开服务器,单击“数据库”→“新建数据库”命令,在弹出的“数据库属性”对话框中,键入新建数据库的名称。(3)使用Transact-SQL的CREATEDATABASE命令。该命令如下:CREATEDATABASEdb_Examination其中“db_Examination”为在线考试系统的数据库名称。3.4.2数据表结构在线考试系统的数据库中共包含11个数据表。管理员信息表(tb_Administrator)用来保存管理员信息,该表结构如3-1所示。表3-1表tb_Administrator的结构列名数据类型长度主键否允许空功能描述Namevarchar50否否管理员账号PWDvarchar50否否管理员密码51 JoinTimedatetime8否是加入时间emailvarchar20否是邮箱mobivarchar20否是手机introvarchar200否是自我介绍ImageDataimage16否是本人照片ImageTagchar10否是图片状态考试信息表(tb_Exam)用来保存考试信息,该表的结构如表3-2所示。表3-2表tb_Exam的结构列名数据类型长度主键否允许空功能描述idbigint8是否考试编号Namevarchar50否是考试名称notevarchar5000否是考试备注pidvarchar50否否对应的试卷号JoinTimedatetime8否是加入时间statevarchar50否是是否发布lessionidvarchar50否是课程编号begin_tidatetime8否是考试开始时间end_tidatetime8否是考试结束时间etimeint4否是考试时间rengongvarchar50否是人工阅卷的教师工号tidvarchar50否是录入的教师工号provarchar50否是参加考试的专业号课程信息表(tb_Lesson)用来保存课程信息,该表的结构如表3-3所示。表3-3表tb_Lesson的结构列名数据类型长度主键否允许空功能描述IDbigint8是否课程编号Namevarchar60否是课程名称JoinTimedatetime8否是加入时间公告信息表(tb_notice)用来保存公告信息,该表的结构如表3-4所示。表3-4表tb_notice的结构51 列名数据类型长度主键否允许空功能描述idvarchar50是否公告编号Titlevarchar50否是公告题目contentvarchar500否是公告内容JoinTimedatetime8否是加入时间seecontint4否是点击次数authorvarchar50否是发布者编号fabudatetime8否是发布时间ztchar10否是公告状态课程开设表(tb_PLT)用来保存课程开设信息信息,该表结构如3-5所示。表3-5表tb_PLT的结构列名数据类型长度主键否允许空功能描述PIDbigint8是否开课专业编号LIDbigint8是否课程编号TIDvarchar50是否授课教师编号专业信息表(tb_Profession)用来保存专业信息,该表的结构如表3-6所示。表3-6表tb_Profession的结构列名数据类型长度主键否允许空功能描述IDbigint8是否专业编号Namevarchar200否是专业名称JoinTimedatetime8否是加入时间试题信息表(tb_Questions)用来保存试题信息,该表的结构如表3-7所示。表3-7表tb_Questions的结构列名数据类型长度主键否允许空功能描述idbigint8是否试题编号que_contentvarchar500否是试题内容que_typechar10否是试题类型que_joindatedatetime8否是试题加入时间que_lessonidint4否是所属课程号que_levelvarchar50否是难度系数51 authorvarchar50否是作者scoreint4否是分数que_fromvarchar50否是问题来源option1varchar50否是选项1option2varchar50否是选项2option3varchar50否是选项3option4varchar50否是选项4option5varchar50否是选项5option6varchar50否是选项6que_answervarchar50否是试题答案notevarchar50否是注释考生信息表(tb_Student)用来保存考生信息,该表结构如表3-8所示。表3-8表tb_Student的结构列名数据类型长度主键否允许空功能描述IDvarchar50是否准考证号Namevarchar50否是学生姓名PWDvarchar50否是学生密码Sexchar10否是性别Birthdatetime8否是生日JoinTimedatetime8否是加入时间professionbigint8否是所属专业号emailvarchar20否是邮箱mobivarchar20否是手机introvarchar200否是自我介绍ImageDataimage16否是本人照片ImageTagchar10否是照片状态考生考试信息表(tb_StuResult)用来保存考生考试信息,该表结构如3-9所示。表3-9表tb_StuResult的结构列名数据类型长度主键否允许空功能描述res_idbigint8是否试题结果编号stu_idvarchar50否是所属考生编号51 tidvarchar50否是考试号singlevarchar500否是考生填写的单选题答案mulvarchar500否是考生填写的多选题答案judvarchar500否是考试填写的判断题答案tkvarchar5000否是考试填写的填空题答案wendavarchar5000否是考试填写的问答题答案res_autoint4否是自动阅卷分数res_regongint4否是人工阅卷分数res_totalint4否是总成绩res_subdatedatetime8否是成绩提交时间teidvarchar50否是人工阅卷教师号试卷信息表(tb_TaoTi)用来保存试卷信息,该表的结构如表3-10所示。表3-10表tb_TaoTi的结构列名数据类型长度主键否允许空功能描述IDbigint8是否试卷编号Namevarchar500否是试卷名称LessonIDvarchar50否是所属课程号scoreint4否是总分sortvarchar5000否是题型安排singlevarchar50否是单选题题号mulvarchar50否是多选题题号judgevarchar50否是判断题题号tkvarchar50否是填空题题号wendavarchar50否是问答题题号JoinTimedatetime8否是加入时间notevarchar5000否是试卷说明authorvarchar50否是作者contint4否是题型数total_contint4否是总题数教师信息表(tb_Teacher)用来保存教师信息,该表的结构如表3-11所示。表3-11表tb_Teacher的结构51 列名数据类型长度主键否允许空功能描述IDvarchar50是否教师编号Namevarchar20否是教师名称PWDvarchar20否是教师密码Sexvarchar2否是性别JoinTimedatetime8否是加入时间emailvarchar50否是邮箱mobivarchar50否是手机introvarchar200否是自我介绍ImageDataimage16否是本人照片ImageTagchar10否是照片状态3.5小结本章主要介绍了考试系统的设计工作,首先对系统的需求进行了分析,进行了系统的可行性分析和功能分析;其次对系统的总体设计做了介绍,给出了系统体系结构、用例图和在线考试模块流程;最后,介绍了系统的详细设计,包括各个模块的流程图。51 第四章详细设计4.1考生管理模块4.1.1功能介绍考试列表模块,罗列该考生可参加的考试,考生可选择任一考试进入,开始考试,若无主观题则会在考试结束后由系统自动评分。成绩查询模块,考生可对自己参加过的考试进行成绩查询。我的错题,考生可对自己的错题进行查询。我的信息模块,考生可对本人信息进行修改。公告列表,考生可对公告进行查询。4.1.2界面介绍图4-1个人信息页面的运行结果4.1.3关键算法的代码实现if(form.name.value==""){51 alert("请输入考生姓名!");form.name.focus();returnfalse;}if(form.password1.value==""){alert("请输入登录密码!");form.password1.focus();returnfalse;}if(form.password1.value.length<6||form.password1.value.length>20){alert("您输入的密码不合法,密码必须大于6位,并且小于等20位!");form.password1.focus();returnfalse;}if(form.password2.value==""){alert("请确认登录密码!");form.password2.focus();returnfalse;}if(form.password1.value!=form.password2.value){alert("您两次输入的登录密码不一致,请重新输入!");form.password1.focus();returnfalse;}if(form.question.value==""){alert("请输入提示问题!");form.question.focus();returnfalse;}if(form.answer.value==""){alert("请输入问题答案!");form.answer.focus();returnfalse;}}当用户需要注册时,单击“注册“按钮,系统会执行以下流程:request请求将页面上的信息传递到控制层的struts中的Action类中,执行以下代码/**注册一个新用户*///添加考生注册信息privateActionForwardstudentAdd(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){StudentFormstudentForm=(StudentForm)form;Stringret=studentDAO.insert(studentForm);System.out.println("返回值ret:"+ret);if(ret.equals("re")){request.setAttribute("error","您已经注册,直接登录即可!");returnmapping.findForward("error");}elseif(ret.equals("miss")){request.setAttribute("error","注册失败!");returnmapping.findForward("error");}else{51 request.setAttribute("ret",ret);returnmapping.findForward("studentAdd");}}4.2教师管理模块4.2.1功能介绍考试设计模块,是教师用来对题库试题、试卷库试卷进行添加、删除以及对现有题库中的题目进行修改的操作平台。教师可以根据实际试题或试卷需要情况,方便地利用多功能查询操作,也可以添加或修改、删除,对题库及试卷库进行高效率管理。考试管理模块,是教师用来添加、删除修改考试信息的操作平台,并且其中的人工评卷子模块可用来对主观题进行人工评卷。成绩管理模块,教师正常登录后可以进入此页面查看测试的所有考生成绩及成绩分布。信息发布管理模块,教师可对公告进行添加、删除、修改,并可对公告状态进行修改。我的信息管理模块,教师可对本人信息进行修改。4.2.2界面介绍图4-2教师页面的运行结果51 4.2.3关键算法的代码实现request.setCharacterEncoding("UTF-8");StringSubNum=request.getParameter("subnum");StringTeaNum=request.getParameter("teanum");StringTesName=request.getParameter("TesName");StringTesTotalper=request.getParameter("TesTotalper");StringTesSinCount=request.getParameter("TesSinCount");StringTesBlaCount=request.getParameter("TesBlaCount");StringTesAnsCount=request.getParameter("TesAnsCount");StringTesSinPer=request.getParameter("TesSinPer");StringTesBlaPer=request.getParameter("TesBlaPer");StringTesAnsPer=request.getParameter("TesAnsPer");StringTesTime=request.getParameter("TesTime");Stringatarttime=request.getParameter("atarttime");Stringendtime=request.getParameter("endtime");Stringdone=request.getParameter("done");System.out.println(SubNum);Stringsql="insertintotest"+"(SubNum,TeaNum,TesName,TesTotalper,TesSinCount,TesSinPer,TesBlaCount,TesBlaPer,TesAnsCount,TesAnsPer,TesTime,atarttime,endtime,Done,addtime)"+"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,now())";Stringparams[]={SubNum,TeaNum,TesName,TesTotalper,TesSinCount,TesSinPer,TesBlaCount,TesBlaPer,TesAnsCount,TesAnsPer,TesTime,atarttime,endtime,done};QueryRunnerqr=Conn.getQueryRunner();try{qr.update(sql,params);}catch(SQLExceptione){e.printStackTrace();}4.3管理员模块4.3.1功能介绍信息管理模块,管理员可对考生、教师、管理员、课程、专业进行添加、删除、修改,并可对课程开设进行设置。考试管理模块,管理员可对试题、试卷、考试进行添加、删除、修改。信息发布管理模块,管理员可对公告进行添加、删51 除、修改,并可对公告状态进行修改。我的信息管理模块,管理员可对本人信息进行修改。4.3.2界面介绍图4-3管理员页面的运行结果publicActionForwardmanagerLogin(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ManagerFormmanagerForm=(ManagerForm)form;intret=managerDAO.checkManager(managerForm);System.out.print("验证结果ret的值:"+ret);if(ret==2){request.setAttribute("error","您输入的管理员名称或密码错误!");returnmapping.findForward("error");}else{HttpSessionsession=request.getSession();session.setAttribute("manager",managerForm.getName());returnmapping.findForward("managerLoginok");}}51 4.4身份验证模块4.4.1功能介绍当用户需要登录的时候,需要有响应的页面来实现这一功能。登录界面是用来支持用户进行登录功能操作的界面,当在界面中输入考生的用户名、密码和验证码后,就可以通过身份验证进入该系统。登录界面需要让用户输入用户名、密码。如果是错误登录信息造成的还要显示错误信息。否则,当信息输入和权限选择正确时,将分别将用户导入各自对应的操作界面首页。用户登录信息验证界面是非常重要的一部分,它接收登录表单提交的信息,并在用户信息表里检验是否存在对应的用户,和判断用户的类型以便获得相应的权限。4.4.2界面介绍图4-4系统登录页面的运行结果4.1.3关键算法的代码实现51 if(form.name.value==""){alert("请输入考生姓名!");form.name.focus();returnfalse;}if(form.password1.value==""){alert("请输入登录密码!");form.password1.focus();returnfalse;}if(form.password1.value.length<6||form.password1.value.length>20){alert("您输入的密码不合法,密码必须大于6位,并且小于等20位!");form.password1.focus();returnfalse;}if(form.password2.value==""){alert("请确认登录密码!");form.password2.focus();returnfalse;}if(form.password1.value!=form.password2.value){alert("您两次输入的登录密码不一致,请重新输入!");form.password1.focus();returnfalse;}if(form.question.value==""){alert("请输入提示问题!");form.question.focus();returnfalse;}if(form.answer.value==""){alert("请输入问题答案!");form.answer.focus();returnfalse;}}当用户需要注册时,单击“注册“按钮,系统会执行以下流程:request请求将页面上的信息传递到控制层的struts中的Action类中,执行以下代码/**注册一个新用户*///添加考生注册信息privateActionForwardstudentAdd(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){StudentFormstudentForm=(StudentForm)form;Stringret=studentDAO.insert(studentForm);System.out.println("返回值ret:"+ret);if(ret.equals("re")){request.setAttribute("error","您已经注册,直接登录即可!");returnmapping.findForward("error");}elseif(ret.equals("miss")){request.setAttribute("error","注册失败!");returnmapping.findForward("error");51 }else{request.setAttribute("ret",ret);returnmapping.findForward("studentAdd");}}4.5组卷模块4.5.1功能介绍系统为在线考试系统,因此在线考试将为本系统的关键。在线考试必须要为考试提供一张题型、题量和分值分布都比较合理的试卷。提供试卷的功能就由组卷模块来完成实现。组卷模块分为两种模式,一种是教师手动组卷,另一种是系统自动从试题库中选择合适的试题,生成一张试卷4.5.2界面介绍图4-5随机添加试卷页面的运行结果4.5.3关键算法的代码实现usingSystem;usingSystem.Data;usingSystem.Configuration;51 usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingMyOnLineExam.DataAccessLayer;usingSystem.Data.SqlClient;usingMyOnLineExam.BusinessLogicLayer;publicpartialclassWeb_UserTest:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){lblPaperName.Text=Session["PaperName"].ToString();InitData();}}//初始化试卷,从数据库中将试题取出protectedvoidInitData(){//Response.Write(Session["PaperID"].ToString());//Response.End();SqlParameter[]Params1=newSqlParameter[2];DataBaseDB=newDataBase();intpaperID=int.Parse(Session["PaperID"].ToString());Params1[0]=DB.MakeInParam("@PaperID",SqlDbType.Int,4,paperID);//试卷编号Params1[1]=DB.MakeInParam("@Type",SqlDbType.VarChar,10,"单选题");//题目类型DataSetds1=DB.GetDataSet("Proc_PaperDetail",Params1);GridView1.DataSource=ds1;GridView1.DataBind();((Label)GridView1.HeaderRow.FindControl("Label27")).Text=((Label)GridView1.Rows[0].FindControl("Label4")).Text;SqlParameter[]Params2=newSqlParameter[2];Params2[0]=DB.MakeInParam("@PaperID",SqlDbType.Int,4,paperID);//试卷编号51 Params2[1]=DB.MakeInParam("@Type",SqlDbType.VarChar,10,"多选题");//题目类型DataSetds2=DB.GetDataSet("Proc_PaperDetail",Params2);GridView2.DataSource=ds2;GridView2.DataBind();((Label)GridView2.HeaderRow.FindControl("Label28")).Text=((Label)GridView2.Rows[0].FindControl("Label8")).Text;SqlParameter[]Params3=newSqlParameter[2];Params3[0]=DB.MakeInParam("@PaperID",SqlDbType.Int,4,paperID);//试卷编号Params3[1]=DB.MakeInParam("@Type",SqlDbType.VarChar,10,"判断题");//题目类型DataSetds3=DB.GetDataSet("Proc_PaperDetail",Params3);GridView3.DataSource=ds3;GridView3.DataBind();((Label)GridView3.HeaderRow.FindControl("Label29")).Text=((Label)GridView3.Rows[0].FindControl("Label12")).Text;SqlParameter[]Params4=newSqlParameter[2];Params4[0]=DB.MakeInParam("@PaperID",SqlDbType.Int,4,paperID);//试卷编号Params4[1]=DB.MakeInParam("@Type",SqlDbType.VarChar,10,"填空题");//题目类型DataSetds4=DB.GetDataSet("Proc_PaperDetail",Params4);GridView4.DataSource=ds4;GridView4.DataBind();((Label)GridView4.HeaderRow.FindControl("Label30")).Text=((Label)GridView4.Rows[0].FindControl("Label17")).Text;}//提交试卷,生成成绩protectedvoidimgBtnSubmit_Click(objectsender,ImageClickEventArgse){intscore=0;intsinglemark=int.Parse(((Label)GridView1.Rows[0].FindControl("Label4")).Text);//取出单选题的每题分值foreach(GridViewRowdrinGridView1.Rows)//对单选题每题进行判断用户选择答案{stringstr="";if(((RadioButton)dr.FindControl("RadioButton1")).Checked){str="A";51 }elseif(((RadioButton)dr.FindControl("RadioButton2")).Checked){str="B";}elseif(((RadioButton)dr.FindControl("RadioButton3")).Checked){str="C";}elseif(((RadioButton)dr.FindControl("RadioButton4")).Checked){str="D";}if(((Label)dr.FindControl("Label3")).Text.Trim()==str)//将用户选择结果和答案进行比较{score=score+singlemark;}}intmultimark=int.Parse(((Label)GridView2.Rows[0].FindControl("Label8")).Text);//取出多选题每题分值foreach(GridViewRowdrinGridView2.Rows)//对多选题每题进行判断用户选择答案{stringstr="";if(((CheckBox)dr.FindControl("CheckBox1")).Checked){str+="A";}if(((CheckBox)dr.FindControl("CheckBox2")).Checked){str+="B";}if(((CheckBox)dr.FindControl("CheckBox3")).Checked){str+="C";}if(((CheckBox)dr.FindControl("CheckBox4")).Checked){str+="D";}if(((Label)dr.FindControl("Label7")).Text.Trim()==str)//将用户选择结果和答案进行比较{score=score+multimark;}}51 intjudgemark=int.Parse(((Label)GridView3.Rows[0].FindControl("Label12")).Text);//取出判断题每题分值foreach(GridViewRowdrinGridView3.Rows)//对判断题每题进行判断用户选择答案{boolj=false;if(((CheckBox)dr.FindControl("CheckBox5")).Checked){j=true;}if(j==bool.Parse(((Label)dr.FindControl("Label11")).Text.Trim())){score=score+judgemark;}}intfillmark=int.Parse(((Label)GridView4.Rows[0].FindControl("Label17")).Text);//取出填空题每题分值foreach(GridViewRowdrinGridView4.Rows){stringstr="";str=((TextBox)dr.FindControl("TextBox1")).Text.Trim();if(str==((Label)dr.FindControl("Label16")).Text.Trim()){score=score+fillmark;}}ScoresinsertScore=newScores();//创建Scores类对象insertScore.UserID=Session["userID"].ToString();//设置Scores对象的属性insertScore.PaperID=int.Parse(Session["PaperID"].ToString());insertScore.Score=score;if(insertScore.InsertByProc())//调用InsertByProc方法向数据库中插入成绩{if(score>=8)//根据成绩给出相应提示{Response.Write("alert('您太棒了!您的成绩为:"+score+"分!')");}elseif(score>=6){Response.Write("alert('合格!您的成绩为:"+score+"分!')");}else{Response.Write("alert('需要努力了!您的成绩为:"+score+"分!51 ')");}Panel1.Visible=true;}}protectedvoidimgBtnAnswer_Click(objectsender,ImageClickEventArgse){Response.Redirect("TestAnswer.aspx");}}4.6系统测试4.6.1测试环境服务器端:WindowsXPProSP2、IIS(5.1)、SQLServer2000个人版客户端:WindowsXPProSP2、360安全浏览器3.16正式版、IE7.04.6.2测试过程基本测试过程:使用考生、教师、管理员身份等在首页进行登录后进行在线考试,添加试题,添加试卷等全部功能的测试。并发行测试过程:同时使用多个用户登录,包括考生、教师、管理员,使用软件同时提交表单,进行按规定程序操作,尝试各个功能,检测系统对并发性事件的处理能力。容错性测试过程:在同一台计算机上登录不同权限用户访问同一页面,直接输入URL请求非法页面,检测显示情况。使用不同用户登录,尝试各种不正常操作,尝试进行越权操作,检测系统对非法操作的控制能力。具体模块测试采用黑盒测试,在根据需求分析中的测试要求,在概要设计中为每个模块指定了详细的测试计划,根据此测试计划,进行测试,并对对照测试结果和预期结果是否一致,测试计划如下:表4-1学生模块测试计划表测试程序测试方式操作预期结果在线考试黑盒测试开始考试显示考试结果成绩查询黑盒测试点击查询显示考生成绩单51 表4-2教师模块测试计划表测试程序测试方式操作预期结果考试设计黑盒测试添加、修改、删除试题添加、修改、删除试卷显示相应操作后结果考试管理黑盒测试添加、修改、删除考试进行人工阅卷显示相应操作后结果得到考生主观题分数统计分析黑盒测试点击查询显示相应统计结果表4-3管理员模块测试计划表测试程序测试方式操作预期结果信息管理黑盒测试对相应信息进行添加、删除、修改显示相应操作后结果考试管理黑盒测试对试题、试卷、考试信息进行添加、删除、修改显示相应操作后结果4.6.3测试结果基本测试:用户功能全部实现,完全满足应用要求。并发性测试:多用户同时登录时未出现不正常状态,服务器对不同用户请求进行分步处理。容错性测试:系统对非法请求进行限制,对非法操作进行正确提示,限制非法用户访问页面。模块测试:测试结果和预期结果基本一致,并在测试过程中对部分模块功能根据测试用户的要求,稍加修改,具体测试结果如表4-4所示。表4-4系统测试表模块测试对象测试结果考生管理模块在线考试测试通过成绩查询测试通过教师管理模块考试设计测试通过考试管理测试通过统计分析测试通过管理员模块管理信息管理测试通过考试管理测试通过4.6.4调试及回归测试1.添加学生添加学生时输入中文姓名,中文无法显示。51 图4-11添加学生错误页面经过查资料与研究得出中文无法显示是因为数据库只支持简体中文,而页面上的数据我们使用UTF-8字符集。将添加学生页面的字符集设置成中文简体,即设置CODEPAGE="936"。修改之后正确的页面如下:图4-12添加学生正确页面51 4.7系统评估该系统是面向学校以及社会各种形式的在线考试,所以所设置的模块基本可以满足考试的基本要求,尽可能的贴近以往的考试形式。其中涉及到管理员管理信息、教师管理、学生管理。本系统使用身份验证机制,能更好的保护页面被非法的访问。当用户登录时,用户必须要有有效的身份。根据用户的类型不同其访问权限也有所不同,按权限可分为:管理员、教师、考生。通过个人的用户名和密码,服务器经过核实后,将引导正确登录到系统上的用户进入相关页面。4.8小结本章详细介绍了系统实现的开发环境配置,还介绍了各种界面和数据库的开发,并附上了几个重要的程序编码,最后对本系统做了系统测试和评估51 第五章总结5.1研究内容的总结本文利用Ajax技术改进现有的在线考试系统,实现了在线考试的B/S系统,即能实现用户的网上在线考试的功能,又不需要用户安装额外的客户端软件。新的考试系统具有准确计时、快捷、安全、方便等优点,从根本上改变了原有在线考试系统的多种弊端。论文详述了一个基于Web的在线考试系统的开发工作。通过使用ASP的先进特性和框架提供的强大功能,开发了一个可以通用的考试系统,具有以下特点:(1)只要符合题库的规范,任何科目的考试都可以在这个系统上执行。(2)自动化的组卷可以减轻教师的工作强度,并实现考试的客观、公正性,提高成绩的准确性。(3)以往的主观题型的测试都要单独出题,然后是试卷处理等一系列繁琐的工作,这些都将耗费大量的人力物力,而且效率低下、周期长,还容易出现考试环节出错、考生作弊的现象。应用了考试系统后,以上的很多环节都节省了,教师在计算机前阅卷效率相当高,不用反复整理试卷、累加得分、抄写成绩单等;只要按自己权限范围评阅、给分、保存结果就行,效率提高很多,周期也大大减短,从根本上改变了原有在线考试系统的多种弊端。5.2主要创新点(1)在线考试系统使用手工组卷和自动组卷相结合的方式。在组卷模块中,结合所选试题的参数,可用随机优化组卷的方法自动组卷,也可根据实际情况,对试题库试题进行手工抽取,生成预定试卷。生成试卷后并可预览,灵活的组卷方法有利于满足不同方面的需要。(2)自动阅卷和人工阅卷相结合的功能考试结束后,客观题部分由系统动自动阅卷,主观题部分由教师网上阅卷后提交成绩,系统对两部分成绩汇总后存入数据库中,供学生查询。51 5.3存在的不足点及今后的研究方向本系统只是初步实现了考试的基本模块,要真正投入使用还必须经过更为严格细致的测试,系统的不足之处主要表现在:(1)由于国家尚未有相应的固定标准和规范,试题库的建设还不够完善,应用范围比较狭窄,试题类型相对还比较单调。(2)现在的系统只限于客观题的自动阅卷,主观题需教师手工完成,做到全面自动阅卷还有一定的差距。(3)本系统的统计分析功能比较薄弱,只是做了一些基本的统计分析,这方面有待于以后改善和加强。(4)由于条件有限,系统的开发具有一定的模拟性质,无法在实际的应用环境观察它的运行状况。(5)系统的安全性方面仍存在较大的欠缺,例如,突发故障的恢复等方面没有得到更好的解决。因此,在今后的工作中,对本系统还应在一些方面予以改进,以促进师生之间更好的交流。51 致谢首先,要向我的导师周建芳老师致以衷心的感谢!在论文撰写工作中,周建芳老师对我严格要求,认真指导,给予了很多鼓励和帮助,让我从中学到了许多难得的经验。周建芳老师对学生认真负责而又和蔼可亲,对学术一丝不苟的高尚品德和人格魅力深深感动了我,也将影响我今后学习和工作的态度。其次,感谢计算机系各位领导和老师们的指导和帮助!最后,谨向所有关心和帮助过我的老师、同学和家人表示我最真诚的谢意!参考文献[1]吴静霞.基于ASP/ADO在线考试系统的设计与实现[J].沙洲职业工学院学报,2008,11(1):1[2]赛奎春.ASP信息系统开发实例精选[M].北京:机械工业出版社,2005年6月:176-177[3]谢骏.数值分析在线考试系统.学士学位论文,西南石油大学,2007:1-2[4]李经一.基于Web的在线考试系统设计与实现.硕士学位论文,大连理工大学,2008:7[5]谢歆.基于B/S模式的在线考试系统的研究与实现.硕士学位论文,中山大学,2009:3[6]刘文.基于Internet的网络考试系统.硕士学位论文,华南理工大学,2005:1-2[7]樊海玮。基于WEB的网络化在线考试系统研究与实现.硕士学位论文,长安大学,2006:9-11[8]钟建科.基于B/S模式的在线考试系统的设计与实现.硕士学位论文,华中科技大学,2006:5[9]刘明明,许勇.基于Web的在线考试系统分析与评价[J].管理观察,2009(5):235[10]王琪,张冬梅.试论在线考试系统的设计与实现[J].教育信息化,2002(11):37-38[11]何冬梅,黄志良.基于Web的在线考试系统的设计与实现[J].福建电脑,2008(9):140-14151 [12]汪作文,万彪.论构建基于Web的在线考试系统[J].科技信息(学术研究),2008(16):175[13]陈晓君.基于Ajax技术的在线考试系统的研究.硕士学位论文,中国海洋大学,2009:1-3[14]庞根明,原锦明.基于WEB的在线考试系统[J].科学之友:B版,2009(10):121-122[15]吴凡,陈梓剑,温绍堂,王锡标.在线考试系统在教学实施中的经验与建议[J].科教文汇,2008(8):58-59[16]刘勃妮,李国栋.智能在线考试系统的研究与应用[J].科技资讯,2009(26):189-190[17]苏新宁,吴鹏等.电子政务技术.国防工业出版社,2003:14-40[18]孙东海.ASP技术的特点及应用.胜利油田师范专科学报[J].2003(4):52-54[19]Mogehee,MicrosoftSQLServer7.0使用详解,机械工业出版社[20]DAVECRANE,ERICPASCARELLO,DARRENJAMES.AjaxinAction[M],ManningPublications,2005[21]JESSEJAMESGARRETT.Ajax:ANewApproachtoWebApplications[J].2005[22]ROBERTD,HofinSanMateo,Calif.Ajax:HowToWeaveAFaster[23]王福全.基于Ajax技术的网页更新设计与实现.现代商贸工业.2008,20(1)[24]RogerSPressman《SoftwareEngineeringFifthEdition》清华大学出版社2002[25]EthanCeramiandO’Reilly《WebServicesEssentials》电子工业出版社200351

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭