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

毕业论文(设计)开题报告

论文题目: java考试系统

学生姓名: 年级(学号):

二级学院: 专业:

指导教师: 职称:

填表日期:20 年 月 日

一、选题依据(背景与意义、国内外研究现状与发展趋势)信息化是世界各国发展经济的共同选择,我国也已把加快国家经济信息化提到重要日程。为了适应我国必须尽快实现国家经济信息化,提高全社会的计算机应用水平,使我国的计算机应用与国际社会接轨的形势的要求,设立或引进了各类计算机考试。国家教委组织的"全国计算机等级考试"就是一种。等级考试除了理论考以外,很重要的一部分是上机操作。上机考试与传统的考试相比,它最大限度排除了人为因素的作用,保证了考试的客观性;考生在考试之后,一般就能够得到成绩,使考试具有实时性;而且通过计算机改卷,标准一致,具有最佳的可靠性。同时,还可以考查考生的实际动手操作能力。因此上机考试系统的设计就非常重要。一个理想的上机考试系统,应该是界面简单,能使考生轻松操作,充分发挥考生的能力;对计算机配置不高;考务工作量少,系统维护方便,数据安全性较高,成绩回收方便快捷等等。目前,很多考试系统都是把一台服务器同时做为数据服务器和Web服务器,这样做很不安全,只要这台服务器受到攻击,那么整个系统也就不安全了。为了确保Web服务器安全,可以把数据库服务器与Web服务器分离,也就是说采用子网内部的一台服务器作为数据库服务器。为了实现可用子网内的任何一台服务器作为数据库服务器的需求,可采用Web服务技术,即把Web服务装在Web服务器中,通过访问Web服务来进行数据库的访问。Web服务最大的特性是使用XML支持的跨平台的兼容性,不管是在Solaris,UNIX,Mac还是在Windows上部署Web服务,所有用户都可以连接并使用。Web服务的一个重要用途是从数据库提取数据并作为Web服务的响应发送数据。.NET是为Web服务准备的开发和部署平台。.NET中的数据库访问是使用http://ADO.NET完成的。http://ADO.NET是Microsoft的数据访问框架,用于在.NET中编写的应用程序。它的设计一直坚定地以非连接数据为核心概念,以使用户在不建立和数据源的永久连接时也能操作数据。作为Internet下一个革命性进步,Web服务必将是分布式应用程序的主导架构。但是,在Web服务技术领域仍然存在着一些缺憾,那就是处理消息级别的安全、认证、加密、数字签名、路由和附件等问题的能力有待提高。

二、研究目标与主要内容(含论文提纲)研究目标:设计出界面清晰,能使考生轻松操作,充分发挥考生的能力;对计算机配置不高;考务工作量少,系统维护方便,数据安全性较高,成绩回收方便快捷的上机考试系统,可在Internet网上进行测试。2、主要内容:为了确保Web服务器安全,把数据库服务器与Web服务器分离,也就是说采用子网内部的一台服务器作为数据库服务器。为了实现可用子网内的任何一台服务器作为数据库服务器需求,本系统采用Web服务技术,即把Web服务装在Web服务器中,通过访问Web服务来进行数据库的访问。

三、拟采取的研究方法、研究手段及技术路线、实验方案等本系统采用三层结构,即浏览器、Web服务器、数据服务器;采用Web服务技术,通过访问Web服务来进行数据库的访问;用http://VB.NET开发;使用SQL server数据库;

四、中外文参考文献目录(作者、书名论文题目、出版社或刊号、出版年月或出版期号)[1] 侯戓译.Net Web服务入门经典.清华大学出版社.北京, [2] 康博译.http://VB.NET高级编程.清华大学出版社.北京, [3] 唐树才等.http://Visual.Basic.NET程序设计与应用.电子工业出版社.北京, [4] 李振格等.SQL Server 2000与http://Visual.Basic.NET数据库.清华大学出版社.北京, [5] 詹国华等.基于Windows NT局域网络的计算机应用能力上机考核系统之关键技术[J].计算机工程与应用, [6] 陈刚. 计算机上机考试系统研究. [7] Jeffrey Richter . Programming Applications for Microsoft Windows . Microsoft Press,

