当前位置: 首页 > 毕业资源下载

静态网页设计与制作作业成品

基于JAVA语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告)免费下载

 摘要:

随着信息技术的广泛使用,各类计算机考试也应运而生,这类考试多为上机考试,因此,考试的环境,即考试系统的设计和实现非常重要。在网络技术逐渐渗入社会生活各个层面的今天,采用网络考试是一个很重要的方向。目前,网络考试系统的实现,可以采用传统的客户机/服务器模式,也可以采用目前流行的浏览器/服务器模式,即基于Web的方式。本系统采用的后一种模式,因此,本文简单的介绍了该模式的实现方法。同时,还介绍了等级考试的一些相关信息;语言类考试系统设计和实现的相关技术;该系统的组成模块、数据库设计以及运行平台。还介绍了该考试系统的特点和实现的关键技术。最后,指出了该考试存在的一些不足,以及对实现该考试系统的主要技术——Web服务技术在考试系统中的应用进行了展望。


关键字:    

考试系统  Web服务  数据库  Visual Basic .NET

 

 

目录:

毕业设计论文参考




考试系统采用的技术和运行平台: 

 

 

该考试系统用Microsoft Visual Basic.NET进行开发,数据库采用SQL Server 2000。由于系统采用三层结构,即数据库服务器、Web服务器、客户浏览器,为了实现可用子网内的任何一台服务器作为数据库服务器的需求,本系统采用Web服务技术,即把Web服务装在Web服务器中,通过访问Web服务来进行数据库的访问。下面分别对Microsoft Visual Basic.NET、SQL Server 2000和Web服务技术进行介绍。

2.1 Visual Basic .NET

Microsoft Visual Basic.NET 是 Microsoft Visual Basic 6.0 的后续版本,它是基于 .NET 框架直接创建的,因此可以使用所有的平台特性,并能够与其他 .NET 语言协同工作。
2.1.1  Visual Basic 6.0
Visual Basic 6.0 有限的面向对象的特性,特别是缺乏继承,使之不适合于开发面向对象的架构。正由于这一点,对于某些类型的开发,特别是大型、复杂应用程序的开发,与C++或Java开发人员相比,Visual Basic 6.0开发人员会处于不利的地位。另外,Visual Basic 6.0没有多线程能力;错误处理能力差,与其他语言如C++的集成能力差;对于基于Internet的应用程序,没有生动有效的用户界面等缺点。
2.1.2  Visual Basic.NET
Visual Basic.NET对于IT业来说,它可能是一个小的前进,但是对VB开发人员来说,它是一个巨大的进步!Visual Basic .NET并不只是向核心技术添加和修改了技术特性的VB新版本,它打破了模式的框框!实际上它是一种新编程语言,基于新的核心技术——.NET范例。在Visual Basic .NET之中,技术变化是如此之多,以致VB开发人员可以与C#,C++和Java开发人员相竞争。
在许多方面Visual Basic .NET都与它以前的版本不同。它具有更高的一致性和类型安全级别。用Visual Basic .NET我们更容易写出控制性、可读性很高的代码。虽然它有时要求你习惯于那些编译时额外的检查,但它将在你测试和调试时,为你节约宝贵的时间。
VB.NET的语法与VB 6.0已经有了根本性的差别,与其说VB.NET是VB 6.0的升级,不如说VB.NET是C#的Basic版本。由于采用了CLI的结构,VB.NET将很难兼容以前的VB 6.0的代码,大量的VB代码无法顺利地转移到.NET上,不过开发人员仍然可以在.NET平台下,将原有的COM组件进行重新包装,形成.NET平台下的Web服务组件,而且.NET的整个平台、开发工具的高集成性和友好的开发环境还是会给开发人员留下深刻印象。在Java领域中,无论是Borland的JBuilder 6,还是Sun的Forte for Java,或是IBM的WebShpere Studio Application Developer、VisualAge for Java都无法达到VB. NET的生产效率。

2.2 SQL Server 2000

SQL Server是一个功能强大的后台数据库管理系统,它可以帮助各种规模的企业用来管理数据,以可伸缩性的商业解决方案、强大的数据仓库以及与Microsoft Office和Microsoft BackOffice的紧密集成为企业提供额外的商业便利,日益为广大用户所喜爱。到目前为止,SQL Server 2000是Microsoft公司推出的数据库管理系统的最新版本。它不但继承了原来版本的许多优点,而且又增加了很多更先进的功能。
Microsoft SQL Server 2000使用了最先进的数据库架构,具有完全的Web功能,通过对高端硬件平台以及最新的网络和存储技术的支持,可以为较大的Web站点和企业级的应用提供很好的解决方案。SQL Server 2000扩展了SQL Server 7.0版的性能,并增加了几种新的功能,使得用户能够更方便、更快捷地管理数据库和开发应用程序。因此它已成为大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。

