基于VB的在线考试系统.docx
芜湖职业技术学?t毕业备文题目:基于VisualBasic的在线考试系统院系名称:信息工程系专业班级:09级计算机应用2班学生姓名:张勇学号:90401234指导教师:陈万顺2011年11月15日摘要随着网络的普及和对教育的重视,各院校各学科的网上考试都具有了必要的使用环境。但是,目前国内的一些网络教学系统的主要功能是教学,不能单独作为考试平台,通用性差,而且系统中对主观题的评阅多是采用人工评阅方式,没有实现真正意义上的自动评分。另一方面,我们所在院校的计算机根底课己开设了多年,但尚在沿用传统的考试形式或使用单机版的考试系统。网上考试系统的设计与实现就是基于上述目的开发设计的。本系统采用c/s架构作为系统的总体结构,以数据库技术为依托,利用微软的ADO技术,实现了对数据库的访问和查询。该设计实现了随机抽题组卷、在线考试、题库管理。能够对客观题在线评分。学生用学号登录成功后,进入考试页面,完成考试后,自动给出考试成绩。网上考试系统本身是一个很大的系统,尤其试题库局部需要许多人的参与以及大量的投入才能建成。该系统虽然仅仅是完成计算机文化根底和操作系统课程的考试,但却具有良好的实用性与通用性,提供友好的人机界面,具有较好的可扩充性和开放性。关键词:在线考试,ADODC,Winscok目次第一章引言21.1 开发背景21.2 开发意义4第2章系统开发工具及开发平台42.1 开发工具及平台42.2 开发工具的简单介绍5第3章系统分析73. 1系统及需求分析73.2系统功能简介8第4章系统总体设计94. 1系统架构设计104. 2系统功能模块划分10第5章数据库设计115. 1总体设计116. 2表设计Il第6章系统功能详细设计及实现126.1数据库驱动连接局部127. 2试题抽取137.1 网络通信157.2 评分模块16第七章系统界面总览178. 1效劳器端179. 2客户端局部18总结18致谢18第一章引言1.1 开发背景网络技术的开展使得考试的技术手段和载体发生了革命性的变化,网络的开放性、分布性的特点和基于计算机网络的巨大的计算能力使得考试突破了时间和空间的限制。与传统考试模式相比,在线考试具有无可比较的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,减小了人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。对于一些课程来说,随着考生数量的增加,教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以防止传统手工考试的缺乏。与传统考试模式相比,网上考试渗入了更多的技术环节,对实现平安性的途径、方法也提出了更高的技术要求。通过网络来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现教考别离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理效劳,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师的工作强度。传统考试要求老师出试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。在线考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程。本文以局域网网络为平台,研究了基于C/S架构考试系统的设计与开发,包括系统需求分析和系统功能设计以及数据库设计。重点阐述了用户登录模块、在线考试模块、试卷管理模块、用户管理模块、成绩管理模块的设计。1.2 开发意义在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试那么是一个很重要的方向。基于C/S技术的网络考试系统可以借助于遍布全球的网络平台进行,大大丰富了考试的灵活性。试卷可以根据题库中的内容即时生成,可防止考试前的压题;而且可以采用大量标准化试题,从而使用计算机阅卷,大大提高阅卷效率;还可以直接把成绩送到数据库中。所以现在较好的考试方法为网络考试,试题内容放在效劳器上,考生通过姓名、准考证号码进行登录,考试答案也存放在效劳器中,这样考试的公平性、答案的平安性可以得到有效的保证。因此,采用网络考试方式将是以后考试开展的趋势。近几年来,借鉴兴旺国家的成功经验,结合我国的实际情况,伴随着网络应用的不断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。人们迫切要求利用网络技术进行在线考试,来提高了考试的质量,突出公正和客观性,减轻组织及保障工作的负担,提高工作效率。于是许多教育教学类的课程在线考试软件应运而生,高等学校,企事业单位也都纷纷组织研究此类应用的解决方案,并研制开发了大量的不同类型计算机在线考试软件,也推出了一批优秀的在线考试软件产品,比方全国计算机等级考试软件、职称计算机能力考试等等。有力的推动了我国网络化在线考试的开展水平,并积累了大量有价值的经验。第2童系统开发工具及开发平台2.1 开发工具及平台本系统采用VB语言开发制作,用VisualStudio6.0和SQLSERVER2000作为开发工具,用软件数据库理论设计数据库,SQL语言进行数据库查询、插入、删除等操作,设计出能实现各个功能模块的应用程序(C/S)模式。2.2 开发工具的简单介绍ViSUaIBasic6.OVisualBasic6.O是由Microsoft公司推出的开发工具VisualStudio6.0套件中的一员、是近年来在国内外得到迅速推广应用的可视化程序设计语言,具有简单易学,功能强大,软件费用支出低,见效快等特点.它提供了开发Windows应用程序最迅速,最简捷的方法,尤其适合WindoWS平台下的小型软件的开发与编写。 B6.0所提供的开发环境与WindoWS9x,WindowsNT4.0或WindOWSXP具有完全一致的界面,使用更方便,其代码效率已到达VisualC+的水平.在面向对象程序设计方面,6.0版的VB全面支持面向对象的程序设计,包括数据抽象,封装,对象与属性,类与成员,继承和多态等.SQLServer2000MicrosoftSQLServer2000是一个高性能的客户端/效劳器结构的关系数据库管理系统(RDBMS,RelationalDatabaseManagementSystem)。SQLServer2000是为了支持高容量的事务处理以及数据仓库和决策支持系统(比方销售分析应用)而设计的。它运行在MiCrOSoftWindOWSNT4或MiCroSoftWindows2000Server_t一基于intel处理器的网络。可以把SQLServer2000作为一种个人桌面数据库系统安装在运行WindowNTWorkstation4Windows2000ProfessionalsWindows98和WindowsMiIlenniumEditiOn(Me)的机器上。可以使用相同的CD来安装任何一个SQLServer2000的效劳器版本或个人版本。访问数据库:ADO在数据库程序设计方面,使用ADO作为数据库存取的接口。ADO采用新颖的对象观念,专为MiCroSoft.NET平台量身打造,采用离线存取模式,可供多人同时存取,特别适合在Internet环境中使用。ADO.NET是微软新一代.NET数据库的存取结构,ADO.NET是数据库和数据源间沟通的桥梁,主要提供一个面向对象的数据存取架构,用来开发数据库应用程序。DO.NET具有以下优越性: DO.NET是在.NETFramework上存取数据库的一组类库,它包含了.NETDataProVider(数据提供者)以进行数据库的连接与存取,通过DO.NET,数据库程序设计人员能够很轻松地使用各种对象,来存取符合自己需求的数据库内容。换句话说,ADO.NET定义了一个数据库存取的标准接口,让提供数据库管理系统的各个厂商可以根据此标准,开发相应的.NETDataProvider,如此编写数据库应用程序人员不必了解各类数据库底层运作的细节,只要学会ADO.NET提供对象的架构,便可轻易地存取所有支持NETDataProvider的数据库。 DO.NET是应用程序和数据源之间沟通的桥梁。通过DO.NET提供的对象,再配合SQL语法就可以存取数据库内的数据,而且但凡通过ODBC或OLEDB接口所能存取的数据库(如:Dbase、FoXPrExcel、ACCeSs、SQLServerOraCIe等),也可通过ADO.NET对象来存取。 ADO.NET可提高数据库的延展性。ADO.NET可以将数据库内的数据以XML格式传送到客户端(Client)的DataSet对象中,此时客户端可以和数据库效劳器联机,当客户端程序对数据进行新增、修改、删除等动作后,再和数据库效劳器联机,将数据送回数据库效劳器端完成更新的动作。如此一来就可以防止客户端和数据库效劳器联机时,当客户端不对数据库效劳器作任何动作时,却一直占用数据库效劳器的资源。此种结构使得数据处理有相互连接的双层结构,朝多层结构开展,因而提高了数据库的延展性。网络通信WinsockWinsock是Windows下网络变成的标准,是由Microsoft公司在BSDUNIX中流行的Socket接口为范例定义了一套MicrosoftWindows下网络编程接口。它不仅包含了人们所熟悉的BerkeIeySOCket风格的库函数;也包含了一组针对W'indows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。使用WinSoCk的软件研发人员不需要了解网络知识,也不需要关心数据在网络上传送过程。需要的仅仅是初始化网络的通信方式和协议,通过Winsock提供的一系列属性方法即可完成高效率的网络数据传输。方便了软件开发的周期和难度。本系统选用了SQL数据库,它具有简单易学,操作方便的特性。如果需要,还可以稍加修改,将数据库与应用程序别离,采用客户端/效劳器方式,将数据库放置到效劳器端,此软件作为客户端应用程序,可对数据库进行联机存取。第3章系统分析3.1 系统及需求分析系统需求通过调查,要求系统需要有以下功能:(1)考试模块:考试在登录界面内选择不同的准考证号实现考生信息的识别,从效劳器上获取试卷信息,完成答卷并提交试卷(2)管理模块:可以维护学生的个人信息。可以增加,删除,修改试题及查看学生的成绩信息.能够抽取试题并发送试卷到客户端,对客户端发送的试卷答案评分并记录3.1.2可行性分析可行性分析是在系统调查的根底匕针对新系统的开发是否具有必要性和可行性,对新系统的开发从技术、经济、社会的方面进行可行性分析和研究,以防止投资失误,保证新系统的开发成功。可行性分析的目的就是用最小的代价在尽可能短的时间内确定问题是否能解决。该系统的可行性分析包括如下几个内容:(1)技术方面的可行性:它主要分析技术条件是否顺利完成开发工作,软硬件是否满足开发者的需要等。其中,软件方面在线考试需要的软件环境都已具备,数据库效劳器方面那么有SQLServer2000,够处理大量数据,同时保持数据的完整性并提供许多高级管理功能,其灵活性、平安性、易用性为数据库编程提供了良好的条件。(2)经济方面的可行性:主要是对这项经济效益进行评价,本系统作为一个实验性的工程,无需开发经费并且这系统实施后可以显著提高考试效率,有助于学院实行网络管理化。(3)操作方面的可行性:目前,大学校园网络覆盖了教学区和学生区的主要建筑物,从而满足各学院、各职能部门、各直属单位上网要求,学校良好的网络设施为开发使用无纸化考试网络系统提供了坚实根底。综上所述,此系统开发目标已经明确,在经济和技术等方面可行,并且投入少见效快。2. 2系统功能简介效劳器端部考号管理模块考号理模块包括查看信息、更改信息、删除信息等操作。如图3-1所示。考号管理查询信息修改/删除查看成绩图3-1考号管理3. 22题库管理局部题库管理包括选择题管理,判断题管理。通过题库管理对各种类型的试题进行添加、删除、修改以及查询各种类型试题的管理功能均类似,主要的操作有:添加试题、删除试题、修改试题和查看试题。如图3.2所示。图3-2题库管理效劳管理效劳管理主要是提供考试环境,包括:试题抽取,试卷发放,客户端监测以及对提交的试卷答案评分操作等。是整个考试系统的核心。客户端局部4. 2.4系统登录局部考生输入自己的准考证号,发送给效劳器。效劳器端检查是否存在该考号及考试状态。然后决定是否进入考试界面5. 2.5考试界面模块主要由题目显示局部。答题局部和答案显示局部。主要接收并显示从效劳器上发送过来的题目。填入答案。提交给效劳器评分。第4章系统总体设计4.1系统架构设计本系统采用VB应用程序的典型系统架构模式:数据库一一数据访问接口一一业务逻辑层。数据库是应用系统的根底,它保存系统中所有数据。数据接口层封装对数据库的操作,如创立数据库连接、翻开数据库连接、执行存储过程和关闭数据库连接等。在本系统中,各个窗口(Form)通过数据接口层对数据库进行操作。整个系统架构如图47所示图4-1系统架构6. 2系统功能模块划分从前面章节可以看出,本系统实现了完整的在线考试功能,可以根据这些功能设计出系统中的功能、模块。系统中的各个模块划分如图4.2所示:图4-2系统总体模块设计第5章数据库设计5.1 总体设计考虑到在线考试系统的实际需要,本系统需要的数据至少包括不同学生考号数据以及选择题数据、判断题数据等。不同考生的用户数据主要包括考生准考证号,考生名名,成绩,是否考试等数据;试题数据主要包括试题号、试题题目、试题选项、参考答案等数据.5.2 表设计准考证号表KS_USER_NUMBERKSUSERNUMBER表包括学生信息数据,如准考证号、姓名、考试情况、考试成绩。表的字段说明如表5.1所示。5-1准考证号表选择题数据表KS_XZTKSXZT包括选择题的信息,如题号、题目、选项、答案等,表的字段说明如表5-2所示表5-2选择题数据表判断题数据表KS_PDTKSPDT包括判断题的信息,同KS-XZT表一样,包含了题号、选项、答案等.表的字段说明如表5-3所示表5-3判断题数据表第6章系统功能详细设计及实现6.1 数据库驱动连接局部数据库连接和驱动利用的是微软提供的DSN数据源接口,数据源选择如图6-1所示,连接属性如图6-2o利用Microsoftaddoc控件连接并操作数据源,局部代码片段如下:PublicmydbAsDODB.Connection'声明ADo.Connection公共对象PublicreAsADODB.Recordset,声明AD0.ReCordSl公共对象PublicgdAsDODB.RecordsetPublic cmd As ADODB. Command,声明ADO. Command公共对象PublicImpAsDODB.RecordsetPublic PCname As Siring本机名Dim DBname As String'数据库名Dim dbsqltext AS string'连接字符串PCname="YONG-PC"DBnatne="KSRJ"DBSQLTEXT=wProvider=SQLOLEDB.1;IntegratedSecurity=SSPI:PersistSecurityTnfo=False;InitIalCatalog="&DBname&"DataSource="&PCnameSetmydb=NewADODB-Connection'创立ADODB.Connection实例Setre=NewADODB.Recordset'创立ADODBRecordset实例Setcmd=NewADODB.Command,创立ADODB.Comicind实例mydb.ConnectionString=DBSQLTEXT'设定连接参数rydb.Open'翻开数据库cmd.ActiveConnection=mydb绑定1)OL)B.Command对象re.CursorLocation二HdUSeCIienl,连接模式为客户端模式re.CursorType=adOpenStatic'静态游标re.LockType-adLockBatchOptimistic,乐观锁定通过上述代码,数据库可成功被连接。同时数据表己记录集的形式存储在“re"数据对象实例中。软件调用数据表即可从re中直接提取。图67数据源选择图6-2选择数据库6.2试题抽取试题抽取要做到随机、公平、公正因此不能采取人工干预的方式,需用系统随机抽取。这一局部的设计主要思想是先生成一个长度为所需题目数的随机数组,数组中的每个数在1到题库中最大的题目数之间而且不能重复,利用这个随机数组来选择抽取的题目。对于随机数的产生。由于Rnd()函数生成的是伪随机数。无法满足要求,这里采用毫秒级的时间作为种子,对记录集里最大题号求余.先利用Timero去得系统当前时间,取出其中毫秒时间。求余后存入随机数数组。代码片段如下DimctASIntegerDimrndptsIntegerDimsend.strAsString,试题缓冲区DimrndtmpASInteger,存取lfi机变量值Dimrndtmp.ptsInteger'存放随机数数组rnd_tmp_pt=1'数组指针rnd_pt=1选择题抽取Do'用亳秒除以最大记录数1.op:rndtmp=TimerO*1000Modre.RecordCountDo'去重复Ifrndtmp=rndarry(rndtmppt)ThenGoToLopEndIfrndtmp_pt=rndtmp_pt+11.oopUntilrndtmppt>rndptrnd_tmp_pt=1rndarry(rndpt)=rndtmp'存入数组rnd_pt=rnd_pt+11.oopUntilrndpt>30rnd_pt=1rnd_tmp_pt=1'判断题抽取Do1.o2:rndImP=TimerO*1000Modre.RecordCountDoIfrnd_tmp=rndpdtarry(rndtmppt)ThenGoToLop2EndIfrnd_tmppt=rndImppt+11.oopUntilrndtmp_pt>rndptrndtmppt=1rnd_pdt_arry(rndpt)=rnd_tmprndPt=rndpt+11.oopUntilrnd_pt>206. 3网络通信网络通信局部采用WinSOCk通用控件。采用TCP传输模式,保证了数据的可靠正确的传输。本地端口和远程端口均由程序运行是代码指定Winsock控件的属性设置如图6-3图6-3Winsock控件属性设置Winsock的传输模式为"透明传输"。即它支付负责OSl参考协议中传输层及其以下层的协议,没有设计到表示层及会话层。因为软件中需采用协议来标识所传输的数据的类型。本程序采用的是“包头标识"的方法来标识所传输的数据的类型。将每次传输的数据串前端打上5个二进制标志位。利用这些标志位来区分数据类型。表6T数据串标志头表(局部)头标志字符串数据类型OOOlO发送准考证号信息OOOll准考证号回应信息OOlll无考证号时回应信息数据的传输只需调用Winsock控件的send方法。收到数据时触发DataArrival事件.每次发送数据前需检查控件的连接状态。PCname="YONG-PC"'设置效劳器名称PCip=net.LocalIP'获取效劳器本地IPnet_pt=1发送缓冲区指针net.LocalPort=2023,本地端口net.Listen侦听端口PrivateSubnet-CloseO'当连接关闭时重新翻开并侦听连接Ifnet.StateOsckClosedThennet.Closenet.ListenEndSubPrivateSubnetConnectionRequest(ByValrequestIDAsLong)Ifnet.StateOsckClosedThennet.Closenet.AcceptrequestID有连接请求是运行连接EndSubPrivateSubnetDataArrival(ByValbytesTotalAsLong)DimiAsIntegeri=1cj=Onet.GetDatanet_buff'有数据到达时先存入缓冲区DimaccstrASStringaccstr=Mid(netbuff,6,8),读取数据串标志头6.4评分模块评分系统由电脑全自动完成,首先读取客户端发送过来的答题信息,再与从数据集里面取出来的答案相比较,答案正确那么总分加4分(选择题)或2分(判断题)。评分完毕存入淮考证号数据表KS_USER一NUMBER。评分局部代码如下IfMid(netbuff,1,5)=*lim"Then'如果标志头为"11111”Do那么为答题信息数据串IfMid(netbuff,5+i,1)=XZldaarry(i)Thencj=cj+4选择题答案正确那么加分EndIfi=i+1ILoopUntili>20i=1DoIfMid(netbuff,25+i,1)=dt_da_arry(i)Thencj=cj+2EndIfi=i+21.oopUntili>10cmd.Comm<indText=*UPDATEKSUSERNUMBERSET已考试二1,成绩二"&cj&"WHERE准考证号二"&xhIfre.StateOadStateClosedThenre.Closere.OpenCmdaj=MSgBox("评分完成,单击结束退出系统",VbOKOnly+32,"提示")endif第七章系统界面总览6.1 效劳器端图77效劳端主界面图7-2考号管理界面图7-3选择题题库管理7-4判断题题库管理7-5考试效劳界面7. 2客户端局部图7-6登录界面图7-7阅卷答题界面总结一个完备的在线考试系统可以使用户在学习过后及时检验自己的学习效果,以发现自己的缺乏,使得学习效率得到很大提高。在线考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。只要形成一套成熟的题库就可以实现考试的自动化。这样一来,教师所要做的只是精心设计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,这说明其经济性是相当可观的。为了适应新形势的开展,作者进行了一次在线考试系统的探索。并且在本文中详细论述了在线考试系统的设计与实现,该系统根本实现了需求分析中的功能要求,其中考生信息可以直接输入得来,考生成功登录后进入考试界面,考完后对考试题自动评分、存档。本系统还有许多方面尚未完善。系统对操作人员录入的错误数据和数据本身的错误所造成数据的不完整性,系统的约束力较弱,在系统的更进一步的实现阶段,应加强数据的完整性约束提高系统数据的正确性和相容性,以及系统的容错性,加强对用户输入端的数据进行检验。另外,本系统只提供了一些根本的查询与删除、修改功能。这些功能还不能完全满足大家的需求。为了揭求教学过程的全貌,还需要进一步地引入新的测量指标,并详细阐述它在教育中所代表的含义,如知识点的掌握度、频数分布图等等,为了给没有教育测量背景的教师和学生参考,还将制作测量指标的应用案例,说明如何在实际教学过程中应用这些指标。致谢通过这段时间的毕业设计,使我对软件开发有了更深一层的了解。经过这些天的编程与不断调试,我们的努力终于有了成果。在这次的毕业设计中,我们理论与实际结合,获取需求分析结果,对后期的软件设计有一定的帮助作用。在数据库设计阶段,由于考虑问题不周到,所以到后期的软件调试时,发现设计出错,需要重新设计。所以,下次的软件设计,就可以借鉴这次的经验,对我也有一定的帮助作用。这次我受益匪浅。给我以后的路也有一定的指导作用。在此向所有在此次毕业设计中给予我们关心、支持和帮助的老师、朋友们致以最诚挚的谢意!在整个设计过程中,很多老师、同学给了我们莫大的帮助。不能忘记,在我遇到重重困难时指导老师的谆谆教导;不能忘记,许多同学给予我们的支持和无私的帮助。我对大家的感谢之情难以言表。我深知,只有不断的拼搏进取,不断的前进,才是对大家最好的感谢。向我们尊敬的指导教师一陈万顺老师致谢!感谢陈老师在设计过程中不厌其烦的关心我们、指导并且给了我们一些实质性的建议和意见,以及对设计小组全体成员的关心和教诲。非常感谢陈老师的教导,这才使的我们的软件功能更强大,界面更加友好,操作更加简捷、容易。同时还要向给予我们大力协助的同学致谢!最后,感谢各位评阅论文以及参加论文辩论的老师!参考文献1 .冯建华周立柱郝小龙编著.数据库系统设计与原理.第2版.清华大学出版社,2007.6:163-205页2 .赛奎春主编.ASP工程应用于工程实践.修订版.机械工业出版社,2005.9:97-135页3 .林邦杰.程序设计入门教程.第三版北京:清华大学出版社,2004.3:162-229页