五、研究的整体方案与工作进度安排(内容、步骤、时间)20 .1.1-20.2.15:查阅相关文献资料,完成文献资料翻译,制定研究方案20.2.16-20.3.5:进行文献综述报告,审定开题报告20.3.21-20.4.30:进行论文相关的系统分析、设计、开发、调试工作,毕业论文撰写20.4中旬:进行中期检查20.5:对毕业论文进行修改,完善,定稿,完成相关资料的整理归档20.6:参加论文答辩

六、研究的预期目标及主要特点及创新点预期目标:设计出界面清晰,能使考生轻松操作,充分发挥考生的能力;对计算机配置不高;考务工作量少,系统维护方便,数据安全性较高,成绩回收方便快捷的上机考试系统,可在Internet网上进行测试。 主要特点及创新:把数据库服务器与Web服务器分离,也就是说采用子网内部的一台服务器作为数据库服务器。为了实现可用子网内的任何一台服务器作为数据库服务器需求,采用Web服务技术,即把Web服务装在Web服务器中,通过访问Web服务来进行数据库的访问。

七、指导教师意见:签名: 年月日

八、教研室或系审核意见:主任签名: 年月日

九、二级学院毕业论文(设计)领导小组审核意见:负责人签名(盖章):年月日

本科生毕业论文(设计)文献综述

一、查阅中外文献资料目录,所查阅的中外文献资料不得少于5篇(含作者、书名或论文题目、出版社或刊名、出版年月或期号及页码等,未经本人查阅的文献资料目录不得列上)[1] 侯戓译.Net Web服务入门经典.清华大学出版社.北京,2003.[2] 康博译.http://VB.NET高级编程.清华大学出版社.北京,2003[3] 唐树才等.http://Visual.Basic.NET程序设计与应用.电子工业出版社.北京,2002.7[4] 李振格等.SQL Server 2000与http://Visual.Basic.NET数据库.清华大学出版社.北京,2002.9[5] 詹国华等.基于Windows NT局域网络的计算机应用能力上机考核系统之关键技术[J].计算机工程与应用,1999;35(8):47-48[6] 陈刚. 计算机上机考试系统研究. http://www.mis.com.cn/zengkan2001/p49.htm[7] Jeffrey Richter . Programming Applications for Microsoft Windows . Microsoft Press,2000.5.1