2.3 Web服务

随着Internet和网络化的日渐成熟,无论是属于单个组织的计算机还是属于多个组织的计算机都想通过Internet彼此交流。借助更基本的Internet通信协议,可能需要几个月的时间和大量的资本开发自己的系统。而且当使用该系统和另一个组织的系统进行通信时,两个系统之间的转换也许并不容易,甚至是不可能的,最后得到的只是一团糟。过去人们引入分布式架构系统以解决这个问题。大多数系统本身的缺点甚至妨碍了它们在企业范围内的部署,更别说在全球的部署。为此带来了Web服务。

2.3.1 Web服务的概念

从表面上看,Web服务就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。Web服务内在的含义是基于XML的通信流通过HTTP协议在一个公共网络(Internet)上传送。Web服务平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web 服务 ,只要我们可以通过Web服务标准对这些服务进行查询和访问。

2.3.2 Web服务的优点

Web服务最大的特性也许是使用XML支持的跨平台的兼容性。即使我们假设一个组织内部使用的都是相同的操作系统、软件等,我们也不可能期望其他的组织使用相同的设备。而Web服务不作此类的要求它不依赖于任何平台或公司。它的部分吸引力在于,不管是在SolarisUNIXMac还是在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服务的开发了。.NET Framework本身就全面支持Web 服务,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。利用Visual Studio.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服务器软件,如IISNetscape Enterprise ServerApache等,各有千秋,其中微软的IIS 具有对系统硬件要求低、功能强、配置简便且与Windows 紧密集成等优点,比较适合各院校和中学的网络硬、软件环境,因此我们选用IIS 5.0 
3) 数据库服务器
数据库服务器与 Web服务器应有较紧密的结合,Windows IIS均为微软的产品,其数据库也有相应的产品,即SQL Server,所以我们选用SQL Server 2000 为数据库服务器。 
4) 浏览器
IE浏览器(建议版本5.5以上)




考试系统的数据库设计、构成模块及特点:

 

3.1 考试系统的数据库设计

考试系统离不开数据库系统的支持,不论是试题、答案,还是考生信息都需要存放在数据库中,而且数据库独立于程序而存在,具有较好的安全性。本系统使用的数据库软件为SQL Server 2000。首先建立一名为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表示SQL Server服务器密码;Testdir表示考试目录;Testtype表示考试类型;Relaimdir表示回收目录;redopwd表示重做密码。有些考生考试时可能会因为误操作而退出了系统,这时候要再次进入系统进行考试,就需要输入密码,以防止作弊行为。重做密码是在考生第一次进入系统时从该表中获得的。  

3.2 考试系统的构成模块

该考试系统主要有6个模块构成,包括题库管理模块、身份验证模块、各类试题模块、监考管理模块、阅卷模块、缺考统计模块。各模块关系如图1所示。下面分别介绍这6个模块。

毕业设计论文参考

图1

3.2.1 题库管理模块

题库管理模块实现了试题管理与试卷形成功能。试题的管理主要包括试题编辑、试题修改。在该考试系统中,预计准备20套选择题、填空题、判断题、程序分析题和程序设计题,每套的题目都是事先定好的。每套试卷形成时,随机抽取各类试题的题号,可能两次抽到相同题号试题的概率是比较大的,但每次试题的顺序都是打乱的,以减少出现重复试卷的概率。

3.2.2身份验证模块 

考生登录系统时,需要输入准考证号,根据准考证号到相应的数据库表(这里是“考生信息表”)中查找是否有该考生存在。如果有此准考证号,表示存在该考生,显示该考生的姓名;否则提示“没有该考生信息,请确认后重新输入”。当已经确认存在该考生时,还需要判断该考生是否第一次进入系统,如果是第一次,则进行组题,抽取题号;如果不是第一次,则进入另一个页面,要求输入重做密码,直到密码输入正确才能进入考试界面,并且考试的试题内容与顺序都和上次进入时的一样。重做密码是在考生第一次进入系统时获得的。流程图如图2所示。

3.2.3各类试题模块

