基于VB的考试系统的设计与实现.docx
- 文档编号:26699668
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:21
- 大小:75.07KB
基于VB的考试系统的设计与实现.docx
《基于VB的考试系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于VB的考试系统的设计与实现.docx(21页珍藏版)》请在冰豆网上搜索。
基于VB的考试系统的设计与实现
课程设计
题目:
基于VB的考试系统的设计与实现
随着信息技术的广泛使用,各类计算机考试也应运而生,这类考试多为上机考试,因此,考试的环境,即考试系统的设计和实现非常重要。
在网络技术逐渐渗入社会生活各个层面的今天,采用网络考试是一个很重要的方向。
目前,网络考试系统的实现,可以采用传统的客户机/服务器模式,也可以采用目前流行的浏览器/服务器模式,即基于Web的方式。
本系统采用的后一种模式,因此,本文简单的介绍了该模式的实现方法。
同时,还介绍了等级考试的一些相关信息;语言类考试系统设计和实现的相关技术;该系统的组成模块、数据库设计以及运行平台。
还介绍了该考试系统的特点和实现的关键技术。
最后,指出了该考试存在的一些不足,以及对实现该考试系统的主要技术——Web服务技术在考试系统中的应用进行了展望。
第一章引言
当今世界,社会和经济的发展对信息资源、信息技术和信息产业的依赖程度越来越大,信息化是世界各国发展经济的共同选择。
我国也已把加快国家经济信息化提到重要日程。
西方国家在普及计算机知识,全方位、多层次地培养各行各业计算机应用人员方面,有许多经验值得我们借鉴,其中一条就是开展全国范围的定期的计算机各类等级考试。
为了适应我国必须尽快实现国家经济信息化,提高全社会的计算机应用水平,使我国的计算机应用与国际社会接轨的形势的要求,在我国也已经设立或引进了各类计算机考试。
国家教委组织的"全国计算机等级考试"就是一种。
等级考试除了理论考以外,很重要的一部分是上机操作,也就是在指定的时间里完成指定的计算机基本操作,按给定要求编写、调试程序。
上机考试与传统的考试相比,它最大限度排除了人为因素的作用,保证了考试的客观性;考生在考试之后,一般就能够得到成绩,使考试具有实时性;而且通过计算机改卷,标准一致,具有最佳的可靠性。
同时,还可以考查考生的实际动手操作能力。
1.1计算机等级考试(二级)
全国计算机等级考试(二级)是教育部考试中心面向社会推出的一项测试应试者计算机应用知识和能力的考试。
二级考试的基本要求是:
具有计算机的基础知识;了解操作系统的基本概念,掌握常用操作系统的使用;掌握基本数据结构和常用算法,熟悉算法描述工具──流程图的使用;能熟练地使用一种高级语言或数据库语言编写程序、调试程序。
二级考试包含的内容比较广泛,有计算机的基础知识,Windows的基本操作,程序设计以及数据库的知识。
以往程序设计的语言主要有QBASIC、FORTRAN、Pascal、C以及FOXBASE,其中FOXBASE是数据库程序设计语言,其余四种为高级语言。
每种高级语言的考试内容基本包括该语言的基本结构、基本语句、数据类型、运算符、表达式、数组、函数、文件等。
教育部考试中心新推出了2004版全国计算机等级考试(NCRE)大纲,对全国计算机等级考试的考试科目设置、考核内容、考试形式等实施调整。
二级考试新增加了Java、Access、C++三个科目,逐步停考二级QBasic和FoxBASE,这些新增科目计划将于明年上半年在我省正式推广。
二级科目名称进一步规范,根据应用性质和科目特点将现有科目划分成二级语言程序设计(C、C++、Java、VisualBasic、QBasic)和二级数据库程序设计(FoxBASE、VisualFoxPro、Access)两类。
二级上机考试中将取消对DOS部分的考核,各科目上机考试运行平台为:
Access2000、JavaJDK1.4.2、VisualC++6.0、VisualBasic6.0、VisualFoxPro6.0、TurboC2.0,除了TurboC2.0仍在DOS5.0以上系统运行外,其他均在Windows2000系统上运行,对逐步停考的三个科目考试平台不作任何改动。
1.2考试系统采用的实现模式
在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试则是一个很重要的方向。
基于数据库和网络应用的考试系统有多种实现技术,可以采用传统的客户机/服务器(Client/server)模式,也可以采用目前流行的浏览器/服务器(Browser/Web)模式,即基于WEB的方式。
所谓Client/server模式,是指把数据库内容(比如试题库)放在远程的服务器上,在客户机上安装相应软件。
Client/server结构在技术上虽然很成熟,但该结构的程序往往只局限在小型的局域网内部,不利于扩展。
并且,该结构的每台客户机都需要安装相应的客户端程序。
由于考试系统拥有的用户量比较多,因此,如果采用该结构,系统的安装与维护工作比较繁重。
同时,由于应用程序直接安装在客户机,客户机直接和数据库服务器交换数据,系统的安全性也受到一定影响。
基于WEB的方式其实是一种特殊的Client/server方式。
在这种方式中,客户端是各种各样的浏览器,浏览器作为通用的用户程序界面,主要提供人机接口服务,而服务器则响应用户请求并提供用户需要的信息。
Browser/Web模式采用三层体系结构,即包括数据库服务器、Web服务器、客户浏览器三部分。
由于采用了互联网的相关技术,Browser/Web结构的系统开放性好,易维护和扩展。
客户浏览器只跟Web服务器交换数据,数据安全性比较高,同时,由于客户端不需要安装专用程序,可大大降低运行维护费用。
当然,Browser/Web结构在网络安全方面也有其弱点。
在Client/server结构中,应用程序是在客户机上运行的独立程序,如果这台计算机安全的话,那么应用程序就是安全的。
而在Browser/Web结构中,众多的客户浏览器访问同一个Web服务器,Web服务器会成为攻击活动的对象。
基于上述考虑,用Browser/Web模式来设计考试系统比较合适,服务器端采用WEB SERVER+数据库系统+ASP组件来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程。
所有的系统升级和更新均只要在服务器端完成,这样可较灵活地适应考试内容的不断更新,从而减少系统升级、更新的工作量,同时可进行远程系统维护和管理。
第二章考试系统采用的技术和运行平台
该考试系统用MicrosoftVisualBasic.NET进行开发,数据库采用SQLServer2000。
由于系统采用三层结构,即数据库服务器、Web服务器、客户浏览器,为了实现可用子网内的任何一台服务器作为数据库服务器的需求,本系统采用Web服务技术,即把Web服务装在Web服务器中,通过访问Web服务来进行数据库的访问。
下面分别对MicrosoftVisualBasic.NET、SQLServer2000和Web服务技术进行介绍。
2.1VisualBasic.NET
MicrosoftVisualBasic.NET是MicrosoftVisualBasic6.0的后续版本,它是基于.NET框架直接创建的,因此可以使用所有的平台特性,并能够与其他.NET语言协同工作。
2.1.1VisualBasic6.0
VisualBasic6.0有限的面向对象的特性,特别是缺乏继承,使之不适合于开发面向对象的架构。
正由于这一点,对于某些类型的开发,特别是大型、复杂应用程序的开发,与C++或Java开发人员相比,VisualBasic6.0开发人员会处于不利的地位。
另外,VisualBasic6.0没有多线程能力;错误处理能力差,与其他语言如C++的集成能力差;对于基于Internet的应用程序,没有生动有效的用户界面等缺点。
2.1.2VisualBasic.NET
VisualBasic.NET对于IT业来说,它可能是一个小的前进,但是对VB开发人员来说,它是一个巨大的进步!
VisualBasic.NET并不只是向核心技术添加和修改了技术特性的VB新版本,它打破了模式的框框!
实际上它是一种新编程语言,基于新的核心技术——.NET范例。
在VisualBasic.NET之中,技术变化是如此之多,以致VB开发人员可以与C#,C++和Java开发人员相竞争。
在许多方面VisualBasic.NET都与它以前的版本不同。
它具有更高的一致性和类型安全级别。
用VisualBasic.NET我们更容易写出控制性、可读性很高的代码。
虽然它有时要求你习惯于那些编译时额外的检查,但它将在你测试和调试时,为你节约宝贵的时间。
VB.NET的语法与VB6.0已经有了根本性的差别,与其说VB.NET是VB6.0的升级,不如说VB.NET是C#的Basic版本。
由于采用了CLI的结构,VB.NET将很难兼容以前的VB6.0的代码,大量的VB代码无法顺利地转移到.NET上,不过开发人员仍然可以在.NET平台下,将原有的COM组件进行重新包装,形成.NET平台下的Web服务组件,而且.NET的整个平台、开发工具的高集成性和友好的开发环境还是会给开发人员留下深刻印象。
在Java领域中,无论是Borland的JBuilder6,还是Sun的ForteforJava,或是IBM的WebShpereStudioApplicationDeveloper、VisualAgeforJava都无法达到VB.NET的生产效率。
2.2SQLServer2000
SQLServer是一个功能强大的后台数据库管理系统,它可以帮助各种规模的企业用来管理数据,以可伸缩性的商业解决方案、强大的数据仓库以及与MicrosoftOffice和MicrosoftBackOffice的紧密集成为企业提供额外的商业便利,日益为广大用户所喜爱。
到目前为止,SQLServer2000是Microsoft公司推出的数据库管理系统的最新版本。
它不但继承了原来版本的许多优点,而且又增加了很多更先进的功能。
MicrosoftSQLServer2000使用了最先进的数据库架构,具有完全的Web功能,通过对高端硬件平台以及最新的网络和存储技术的支持,可以为较大的Web站点和企业级的应用提供很好的解决方案。
SQLServer2000扩展了SQLServer7.0版的性能,并增加了几种新的功能,使得用户能够更方便、更快捷地管理数据库和开发应用程序。
因此它已成为大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。
2.3Web服务
随着Internet和网络化的日渐成熟,无论是属于单个组织的计算机还是属于多个组织的计算机都想通过Internet彼此交流。
借助更基本的Internet通信协议,可能需要几个月的时间和大量的资本开发自己的系统。
而且当使用该系统和另一个组织的系统进行通信时,两个系统之间的转换也许并不容易,甚至是不可能的,最后得到的只是一团糟。
过去人们引入分布式架构系统以解决这个问题。
大多数系统本身的缺点甚至妨碍了它们在企业范围内的部署,更别说在全球的部署。
为此带来了Web服务。
2.3.1Web服务的概念
从表面上看,Web服务就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
这就是说,你能够用编程的方法通过Web来调用这个应用程序。
Web服务内在的含义是基于XML的通信流通过HTTP协议在一个公共网络(Internet)上传送。
Web服务平台是一套标准,它定义了应用程序如何在Web上实现互操作性。
你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web服务,只要我们可以通过Web服务标准对这些服务进行查询和访问。
2.3.2Web服务的优点
Web服务最大的特性也许是使用XML支持的跨平台的兼容性。
即使我们假设一个组织内部使用的都是相同的操作系统、软件等,我们也不可能期望其他的组织使用相同的设备。
而Web服务不作此类的要求,它不依赖于任何平台或公司。
它的部分吸引力在于,不管是在Solaris,UNIX,Mac还是在Windows上部署Web服务,所有用户都可以连接并使用。
这和一般Web站点是一样的,不必关心要访问的Web站点运行于什么平台,只要它能够正常工作就行。
Web服务需要使用一种平台中立的方法来描述数据和交换数据,为此它使用XML(可扩展标记语言)。
XML使用标准化的文本格式以一种简单的方法格式化数据(无论数据有多复杂)。
最初,开发人员对XML嗤之以鼻,认为它只不过是书写脚本的另一种方式而已。
然而这些惯于从事数据库管理和开发的开发人员不久便意识到,XML是能在双方之间提供数据而无须依赖于专门方案的一种技术。
2.4.NET对Web服务的支持
.NET从一开始就深深打上了Web服务技术的烙印,在它的市场推广活动中,无时无刻不凸显其作为Web服务的开发和部署平台的特征。
可以说,.NET天生就是为Web服务准备的开发和部署平台。
.NET是一个全新的架构,它的整个平台、开发工具的高集成性和友好的开发环境给开发人员留下深刻印象。
在Java领域中,任何一种语言都无法达到VS.NET的生产效率。
开发工具是.NET的一大优势。
.NET正是为进行基于Web服务模型的应用程序开发而度身定做的新一代开发工具和基本结构。
.NET构建块服务、新增的.NET设备支持以及即将到来的.NET用户体验,使人们能够充分利用Web服务模型,如愿以偿地开发出新一代应用程序。
VB.NET平台内建了对Web服务的支持,包括Web服务的构建和使用。
与其它开发平台不同,使用.NET平台,你不需要其他的工具或者SDK就可以完成Web服务的开发了。
.NETFramework本身就全面支持Web服务,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。
利用VisualStudio.Net,你可以不必了解HTTP、XML、SOAP、WSDL等底层协议,同样能开发和使用Web服务。
2.5考试系统的运行平台
2.5.1硬件平台
Web服务器和数据库服务器可共用一台或分别用一台专用服务器或高档PC机,联网设备可采用交换机或HUB,带宽为10M--100M。
2.5.2软件平台
1)操作系统
服务器端采用Windows 2000 SERVER ,客户端采用Windows即均可。
2)Web服务器
目前,市场上有很多Web服务器软件,如IIS、Netscape Enterprise Server、Apache等,各有千秋,其中微软的IIS 具有对系统硬件要求低、功能强、配置简便且与Windows 紧密集成等优点,比较适合各院校和中学的网络硬、软件环境,因此我们选用IIS 5.0。
3)数据库服务器
数据库服务器与 Web服务器应有较紧密的结合,Windows 、IIS均为微软的产品,其数据库也有相应的产品,即SQL Server,所以我们选用SQL Server 2000 为数据库服务器。
4)浏览器
IE浏览器(建议版本5.5以上)
第三章考试系统的数据库设计、构成模块及特点
3.1考试系统的数据库设计
考试系统离不开数据库系统的支持,不论是试题、答案,还是考生信息都需要存放在数据库中,而且数据库独立于程序而存在,具有较好的安全性。
本系统使用的数据库软件为SQLServer2000。
首先建立一名为ksxt的数据库,主要表格介绍如下:
3.1.1考生信息表(stuinfo)
列名
数据类型
长度
允许空
Id
Nvarchar
10
Name
Nvarchar
8
State
Nvarchar
6
√
该表主要存放考生的信息,其中Id表示考生的准考证号;Name表示考生的姓名;State表示考生状态,分为三种:
已交卷、未交卷(正在考试中)、缺考。
考生登录的时候输入准考证号,从该表中检查是否存在该准考证号,如果存在,显示该考生姓名,允许进入考试界面;否则显示“无此考生”。
State字段有助于统计缺考人数。
3.1.2各类试题表(xuanze,tiankong,panduan,chengxtk,chengxts,chengxsj)
主要包括选择题表、判断题表、概念填空题表、程序填空题表、程序调试题表、程序设计题表共6张表,每张表中存放了各类试题的题号和题目。
下面以程序设计题表为例说明:
列名
数据类型
长度
允许空
TH
Char
2
√
XTH
Char
2
√
TM
Ntext
16
√
Ole
Image
16
√
其中TH表示该试题在第几套题目中;XTH表示该试题的题号,即这套题目中的2个程序设计题中的第几题;TM表示该试题的题目描述;Ole字段存放的为考试时要读出来,解压,供考生下载的压缩文件。
如果是选择题表,还有A、B、C、D四个字段分别表示该试题四个选项的内容。
除了程序设计题以外,其他试题表没有Ole字段。
之所以设TH字段,是因为试题是按套分的,每一套中又有若干题目。
每套中的题目事先就定好的,但是每次抽到该套题目时,试题的顺序是打乱的,以减少出现一模一样试卷的概率。
3.1.3考试信息表(testresult01—testresult99)
列名
数据类型
长度
允许空
Id
Nvarchar
10
Xuanzth
Char
2
√
Pandth
Char
2
√
Tiankth
Char
2
√
Chengxtkth
Char
2
√
Chengxtsth
Char
2
√
Chengxsjth
Char
2
√
Xuanzda
Nvarchar
40
√
Panda
Nvarchar
20
√
Tiankda
Nvarchar
100
√
Chengxtkda
Nvarchar
100
√
Chengxtsda
Image
16
√
chengxsjda
Image
16
√
Lasttime
Int
4
√
考试信息表共有99张,根据考生准考证号后两位来决定把该考生的考试信息放入哪张表中,比如该考生准考证号末两位为28,则放入表testresult28中。
其中Id表示考生的准考证号;Xuanzth、pandth、Tiankth、Chengxtkth、Chengxtsth、Chengxsjth分别表示选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题的题号;Xuanzda、pandda、Tiankda、Chengxtkda、Chengxtsda、Chengxsjda分别表示选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题的正确答案。
Lasttime用于记录考试时间,如果时间到了还没有交卷,则回收答案,停止考试。
3.1.4回收表(reclaim,result)
回收表共有两张,一张记录回收的答案,另一张记录回收是否成功。
表1
列名
数据类型
长度
允许空
Id
Nvarchar
10
Xuanzth
Char
2
√
Pandth
Char
2
√
Tiankth
Char
2
√
Chengxtkth
Char
2
√
Chengxtsth
Char
2
√
Chengxsjth
Char
2
√
Xuanzda
Nvarchar
40
√
Panda
Nvarchar
20
√
Tiankda
Nvarchar
100
√
Chengxtkda
Nvarchar
100
√
Chengxtsda
Image
16
√
chengxsjda
Image
16
√
这张表主要用来记录回收的答案,其中Xuanzth、Pandth、Tiankth、Chengxtkth、Chengxtsth、Chengxsjth分别表示选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题的题号,Xuanzda、Pandda、Tiankda、Chengxtkda、Chengxtsda、Chengxsjda分别表示考生的选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题的答案,可与考试信息表中各题的正确答案做比较。
表2
列名
数据类型
长度
允许空
Id
Nvarchar
10
Name
Nvarchar
8
√
Xuanze
Char
2
√
Pand
Char
2
√
Tiank
Char
2
√
Chengxtk
Char
2
√
Chengxts
Char
2
√
Chengxsj
Char
2
√
这张表主要用来判断回收是否成功。
其中Id表示考生的准考证号;Name表示考生的姓名;Xuanze、Pand、Tiank、Chengxtk、Chengxts、Chengxsj分别表示选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题是否回收成功,如果成功,则为OK,否则为空。
3.1.5管理表(setting)
列名
数据类型
长度
允许空
Dbname
Nvarchar
10
√
Servername
Nvarchar
10
√
Sqlpwd
Nvarchar
10
Testdir
Nvarchar
40
√
Testtype
Nvarchar
4
√
Relaimdir
Nvarchar
40
√
redopwd
Nvarchar
10
其中Dbname表示数据库名称;Servername表示服务器名称;Sqlpwd表示SQLServer服务器密码;Testdir表示考试目录;Testtype表示考试类型;Relaimdir表示回收目录;redopwd表示重做密码。
有些考生考试时可能会因为误操作而退出了系统,这时候要再次进入系统进行考试,就需要输入密码,以防止作弊行为。
重做密码是在考生第一次进入系统时从该表中获得的。
3.2考试系统的构成模块
该考试系统主要有6个模块构成,包括题库管理模块、身份验证模块、各类试题模块、监考管理模块、阅卷模块、缺考统计模块。
各模块关系如图1所示。
下面分别介绍这6个模块。
图1
3.2.1题库管理模块
题库管理模块实现了试题管理与试卷形成功能。
试题的管理主要包括试题编辑、试题修改。
在该考试系统中,预计准备20套选择题、填空题、判断题、程序分析题和程序设计题,每套的题目都是事先定好的。
每套试卷形成时,随机抽取各类试题的题号,可能两次抽到相同题号试题的概率是比较大的,但每次试题的顺序都是打乱的,以减少出现重复试卷的概率。
3.2.2身份验证模块
考生登录系统时,需要输入准考证号,根据准考证号到相应的数据库表(这里是“考生信息表”)中查找是否有该考生存在。
如果有此准考证号,表示存在该考生,显示该考生的姓名;否则提示“没有该考生信息,请确认后重新输入”。
当已经确认存在该考生时,还需要判断该考生是否第一次进入系统,如果是第一次,则进行组题,抽取题号;如果不是第一次,则进入另一个页面,要求输入重做密码,直到密码输入正确才能进入考试界面,并且考试的试题内容与顺序都和上次进入时的一样。
重做密码是在考生第一次进入系统时获得的。
流程图如图2所示。
3.2.3各类试题模块
1)选择题模块
初次进入选择题界面时,显示第一个题目的内容。
可以用“上题”、“下题”按钮来选择不同的题目,在选择“上题”或“下题”前,先要记录下本题的答案(在客户端执行)。
可以用“保存”按钮来上传答案,即把考生的答案写入回收表reclaim中(在服务器端执行)。
2)判断题模块、概念填空题模块、程序填空题模块同上。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VB 考试 系统 设计 实现