二、文献综述(含本选题国内外研究现状、研究主要成果、发展趋势、存在问题等内容,字数不少于3000字,力求内容切题,具综合归纳性)在上机考试系统中使用Web服务技术摘要:本文简单介绍了上机考试系统的组成模块、结构以及存在的问题,提出了理想的上机考试系统的条件。在考试系统中,为了确保Web服务器安全,可以把数据库服务器与Web服务器分离,为此可采用Web服务技术,即把Web服务装在Web服务器中,通过访问Web服务来进行数据库的访问。因此介绍了目前较为流行的Web服务的概念、优点、特征、.NET对Web服务的支持,以及Web服务的缺憾。同时介绍了.NET中使用http://ADO.NET对数据库的访问。关键词:上机考试系统、Web服务、.NET、数据库西方国家在普及计算机知识,全方位、多层次地培养各行各业计算机应用人员方面,有许多经验值得我们借鉴。其中一条就是开展全国范围的定期的计算机各类等级考试。为了适应我国必须尽快实现国家经济信息化,提高全社会的计算机应用水平,使我国的计算机应用与国际社会接轨的形势的要求,在我国也已经设立或引进了各类计算机考试。国家教委组织的"全国计算机等级考试"就是一种。等级考试除了理论考以外,很重要的一部分是上机操作,也就是在指定的时间里完成指定的计算机基本操作,按给定要求编写、调试程序。上机考试与传统的考试相比,它最大限度排除了人为因素的作用,保证了考试的客观性;考生在考试之后,一般就能够得到成绩,使考试具有实时性;而且通过计算机改卷,标准一致,具有最佳的可靠性。同时,还可以考查考生的实际动手操作能力。1、上机考试系统的运行模式、组成模块 1.1 上机考试系统的运行模式在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试则是一个很重要的方向。基于Web技术的网络考试系统可以借助于遍布全球的因特网进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机阅卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。所以现在较好的考试系统为网络考试系统,试题内容放在服务器上,考生通过姓名、准考证号码和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,采用Web技术的网络考试系统将是以后发展的趋势。网络考试系统的实现技术有多种,可以采用传统的客户机/服务器型的架构,即试题内容放在远程的服务器上,在考试机上安装考试应用程序和数据库客户机配置,因此每次考试时要对机器进行安装、配置,考务工作比较烦琐,而且考试程序放在客户机上,安全性也受到一定影响,因此较好的网络考试系统采用Web 技术实现。Web技术超越了传统的“客户机/服务器”两层结构,采用了三层体系结构:用户界面层—事务层—数据库层,因此Web结构有着更好的安全性,在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数据库可以是同一台机器(如果条件允许,还是应该把这两层分开在不同的计算机上比较好)。 1.2上机考试系统的组成模块上机考试系统由面向管理员的系统管理模块和面向考生的考试系统模块两部分组成,每个模块又有若干子模块组成。系统管理模块负责题库维护,考生管理和成绩输出。考试系统模块负责考生考试全过程。具体包括考生登录界面设计及有效性验证,系统生成考卷算法,考试界面设计,关键的评分算法,最后还有成绩存储。系统管理和考试系统两个模块之间,由于在时间和空间上的关系不同,使考试适应的环境有很大差异,两者的耦合度是很复杂的。在生成试卷方面,一个好的生成试卷算法可以将题库中的题目随机组合成成套试卷,而且知识点分布均匀,难度相同,但是要做到这点并不容易。有些考试考试不是由系统自动组卷,而是由系统自动抽取某一套试题,试卷重复概率低。1.3 理想的上机考试系统一个理想的上机考试系统,应该是界面简单,能使考生轻松操作,充分发挥考生的能力;对计算机配置不高;考务工作量少,系统维护方便,数据安全性较高,成绩回收方便快捷等等。目前,很多考试系统都是把一台服务器同时做为数据服务器和Web服务器,这样做很不安全,只要这台服务器受到攻击,那么整个系统也就不安全了。为了确保Web服务器安全,可以把数据库服务器与Web服务器分离,也就是说采用子网内部的一台服务器作为数据库服务器。为了实现可用子网内的任何一台服务器作为数据库服务器的需求,可采用Web服务技术,即把Web服务装在Web服务器中,通过访问Web服务来进行数据库的访问。2、Web服务的概念、特征2.1 Web服务的概念随着Internet和网络化的日渐成熟,无论是属于单个组织的计算机还是属于多个组织的计算机都想通过Internet彼此交流。借助更基本的Internet通信协议,可能需要几个月的时间和大量的资本开发自己的系统。而且当使用该系统和另一个组织的系统进行通信时,两个系统之间的转换也许并不容易,甚至是不可能的,最后得到的只是一团糟。过去人们引入分布式架构系统以解决这个问题。大多数系统本身的缺点甚至妨碍了它们在企业范围内的部署,更别说在全球的部署。为此带来了Web服务。从表面上看,Web服务就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。Web服务内在的含义是基于XML的通信流通过HTTP协议在一个公共网络(Internet)上传送。Web服务平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web 服务 ,只要我们可以通过Web服务标准对这些服务进行查询和访问。2.2 Web服务的优点Web服务最大的特性也许是使用XML支持的跨平台的兼容性。即使我们假设一个组织内部使用的都是相同的操作系统、软件等,我们也不可能期望其他的组织使用相同的设备。而Web服务不作此类的要求, 它不依赖于任何平台或公司。它的部分吸引力在于,不管是在Solaris,UNIX,Mac还是在Windows上部署Web服务,所有用户都可以连接并使用。这和一般Web站点是一样的,不必关心要访问的Web站点运行于什么平台,只要它能够正常工作就行。 Web服务需要使用一种平台中立的方法来描述数据和交换数据,为此它使用XML(可扩展标记语言)。XML使用标准化的文本格式以一种简单的方法格式化数据(无论数据有多复杂)。最初,开发人员对XML嗤之以鼻,认为它只不过是书写脚本的另一种方式而已。然而这些惯于从事数据库管理和开发的开发人员不久便意识到,XML是能在双方之间提供数据而无须依赖于专门方案的一种技术。2.3 Web服务的特征Web服务具备以下一些特征:Web服务具备对象的良好封装性。Web服务是一种部署在Web上的对象,用户能且仅能看到Web服务提供的功能列表。对Web服务调用者透明。当一个Web服务的实现发生变更时,Web服务调用者是不会感到这一点的。Web服务具有可描述性和可管理性。Web服务中对象界面所提供的功能,应当使用标准的描述语言来描述(如Web服务描述语言WSDL);并且客户应用应当能够比较容易地发现由标准Web服务描述语言描述的服务界面。同时,使用标准Web服务描述语言描述的使用协议不仅仅是服务界面,还将会被延伸到Web服务的聚合、跨Web服务的事务处理、工作流等,而这些又都要有服务质量(QoS)的保障,要对诸如授权认证、数据完整性、消息源认证以及事务的不可否认性等运用规范的方法来描述、传输和交换。3、.NET对Web服务的支持3.1 .NET对Web服务的支持.NET从一开始就深深打上了Web服务技术的烙印,在它的市场推广活动中,无时无刻不凸显其作为Web服务的开发和部署平台的特征。可以说,.NET天生就是为Web服务准备的开发和部署平台。.NET是一个全新的架构。由于采用了CLI(公共语言架构,Common Language Infrastructure)的结构,大量的代码无法顺利地转移到.NET上,因此在源代码级别上的升级变得不是那么容易,但是开发人员仍然可以在.NET平台下,将原有的COM组件进行重新包装,形成 .NET平台下的Web服务组件,而且.NET的整个平台、开发工具的高集成性和友好的开发环境还是会给开发人员留下深刻印象。在Java领域中,无论是Borland的JBuilder 6,还是Sun的Forte for Java,或是IBM的WebShpere Studio Application Developer、VisualAge for Java都无法达到VS .NET的生产效率。开发工具是.NET的一大优势。.NET平台内建了对Web服务的支持,包括Web服务的构建和使用。与其它开发平台不同,使用.NET平台,你不需要其他的工具或者SDK就可以完成Web服务的开发了。.NET Framework本身就全面支持Web 服务,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。利用Visual http://Studio.Net,你可以不必了解HTTP、XML、SOAP、WSDL等底层协议,同样能开发和使用Web服务。3.2 .NET Web服务的工作方式Web服务的客户应用程序与服务器只交换一种文档,即SOAP文档。当客户应用程序向Web服务请求信息时,应用程序构造一个SOAP请求文档,包含Web服务请求内容需要的所有信息。该文档使用HTTP协议经由Internet发给支持Web服务的服务器。在服务器端,Web服务接收各种SOAP请求,对其进行解码,然后运行合适的软件,生成一个SOAP响应文档,包含传递给调用者的所有信息。该响应文档也是使用HTTP通过Web服务器传递的。.NET Web服务的示意图如下:4、.NET中的数据库访问Web服务的一个重要用途是从数据库提取数据并作为Web服务的响应发送数据。.NET中的数据库访问是使用http://ADO.NET完成的,对应的类位于System.Data命名空间中(System.Data.SqlClient和 System.Data.OleDb)。http://ADO.NET是Microsoft的数据访问框架,用于在.NET中编写的应用程序。它的设计一直坚定地以非连接数据为核心概念,以使用户在不建立和数据源的永久连接时也能操作数据。这是非常重要的,因为现在很多组织的活动都是通过Internet发生的。用于Internet的 HTTP协议没有在请求之间维护状态的机制,不可能为实时的数据操作建立永久的连接,在这种情况下有很多问题存在 ,比如如何处理多个用户同时进行的并发数据修改?如何保证客户访问的是最新的数据?等等。http://ADO.NET的解决方案是使用非连接数据集DataSet Objects,它们是数据库表在内存中的有效表示,和数据库没有物理连接。这些对象可以被发送给客户端,客户端就可以像在本地一样操作这些数据,随后把修改后的数据传回服务器。服务器处理这些修改,DataSet本身处理许多棘手的任务,如确保多个用户的修改不会发生冲突。另外,DataSet对象中的数据可以用XML格式自由地相互转换,数据位于DataSet中时是强类型的,所有这一切都可以用Web服务来完成。当Web服务只是用来返回大量数据时,使用http://ADO.NET DataReader类可以获得最高的效率,因为它们速度非常快,开销小。有时候我们只需要从数据库中读取数据,不需要作修改,那么就不必为用户提供一个修改存储数据的机制。如果数据变动不是很频繁 ,甚至可以缓存结果,在数据发生变化时再进行缓存。5、结束语 作为Internet下一个革命性的进步,Web服务必将是分布式应用程序的主导架构。但是,在Web服务技术领域仍然存在着一些缺憾,那就是处理消息级别的安全、认证、加密、数字签名、路由和附件等问题的能力有待提高。Web服务应用正在爆炸式增长,越来越多的应用被推出到防火墙之外,安全性脆弱的Web应用面临的风险也只会有增无减。同时,为了在紧迫的时限之前快速完成应用开发,开发者面临的压力也越来越大。注重编写代码时的安全问题,同时投入必要的资源,这样才能为未来的Web服务应用做好准备,同时确保当前应用的高质量。学生签名:

三、指导教师审阅意见:指导教师签名 年 月 日

论文(设计)题目 Java语言考试系统的设计与实现

The Design and Realization of Examination System for Java

目录

摘要1

Abstract22

第一章 引言3

1.1 计算机等级考试(二级)3

1.2 考试系统采用的实现模式3

第二章 考试系统采用的技术和运行平台4

2.1 Visual Basic .NET4

2.2 SQL Server 20005

2.3 Web服务5

2.3.1 Web服务的概念5

2.3.2 Web服务的优点6

2.4 .NET对Web服务的支持6

2.5 考试系统的运行平台6

2.5.1 硬件平台6

2.5.2 软件平台6

第三章 考试系统的数据库设计、构成模块及特点7

3.1 考试系统的数据库设计7

3.2 考试系统的构成模块9

3.2.1 题库管理模块10

3.2.2身份验证模块10

3.2.3各类试题模块10

3.2.4监考管理模块11

3.2.5阅卷模块11

3.2.6缺考统计模块11

3.3 考试系统的特点11

第四章 考试系统实现的关键技术12

4.1 数据库操作12

4.2 打乱序号算法15

4.3 文件的压缩与解压缩15

第五章 总结与展望17

参考文献19

附录A:19

系统使用说明:19

摘要:

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

关键词:

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