1) 选择题模块
初次进入选择题界面时,显示第一个题目的内容。可以用“上题”、“下题” 按钮来选择不同的题目,在选择“上题”或“下题”前,先要记录下本题的答案(在客户端执行)。可以用“保存”按钮来上传答案,即把考生的答案写入回收表reclaim中(在服务器端执行)。
2)判断题模块、概念填空题模块、程序填空题模块同上。
3)程序调试题模块
同样可以用“上题”、“下题” 按钮来选择不同的题目。可以用“下载”按钮来建立程序调试题存放的文件夹,并下载题目(是一个压缩文件);通过“上传”按钮把最终结果上传到指定的目录。
4)程序设计题模块同上

毕业设计论文参考

图2 身份验证流程图

3.2.4监考管理模块 

该模块提供考试用的操作界面,同时提供考试的操作指南,以供考生参考。考生的准考证号、姓名,始终显示在状态栏上,以便监考人员查验。 可查询考生的剩余时间、交卷否和是否正在考试等状态信息,在考试过程中,对考生的合法性和唯一性进行监控。考生如有疑问,可以“帮助” 按钮来解决问题。

3.2.5阅卷模块 

对考生的答案进行阅卷评分。目前这块没有实现。

3.2.6缺考统计模块

统计有多少考生没有参加考试。可通过“考生信息表”中的State字段进行统计。通过这个字段还可以统计某一时刻有多少考生正在考试,有多少以已经交卷。

3.3 考试系统的特点

该考试系统采用三层结构,即数据库服务器、Web服务器、客户浏览器。因为它是在Internet网上进行测试,为了确保Web服务器安全,要求把数据库与Web服务器分离,也就是说采用子网内部的一台服务器作为数据库服务器。为了实现可用子网内的任何一台服务器作为数据库服务器的需求,该系统采用Web服务技术,即把Web服务装在Web服务器中,通过访问Web服务来进行数据库的访问。
该系统的Web服务描述如下:
 删除文件:deletefile(ByVal path As String)
◆ 获取文件夹下每个文件的名称:getfiles(ByVal foldname As String) As String()  
◆ 解压缩文件:unzipfile(ByVal fname As String, ByVal unzipdir As String)
其中fname为要解压的文件,unzipdir为解压之后的文件所存放的文件夹
◆ 压缩文件:Zipfile(ByVal testdir As String, ByVal filename As String)
其中testdir为包含压缩内容的文件夹的路径,filename为生成的压缩文件名
◆ 写BLOB字段,即用二进制流写字段:WriteBlob(ByVal table As String, ByVal field As String, ByVal idnumber As String, ByVal filename As String) As String   
◆ 建立程序设计文件夹:dochengxsj(ByVal th As String, ByVal xth As String, ByVal testdir As String, ByVal idnumber As String) 
◆ 建立回收文件夹:dohuishou(ByVal updir As String, ByVal type As String, ByVal count As String)
◆ 验证是否有该准考证号的考生存在:validate(ByVal table As String, ByVal field As String, ByVal idnumber As String) As String 
◆ 根据准考证号,将字符串写入某一字段:bynumWrfield(ByVal table As String, ByVal field As String, ByVal idnumber As String, ByVal content As String) 
◆ 当考生首次进入时,为他新建一条记录,并抽取各类题号:initestnum(ByVal table As String, ByVal idnumber As String, ByVal name As String) As String 
◆ 将题目序号打乱:randomorder(ByVal MaxNumber As Integer) As Integer()
◆ 根据某两个字段的值,获取第三个字段的值:getfvalbytwo(ByVal table As String, ByVal field As String, ByVal jugfield1 As String, ByVal jugfield2 As String, ByVal jugcont1 As String, ByVal jugcont2 As String) As String 
◆ 判断某字段是否为空:judgeNull(ByVal table As String, ByVal field As String, ByVal idnumber As String) 
◆ 根据某一字段的值,获取另一字段的值:getfieldvalue(ByVal table As String, ByVal field As String, ByVal jugfield As String, ByVal jugcont As String) 
◆ 以二进制流的方式读取ole字段的内容:readblob(ByVal table As String, ByVal field As String, ByVal th As String, ByVal xth As String, ByVal filename As String) As Byte()
◆ 读取某一字段的值(可用于读取考试状态):getteststate(ByVal table As String, ByVal field As String) As String 

最新毕业设计成品

版权所有© 帮我毕业网 并保留所有权利

QQ 1370405256 微信 biyebang

QQ:629001810微信:biyebang

收缩