基于VB的在线考试系统设计与实现_第1页
基于VB的在线考试系统设计与实现_第2页
基于VB的在线考试系统设计与实现_第3页
基于VB的在线考试系统设计与实现_第4页
基于VB的在线考试系统设计与实现_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

PAGE1基于VB的在线考试系统设计与实现一、引言1、开发背景网络技术的发展使得考试的技术手段和载体发生了革命性的变化,网络的开放性、分布性的特点和基于计算机网络的巨大的计算能力使得考试突破了时间和空间的限制。与传统考试模式相比,在线考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,减小了人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。对于一些课程来说,随着考生数量的增加,教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。通过网络来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师的工作强度。传统考试要求老师出试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。在线考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程。本文以局域网网络为平台,研究了基于C/S架构考试系统的设计与开发,包括系统需求分析和系统功能设计以及数据库设计。重点阐述了用户登录模块、在线考试模块、试卷管理模块、用户管理模块、成绩管理模块的设计。2、开发意义在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试则是一个很重要的方向。基于C/S技术的网络考试系统可以借助于遍布全球的网络平台进行,大大丰富了考试的灵活性。试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机阅卷,大大提高阅卷效率;还可以直接把成绩送到数据库中。所以现在较好的考试方法为网络考试,试题内容放在服务器上,考生通过姓名、准考证号码进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,采用网络考试方式将是以后考试发展的趋势。近几年来,借鉴发达国家的成功经验,结合我国的实际情况,伴随着网络应用的不断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。人们迫切要求利用网络技术进行在线考试,来提高了考试的质量,突出公正和客观性,减轻组织及保障工作的负担,提高工作效率。于是许多教育教学类的课程在线考试软件应运而生,高等学校,企事业单位也都纷纷组织研究此类应用的解决方案,并研制开发了大量的不同类型计算机在线考试软件,也推出了一批优秀的在线考试软件产品,比如全国计算机等级考试软件、职称计算机能力考试等等。有力的推动了我国网络化在线考试的发展水平,并积累了大量有价值的经验。二、系统开发工具及开发平台1、开发工具及平台本系统采用VB语言开发制作,用VisualStudio6.0和SQLSERVER2000作为开发工具,用软件数据库理论设计数据库,SQL语言进行数据库查询、插入、删除等操作,设计出能实现各个功能模块的应用程序(C/S)模式。2、开发工具的简单介绍(1)VisualBasic6.0 VisualBasic6.0是由Microsoft公司推出的开发工具VisualStudio6.0套件中的一员、是近年来在国内外得到迅速推广应用的可视化程序设计语言,具有简单易学,功能强大,软件费用支出低,见效快等特点.它提供了开发Windows应用程序最迅速,最简捷的方法,尤其适合Windows平台下的小型软件的开发与编写。VB6.0所提供的开发环境与Windows9x,WindowsNT4.0或WindowsXP具有完全一致的界面,使用更方便,其代码效率已达到VisualC++的水平.在面向对象程序设计方面,6.0版的VB全面支持面向对象的程序设计,包括数据抽象,封装,对象与属性,类与成员,继承和多态等.(2)SQLServer2000MicrosoftSQLServer2000是一个高性能的客户端/服务器结构的关系数据库管理系统(RDBMS,RelationalDatabaseManagementSystem)。SQLServer2000是为了支持高容量的事务处理以及数据仓库和决策支持系统(比如销售分析应用)而设计的。它运行在MicrosoftWindowsNT4或MicrosoftWindows2000Server上--基于intel处理器的网络。可以把SQLServer2000作为一种个人桌面数据库系统安装在运行WindowNTWorkstation4、Windows2000Professional、Windows98和WindowsMillenniumEdition(Me)的机器上。可以使用相同的CD来安装任何一个SQLServer2000的服务器版本或个人版本。(3)访问数据库:ADO在数据库程序设计方面,使用ADO作为数据库存取的接口。ADO采用新颖的对象观念,专为Microsoft.NET平台量身打造,采用离线存取模式,可供多人同时存取,特别适合在Internet环境中使用。ADO.NET是微软新一代.NET数据库的存取结构,ADO.NET是数据库和数据源间沟通的桥梁,主要提供一个面向对象的数据存取架构,用来开发数据库应用程序。ADO.NET具有下列优越性:ADO.NET是在.NETFramework上存取数据库的一组类库,它包含了.NETDataProvider(数据提供者)以进行数据库的连接与存取,通过ADO.NET,数据库程序设计人员能够很轻松地使用各种对象,来存取符合自己需求的数据库内容。换句话说,ADO.NET定义了一个数据库存取的标准接口,让提供数据库管理系统的各个厂商可以根据此标准,开发相应的.NETDataProvider,如此编写数据库应用程序人员不必了解各类数据库底层运作的细节,只要学会ADO.NET提供对象的架构,便可轻易地存取所有支持.NETDataProvider的数据库。ADO.NET是应用程序和数据源之间沟通的桥梁。通过ADO.NET提供的对象,再配合SQL语法就可以存取数据库内的数据,而且凡是通过ODBC或OLEDB接口所能存取的数据库(如:Dbase、FoxPro、Excel、Access、SQLServer、Oracle等),也可通过ADO.NET对象来存取。ADO.NET可提高数据库的延展性。ADO.NET可以将数据库内的数据以XML格式传送到客户端(Client)的Dataset对象中,此时客户端可以和数据库服务器联机,当客户端程序对数据进行新增、修改、删除等动作后,再和数据库服务器联机,将数据送回数据库服务器端完成更新的动作。如此一来就可以避免客户端和数据库服务器联机时,当客户端不对数据库服务器作任何动作时,却一直占用数据库服务器的资源。此种结构使得数据处理有相互连接的双层结构,朝多层结构发展,因而提高了数据库的延展性。(4)网络通信WinsockWinsock是Windows下网络变成的规范,是由Microsoft公司在BSDUNIX中流行的Socket接口为范例定义了一套MicrosoftWindows下网络编程接口。它不仅包含了人们所熟悉的BerkeleySocket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。使用Winsock的软件研发人员不需要了解网络知识,也不需要关心数据在网络上传送过程。需要的仅仅是初始化网络的通信方式和协议,通过Winsock提供的一系列属性方法即可完成高效率的网络数据传输。方便了软件开发的周期和难度。本系统选用了SQL数据库,它具有简单易学,操作方便的特性。如果需要,还可以稍加修改,将数据库与应用程序分离,采用客户端/服务器方式,将数据库放置到服务器端,此软件作为客户端应用程序,可对数据库进行联机存取。三、系统分析1、系统及需求分析(1)系统需求的功能模块考试模块:考试在登录界面内选择不同的准考证号实现考生信息的识别,从服务器上获取试卷信息,完成答卷并提交试卷.管理模块:可以维护学生的个人信息。可以增加,删除,修改试题及查看学生的成绩信息.能够抽取试题并发送试卷到客户端,对客户端发送的试卷答案评分并记录(2)可行性分析可行性分析是在系统调查的基础上,针对新系统的开发是否具有必要性和可行性,对新系统的开发从技术、经济、社会的方面进行可行性分析和研究,以避免投资失误,保证新系统的开发成功。可行性分析的目的就是用最小的代价在尽可能短的时间内确定问题是否能解决。该系统的可行性分析包括如下几个内容:技术方面的可行性:它主要分析技术条件是否顺利完成开发工作,软硬件是否满足开发者的需要等。其中,软件方面在线考试需要的软件环境都已具备,数据库服务器方面则有SQLServer2000,够处理大量数据,同时保持数据的完整性并提供许多高级管理功能,其灵活性、安全性、易用性为数据库编程提供了良好的条件。经济方面的可行性:主要是对这项经济效益进行评价,本系统作为一个实验性的项目,无需开发经费并且这系统实施后可以显著提高考试效率,有助于学院实行网络管理化。操作方面的可行性:目前,大学校园网络覆盖了教学区和学生区的主要建筑物,从而满足各学院、各职能部门、各直属单位上网要求,学校良好的网络设施为开发使用无纸化考试网络系统提供了坚实基础。综上所述,此系统开发目标已经明确,在经济和技术等方面可行,并且投入少见效快。2、系统功能简介(1)服务器端部考号管理模块考号理模块包括查看信息、更改信息、删除信息等操作。如图3.1所示。考号管理考号管理查询信息 修改/删除查看成绩图3.1考号管理题库管理部分题库管理包括选择题管理,判断题管理。通过题库管理对各种类型的试题进行添加、删除、修改以及查询.各种类型试题的管理功能均类似,主要的操作有:添加试题、删除试题、修改试题和查看试题。如图3.2所示。题库管理题库管理选择题管理判断题管理添加删除修改添加删除修改图3.2题库管理服务管理 服务管理主要是提供考试环境,包括:试题抽取,试卷发放,客户端监测以及对提交的试卷答案评分操作等。是整个考试系统的核心。(2)客户端部分系统登录部分考生输入自己的准考证号,发送给服务器。服务器端检查是否存在该考号及考试状态。然后决定是否进入考试界面.考试界面模块主要由题目显示部分。答题部分和答案显示部分。主要接收并显示从服务器上发送过来的题目。填入答案。提交给服务器评分。四、系统总体设计1、系统架构设计本系统采用VB应用程序的典型系统架构模式:数据库——数据访问接口——业务逻辑层。数据库是应用系统的基础,它保存系统中所有数据。数据接口层封装对数据库的操作,如创建数据库连接、打开数据库连接、执行存储过程和关闭数据库连接等。在本系统中,各个窗口(Form)通过数据接口层对数据库进行操作。整个系统架构如图4.1所示窗口用户层窗口用户层数据接口层数据驱动层数据库图4.1系统架构2、系统功能模块划分从前面章节可以看出,本系统实现了完整的在线考试功能,可以根据这些功能设计出系统中的功能、模块。系统中的各个模块划分如图4.2所示:在线考试系统在线考试系统服务器部分客户端部分考号管理题库管理考试管理评分系统登录系统考试系统答案记录图4.2系统总体模块设计五、数据库设计1、总体设计考虑到在线考试系统的实际需要,本系统需要的数据至少包括不同学生考号数据以及选择题数据、判断题数据等。不同考生的用户数据主要包括考生准考证号,考生名名,成绩,是否考试等数据;试题数据主要包括试题号、试题题目、试题选项、参考答案等数据.2、表设计(1)准考证号表KS_USER_NUMBERKS_USER_NUMBER表包括学生信息数据,如准考证号、姓名、考试情况、考试成绩。表的字段说明如表5.1所示。表5.1准考证号表(2)选择题数据表KS_XZT KS_XZT包括选择题的信息,如题号、题目、选项、答案等,表的字段说明如表5.2所示表5.2选择题数据表(3)判断题数据表KS_PDTKS_PDT包括判断题的信息,同KS_XZT表一样,包含了题号、选项、答案等.表的字段说明如表5.3所示表5.3判断题数据表六、系统功能详细设计及实现1、数据库驱动连接部分 数据库连接和驱动利用的是微软提供的DSN数据源接口,数据源选择如图6.1所示,连接属性如图6.2。利用Microsoftaddoc控件连接并操作数据源,部分代码片段如下:PublicmydbAsADODB.Connection‘声明ADO.Connection公共对象PublicreAsADODB.Recordset ‘声明ADO.Recordst公共对象PublicgdAsADODB.RecordsetPubliccmdAsADODB.Command ‘声明ADO.Command公共对象PublictmpAsADODB.RecordsetPublicPCnameAsString‘本机名DimDBnameAsString‘数据库名DimDBSQLTEXTAsString ‘连接字符串PCname="YONG-PC"DBname="KSRJ"DBSQLTEXT="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog="&DBname&";DataSource="&PCnameSetmydb=NewADODB.Connection‘创建ADODB.Connection实例Setre=NewADODB.Recordset‘创建ADODB.Recordset实例Setcmd=NewADODB.Command‘创建ADODB.Command实例mydb.ConnectionString=DBSQLTEXT‘设定连接参数mydb.Open ‘打开数据库cmd.ActiveConnection=mydb ‘绑定ADODB.Command对象re.CursorLocation=adUseClient ‘连接模式为客户端模式re.CursorType=adOpenStatic ‘静态游标re.LockType=adLockBatchOptimistic ‘乐观锁定通过上述代码,数据库可成功被连接。同时数据表已记录集的形式存储在“re”数据对象实例中。软件调用数据表即可从re中直接提取。图6.1数据源选择图6.2选择数据库2、试题抽取试题抽取要做到随机、公平、公正因此不能采取人工干预的方式,需用系统随机抽取。这一部分的设计主要思想是先生成一个长度为所需题目数的随机数组,数组中的每个数在1到题库中最大的题目数之间而且不能重复,利用这个随机数组来选择抽取的题目。对于随机数的产生。由于Rnd()函数生成的是伪随机数。无法满足要求,这里采用毫秒级的时间作为种子,对记录集里最大题号求余.先利用Timer()去得系统当前时间,取出其中毫秒时间。求余后存入随机数数组。代码片段如下DimctAsInteger‘Dimrnd_ptAsIntegerDimsend_strAsString ‘试题缓冲区Dimrnd_tmpAsInteger ‘存取随机变量值Dimrnd_tmp_ptAsInteger‘存放随机数数组rnd_tmp_pt=1 ‘数组指针rnd_pt=1‘选择题抽取Do ‘用毫秒除以最大记录数Lop:rnd_tmp=Timer()*1000Modre.RecordCountDo ‘去重复Ifrnd_tmp=rnd_arry(rnd_tmp_pt)ThenGoToLopEndIfrnd_tmp_pt=rnd_tmp_pt+1LoopUntilrnd_tmp_pt>rnd_ptrnd_tmp_pt=1rnd_arry(rnd_pt)=rnd_tmp‘存入数组rnd_pt=rnd_pt+1LoopUntilrnd_pt>30rnd_pt=1rnd_tmp_pt=1‘判断题抽取DoLop2:rnd_tmp=Timer()*1000Modre.RecordCountDoIfrnd_tmp=rnd_pdt_arry(rnd_tmp_pt)ThenGoToLop2EndIfrnd_tmp_pt=rnd_tmp_pt+1LoopUntilrnd_tmp_pt>rnd_ptrnd_tmp_pt=1rnd_pdt_arry(rnd_pt)=rnd_tmprnd_pt=rnd_pt+1LoopUntilrnd_pt>203、网络通信网络通信部分采用Winsock通用控件。采用TCP传输模式,保证了数据的可靠正确的传输。本地端口和远程端口均由程序运行是代码指定Winsock控件的属性设置,如图6.3图6.3Winsock控件属性设置 Winsock的传输模式为“透明传输”。即它支付负责OSI参考协议中传输层及其以下层的协议,没有设计到表示层及会话层。因为软件中需采用协议来标识所传输的数据的类型。本程序采用的是“包头标识”的方法来标识所传输的数据的类型。将每次传输的数据串前端打上5个二进制标志位。利用这些标志位来区分数据类型。表6.1数据串标志头表(部分)头标志字符串数据类型00010发送准考证号信息00011准考证号回应信息00111无考证号时回应信息数据的传输只需调用Winsock控件的send方法。收到数据时触发DataArrival事件.每次发送数据前需检查控件的连接状态。PCname="YONG-PC"‘设置服务器名称PCip=net.LocalIP‘获取服务器本地IPnet_pt=1‘发送缓冲区指针net.LocalPort=2013‘本地端口net.Listen ‘侦听端口PrivateSubnet_Close()‘当连接关闭时重新打开并侦听连接Ifnet.State<>sckClosedThennet.Closenet.ListenEndSubPrivateSubnet_ConnectionRequest(ByValrequestIDAsLong)Ifnet.State<>sckClosedThennet.Closenet.AcceptrequestID‘有连接请求是运行连接EndSubPrivateSubnet_DataArrival(ByValbytesTotalAsLong)DimiAsIntegeri=1cj=0net.GetDatanet_buff ‘有数据到达时先存入缓冲区Dimacc_strAsStringacc_str=Mid(net_buff,6,8)‘读取数据串标志头4、评分模块评分系统由电脑全自动完成,首先读取客户端发送过来的答题信息,再与从数据集里面取出来的答案相比较,答案正确则总分加4分(选择题)或2分(判断题)。评分完毕存入准考证号数据表KS_USER_NUMBER。评分部分代码如下IfMid(net_buff,1,5)="11111"Then‘如果标志头为“11111”Do则为答题信息数据串IfMid(net_buff,5+i,1)=xzt_da_arry(i)Thencj=cj+4 ‘选择题答案正确则加分EndIfi=i+1LoopUntili>20i=

温馨提示

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

评论

0/150

提交评论