Abstract

With the mass use of the information technology, all kinds of computer examinations arise. And people exam usually by operate the computer, so, the environment of the examination, namely have an examination the design and realizing of system, is very important. Today, when the network technology permeates each aspect of social life gradually, so choose the network to have an examination is a very important direction. At present, to realize the network examination system, can adopt the traditional mode of client / server or the present popular mode of browser / server which based on Web. The last kind of mode is chosen by this system, hence introduced the mode implementation method in the paper. Meanwhile, introduced some relevant information of grade examination, relevant technology that the system is designed and realized , and composition module, database design, operation platform of this system. Finally, looking forward to the main technology of the system realizing that the application of the Web served technology.

Keywords:

Examination System Web Services Database Visual Basic .NET


第一章 引言

当今世界,社会和经济的发展对信息资源、信息技术和信息产业的依赖程度越来越大,信息化是世界各国发展经济的共同选择。我国也已把加快国家经济信息化提到重要日程。西方国家在普及计算机知识,全方位、多层次地培养各行各业计算机应用人员方面,有许多经验值得我们借鉴,其中一条就是开展全国范围的定期的计算机各类等级考试。为了适应我国必须尽快实现国家经济信息化,提高全社会的计算机应用水平,使我国的计算机应用与国际社会接轨的形势的要求,在我国也已经设立或引进了各类计算机考试。国家教委组织的"全国计算机等级考试"就是一种。等级考试除了理论考以外,很重要的一部分是上机操作,也就是在指定的时间里完成指定的计算机基本操作,按给定要求编写、调试程序。上机考试与传统的考试相比,它最大限度排除了人为因素的作用,保证了考试的客观性;考生在考试之后,一般就能够得到成绩,使考试具有实时性;而且通过计算机改卷,标准一致,具有最佳的可靠性。同时,还可以考查考生的实际动手操作能力。

1.1 计算机等级考试(二级)

全国计算机等级考试(二级)是教育部考试中心面向社会推出的一项测试应试者计算机应用知识和能力的考试。二级考试的基本要求是:具有计算机的基础知识;了解操作系统的基本概念,掌握常用操作系统的使用;掌握基本数据结构和常用算法,熟悉算法描述工具──流程图的使用;能熟练地使用一种高级语言或数据库语言编写程序、调试程序。

二级考试包含的内容比较广泛,有计算机的基础知识,Windows的基本操作,程序设计以及数据库的知识。以往程序设计的语言主要有QBASIC、FORTRAN、Pascal、C以及FOXBASE,其中FOXBASE是数据库程序设计语言,其余四种为高级语言。每种高级语言的考试内容基本包括该语言的基本结构、基本语句、数据类型、运算符、表达式、数组、函数、文件等。

教育部考试中心新推出了2004版全国计算机等级考试(NCRE)大纲,对全国计算机等级考试的考试科目设置、考核内容、考试形式等实施调整。二级考试新增加了Java、Access、C++三个科目,逐步停考二级QBasic和FoxBASE,这些新增科目计划将于明年上半年在我省正式推广。二级科目名称进一步规范,根据应用性质和科目特点将现有科目划分成二级语言程序设计(C、C++、Java、Visual Basic、QBasic)和二级数据库程序设计(FoxBASE、Visual FoxPro、Access)两类。二级上机考试中将取消对DOS部分的考核,各科目上机考试运行平台为:Access 2000、Java JDK 1.4.2、Visual C++ 6.0、Visual Basic 6.0、Visual FoxPro6.0、Turbo C 2.0,除了Turbo C 2.0仍在DOS 5.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组件来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程。所有的系统升级和更新均只要在服务器端完成,这样可较灵活地适应考试内容的不断更新,从而减少系统升级、更新的工作量,同时可进行远程系统维护和管理。

第二章 考试系统采用的技术和运行平台

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

2.1 Visual Basic .NET

Microsoft Visual http://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 http://Basic.NET

Visual http://Basic.NET对于IT业来说,它可能是一个小的前进,但是对VB开发人员来说,它是一个巨大的进步!Visual Basic .NET并不只是向核心技术添加和修改了技术特性的VB新版本,它打破了模式的框框!实际上它是一种新编程语言,基于新的核心技术——.NET范例。在Visual Basic .NET之中,技术变化是如此之多,以致VB开发人员可以与C#,C++和Java开发人员相竞争。

在许多方面Visual Basic .NET都与它以前的版本不同。它具有更高的一致性和类型安全级别。用Visual Basic .NET我们更容易写出控制性、可读性很高的代码。虽然它有时要求你习惯于那些编译时额外的检查,但它将在你测试和调试时,为你节约宝贵的时间。

http://VB.NET的语法与VB 6.0已经有了根本性的差别,与其说http://VB.NET是VB 6.0的升级,不如说http://VB.NET是C#的Basic版本。由于采用了CLI的结构,http://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服务不作此类的要求, 它不依赖于任何平台或公司。它的部分吸引力在于,不管是在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服务模型,如愿以偿地开发出新一代应用程序。

http://VB.NET平台内建了对Web服务的支持,包括Web服务的构建和使用。与其它开发平台不同,使用.NET平台,你不需要其他的工具或者SDK就可以完成Web服务的开发了。.NET Framework本身就全面支持Web 服务,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。利用Visual http://Studio.Net,你可以不必了解HTTP、XML、SOAP、WSDL等底层协议,同样能开发和使用Web服务。

2.5 考试系统的运行平台

2.5.1 硬件平台

Web服务器和数据库服务器可共用一台或分别用一台专用服务器或高档PC机,联网设备可采用交换机或HUB,带宽为10M--100M。

2.5.2 软件平台

操作系统

服务器端采用Windows 2000 SERVER ,客户端采用Windows即均可。

Web服务器

目前,市场上有很多Web服务器软件,如IIS、Netscape Enterprise Server、Apache等,各有千秋,其中微软的IIS 具有对系统硬件要求低、功能强、配置简便且与Windows 紧密集成等优点,比较适合各院校和中学的网络硬、软件环境,因此我们选用IIS 5.0。

数据库服务器

数据库服务器与 Web服务器应有较紧密的结合,Windows 、IIS均为微软的产品,其数据库也有相应的产品,即SQL Server,所以我们选用SQL Server 2000 为数据库服务器。

浏览器

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各类试题模块

选择题模块

初次进入选择题界面时,显示第一个题目的内容。可以用“上题”、“下题” 按钮来选择不同的题目,在选择“上题”或“下题”前,先要记录下本题的答案(在客户端执行)。可以用“保存”按钮来上传答案,即把考生的答案写入回收表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

第四章 考试系统实现的关键技术

4.1 数据库操作

在该系统中,连接数据库的方法有两种,一种是通过SQL查询(利用SqlConnection类来连接SQL Server 2000),另一种是通过OLEDB技术(利用OleDbConnection类来连接几种不同类型的数据库)。前一种方法是专门针对SQL Server的,后一种方法是为了操作其他数据库,如Access、Foxpro等。当然,操作SQL Server也可以用后一种方法,但是这样做性能比较差。

程序调试题和程序设计题在数据库中是以文件的形式存放的,因此需要用二进制流写或读字段。在SQL和在Access中两者操作方式是不一样的。以读二进制字段为例。

4.1.1 在Access中读二进制字段

主要代码如下:

Dim PictureCol As Integer = 0

Dim cn As New OleDbConnection(OleConnection)

Dim cmd As New OleDbCommand()

cmd.CommandText = "SELECT chengxtsda FROM result WHERE id='" & idnumber & "'"

Dim dr As OleDbDataReader = cmd.ExecuteReader()

dr.Read()

Dim b(dr.GetBytes(PictureCol, 0, Nothing, 0, Integer.MaxValue) - 1) As Byte

dr.GetBytes(PictureCol, 0, b, 0, b.Length)

Dim fs As New System.IO.FileStream(DestFilePath,IO.FileMode.Create, IO.FileAccess.Write)

fs.Write(b, 0, b.Length)

4.1.2 在SQL Server中读取二进制信息

主要代码如下:

Dim myconnection As SqlConnection = New SqlConnection(StrConnection)

Dim myCommand As SqlCommand = New SqlCommand()

Dim sqlrd As SqlDataReader

myCommand.CommandText = "SELECT " & field & " FROM " & table & " WHERE id='" & thnumber & "'"

sqlrd = myCommand.ExecuteReader(CommandBehavior.SingleRow)

Dim bytedata() As Byte

While sqlrd.Read()

If Not (sqlrd.IsDBNull(0)) Then

bytedata = sqlrd.GetValue(0)

readblob = bytedata

End If

End While

4.2 打乱序号算法

前面提到,每套试卷形成时,随机抽取各类试题的题号,同一套试题中的题目每次出现的顺序都是不一样的,即序号是被打乱的。打乱序号算法的主要代码如下:

Dim seq, Mainloop, ChosenNumber, n, i As Integer

Dim A(MaxNumber), B(MaxNumber) As Integer

Dim rnd As New Random()

For seq = 1 To MaxNumber

B(seq) = seq

Next

For Mainloop = MaxNumber To 1 Step -1

ChosenNumber = rnd.Next(1, Mainloop)

A(MaxNumber - Mainloop + 1) = B(ChosenNumber)

B(ChosenNumber) = B(Mainloop)

Next

randomorder = A

4.3 文件的压缩与解压缩

做程序调试和程序设计题时,需要先下载题目,为一个压缩文件,下载时需要进行解压缩。当编程完毕后,需要上传答案,这时候又要对文件进行压缩,再传到指定目录。

解压缩文件算法的主要代码(其中fname为要解压缩的文件,unzipdir为解压之后的文件所存放的位置):

Dim s As ZipInputStream = New ZipInputStream(File.OpenRead(fname))

Dim theEntry As ZipEntry = s.GetNextEntry()

Try

While (theEntry.Size >= 0)

Dim directoryName As String = unzipdir & Path.GetDirectoryName(theEntry.Name)

Dim fileName As String = Path.GetFileName(theEntry.Name)

Directory.CreateDirectory(directoryName)

If (fileName <> String.Empty) Then

Dim streamWriter As FileStream

streamWriter = File.Create(directoryName & "\" & fileName)

Dim size As Integer = 2048

Dim data(2048) As Byte

While (True)

size = s.Read(data, 0, data.Length)

If (size > 0) Then

streamWriter.Write(data, 0, size)

Else

Exit While

End If

End While

streamWriter.Close()

End If

压缩文件算法的主要代码(其中testdir指要压缩文件的位置,filename指压缩后文件的名字):

Dim astrFileNames() As String = Directory.GetFiles(testdir)

Dim strmZipOutputStream As ZipOutputStream

strmZipOutputStream = New ZipOutputStream(File.Create(filename))

REM Compression Level: 0-9

REM 0: no(Compression)

REM 9: maximum compression

strmZipOutputStream.SetLevel(6)

Dim objCrc32 As New Crc32()

Dim strFile As String

Dim strFold As String

For Each strFile In astrFileNames

Dim strmFile As FileStream = File.OpenRead(strFile)

Dim abyBuffer(strmFile.Length - 1) As Byte

Dim substrfile As String = strFile.Substring(Len(testdir) + 1, Len(strFile) - Len(testdir) - 1)

strmFile.Read(abyBuffer, 0, abyBuffer.Length)

Dim objZipEntry As ZipEntry = New ZipEntry(substrfile) objZipEntry.DateTime = DateTime.Now

objZipEntry.Size = strmFile.Length

strmFile.Close()

objCrc32.Reset()

objCrc32.Update(abyBuffer)

objZipEntry.Crc = objCrc32.Value

strmZipOutputStream.PutNextEntry(objZipEntry)

strmZipOutputStream.Write(abyBuffer, 0, abyBuffer.Length)

Next

DirSearch(testdir, strmZipOutputStream)

第五章 总结与展望

该考试系统基本实现了考生登录、自动组卷、做题、回收答案等功能,但是没有实现阅卷功能。其中自动组卷是采用了一种算法来打乱每套试题的题目顺序(算法见4.2),而不是将题库中的题目随机组合成一套试卷。虽然采用前一种方法,出现相同试卷的概率很小,但是还是不及后一种方法完善。如果采用后一种方法,除了能随机抽取题目外,还必须要保证每套试卷的知识点分布均匀,难度相同,要做到这一点并不容易。但是我认为,一个好的生成试卷算法是应该这样的。

基于Web技术的考试系统易用、灵活,也具有良好的安全性,由于采用了大型的数据库系统,所以试题、答案也具有较好的安全性,它为进一步开展计算机考试提供了有利的帮助,具有较好的社会效益。


参考文献

[1] 侯戓,《.NET Web服务入门经典》,清华大学出版社,2003

[2] 康博译,《http://VB.NET高级编程》,清华大学出版社,2003

[3] 郁红英、冯庚豹,《Visual http://Basic.NET 语句与函数全》,电子工业出版社,2002

[4] 唐树才等,《http://Visual.Basic.NET程序设计与应用》,电子工业出版社,2002.7

[5] 李振格等,《SQL Server 2000与http://Visual.Basic.NET数据库》,清华大学出版社,2002.9

[6] 李昆堂,《SQL Server 2000与XML应用技术》,中国铁道出版社,2003

[8] 朱贵良,宋庆涛,许强,基于Web模式的网络考试系统安全性研究,计算机工程与应用,2002,26(3),173--175

[9] 涂振宇,王勇,曾王宣,智能组卷算法研究,江西教育学院学报,2002年06期

[10] Jeffrey Richter,《Programming Applications for Microsoft Windows》,Microsoft Press,2000

[11] Joseph Bustos 、Karli Watson,《http://Beginning.NET Web Services using C#》, Microsoft Press,2002


附录A:

系统使用说明:

1)登录:

输入准考证号,点击“确定”,如果正确,则显示考试姓名,点击“开考”进入系统;否则不能进入系统,直到输入正确的准考证号。如果是第一次进入,则直接进入考试界面;如果不是第一次进入,则要求输入重做密码,只有密码正确才能进入考试界面。

2)考试界面:

可以在该界面上选择要做的题目:选择题、判断题、概念填空题、程序填空题、程序调试题、程序设计题。点击相应的按钮,可进入到相应题目的界面。

3)选择题、判断题、概念填空题、程序填空题:

刚进入界面时,显示的是第一题的题目,可以通过“上题”、“下题”按钮来选择不同的题目。做完后,通过“保存”按钮上传答案,并通过“返回”按钮返回到考试界面。

4)程序调试题、程序设计题:

通过“下载”按钮下载题目。做题时同样通过“上题”、“下题”按钮来选择不同的题目。做完后通过“上传”按钮上传答案,并通过“返回”按钮返回到考试界面。

5)交卷

在交卷前,可以通过“答题情况”来检查各类型题目上传是否成功,如果不成功,可以再次上传。通过“交卷退出”退出系统。

你可能感兴趣的:(Android,java,数据库,服务器,android,android,studio)