资源描述
网上考试系统的设计与实现摘要:为了提高教师的工作效率,把老师从烦琐的考试工作中解放出来,我们设计和开发了这套基于JSP的网上考试系统。本文阐述了一个基于JSP技术的网上考试系统的体系结构和设计实现过程。系统采用的三层体系结构,JSP+JavaBean+SQL Server 2000开发,即前端由JSP网页实现表现逻辑,中间使用JavaBean的组件实现系统内部复杂的业务逻辑,后端使用SQL Server 2000数据库实现数据逻辑,并设计了网上考试系统的解决方案。系统实现了三种权限用户信息的管理,题库的增加、修改、删除基本功能,实现了随机生成试卷,并管理试卷的发布状态。实现了学生在线考试和成绩查询的功能。关键词:网上考试系统;JSP;SQL Server数据库 The Design and Realization Of ExamOnline SystemAbstract:In order to improve the teachers working efficiency, liberate teacher from convoluted work about test, we design and develop a network examination system that based on JSP. This article has explained the system structure and design process of a network examination system that based on JSP technology. The system uses three systems structures, and developed by JSP-JavaBean-SQL Server 2000 technology. Videlicet, at foreground is realized displaying logic by JSP WebPages, in the middle used JavaBean component complete the complicated business logic inner system, at background uses SQL Server 2000 databases accomplish data logic, and design a solution for a network examination system. This system accomplished three types user informations management. And accomplished the query, add, delete and edit functions of item bank. And accomplished arranging paper randomly, and manage the papers publish state. The system accomplished exam on line and query score.Keywords:ExamOline System;JSP;SQL Server 2000I目录目录I1前言12 系统设计相关技术22.1 系统开发模式22.1.1 Client/Server模式及其特点22.1.2Brower/Server模式及其特点32.1 JSP简介42.1.1 JavaBean技术介绍52.1.2 JSP的运行原理52.2 JSP数据库访问技术62.2.1 JDBC技术及实现方法62.2.2连接池技术及实现方法73 系统需求分析93.1 系统功能分析93.2 系统性能需求分析93.3 设计原则104 系统方案及概要设计114.1 系统方案设计114.2 系统概要设计114.2.1 系统层次模块114.2.2 系统流程124.2.3. 数据库设计135 系统详细设计及关键技术155.1 总体设计155.1.1系统架构模式155.1.2用户登录设计155.2 主要功能模块设计和实现165.2.1 管理员功能模块165.2.2 教师功能模块195.2.3 学生功能模块205.3 关键技术研究与分析236 总结27致谢28参考文献29II201前言伴随着网络技术的飞速发展,尤其是互联网、宽带技术在应用中日益成熟,网络技术已经应用到我们生产和生活的各个方面,成为不可缺少的工具。网络的最大优势是对分散资源的高度整合能力,通过网络可以突破时间和空间上的限制,使用户能够随时随地享用几乎是无限的各种数据资源,可以了解到最新、最及时的信息,并可进行实时的交流,以便做出最合理高效的决策。基于网络的上述优势,应用成熟的网络技术来开发基于网络的教学辅助系统在技术上是完全可以实现的。随着科技的进步与经济的繁荣,校园计算机网络的建立与应用已相当普遍,它对内综合了校园中的计算机资源,对外建立了交换体系,更为快速的传递数据信息,初步达到了校园内资源的共享。为此,我们可以发挥网络的资源整和优势,将分散在校园各处的教学资源有机的结合起来,使有限的资源得到充分的利用,加大信息的流动效率,实现信息量的相对增加。应用网络技术解决这些问题,一方面可以使当前相当急迫的人与资源的矛盾得到高效、合理的解决;另一方面又实现了教学工作的信息化,符合当今社会发展的方向,并为以后的改进和发展提供了余地。同时,作为校园信息化先锋的计算机系,也为实现学院信息化贡献一份力量,起到好的带头作用。对于我们个人来说,希望通过这次毕业设计,达到提高自己专业水平和解决实际问题的能力,为以后步入社会打下良好的基础2 系统设计相关技术该网上考试系统系统主要采用JSP、HTML、SQL Server数据库等技术和工具,整体设计遵循软件工程的方法,经过需求分析、系统设计、详细设计、文档和代码的编制、模块测试和系统实现这几个阶段。下面就对这几种技术和方法做一个概述。2.1 系统开发模式进入 90年代以来,计算机系统的发展出现两个显著的特点:计算机系统由封闭系统走向开放系统;计算机系统由集中式系统向分布式系统过渡。客户机 /服务器 (Client/ Server)模式Intranet(Brower/ server)就是这两种趋势的代表。2.1.1 Client/Server模式及其特点计算机技术的飞速发展使得计算机系统功能越来越强,体积越来越小,价格也越来越便宜。与此同时,网络技术也日臻完善,特别是局域网的广泛应用,使用户能跨越空间的限制,实现资源共享。这些因素都促进计算机系统向分布式系统过渡,客户机/服务器模式正好满足这种需要。客户机/服务器技术的基本原理就是把数据处理与应用程序分开,分别交给数据库(server)和工作站(client)执行。数据库服务器上的数据仅需一次性存贮后可以被很多不同的应用软件存取。数据库服务器处理的仅仅是数据请求,并将所请求的数据(而非整个文件)传送给应用程序。因此,对数据库服务器来说,它的功能主要是:维护数据的完整性和安全性,错误恢复以及改善用户并发存取和修改数据。而客户机就集中在用户和应用程序之间的交互性作业。与其它类型的系统比较,Client/Server方式主要有以下一些特点:1) 具有更高的效率。它通过一种有效的任务分割,使服务器和工作站各司其职,极大地提高了整个计算机系统的性能,同样的设备,运用不同的组合方式,就会得到完全不同的效果。同时,由于大部分数据处理工作都转给了数据库服务器,网络上传输的主要是数据请求和少量的特定数据,因此网络拥挤状况也得到很大的改善。2) 具有更灵活的扩展性。这种方式为用户的设备更新提供了便利的途径。因为系统的功能被一分为二,从理论上讲,当基本的软、硬件设备更新时,如果不改变服务器的配置,就不会对前端产生任何影响。对用户的应用开发和培训方面的投资也进行了最大程度的保护。3) 工作站具有更大的独立性。用户不必局限于一种类型的系统和平台。在一个以SQL Server为基础的客户机/服务器系统中,其工作站可以是IBM兼容的PC机,Machintosh,Unix工作站或它们的任意组合。此外,它们可以运行若干种操作系统中的任意一种,如MS-DOS或PC- DOS,Microsoft windows,IBMOS/2或 Apple System7。这种工作站的独立性的必然结果是应用程序的独立性,因为各种工作站并不都需要去使用相同的数据库管理系统应用软件,用户可以继续使用他所熟悉的软件去访问数据库。4) 数据具有更高的安全性。因为所有的数据处理工作都交给了数据库管理系统,它可以提供保护数据的任何服务,诸如加密文件的存储,访问数据库时的实时磁带备份,磁盘镜象等等。它还可以提供某种类型的事务处理,去保持对数据库修改的跟踪和纠正服务器崩溃情况下所出的问题。客户机/服务器技术的出现对信息技术具有巨大的影响,它促进了分布式系统的发展,为异构系统间的互连和互操作提供了良好的途径,又更好地满足联机事务处理系统的需要。目前因特网上的网站大多采用这种方式未组建计算机系统。但是,在C/S结构中应用系统被一分为二,前台客户机用于完成用户的交互任务,后台服务器负责数据处理。C/S结构是基于局域网环境的,具有较强的数据操纵和事务处理能力,对数据的安全性和完整性要求较高。但存在封闭性强,兼容性差,扩展性差,升级及维护性差的缺陷。2.1.2Brower/Server模式及其特点近年来,互联网迅猛发展,基于图形化的网络浏览器的开发,更加推动了环球信息网的发展。随着 Internet用户数的迅速增加,TCP/IP协议已被各计算机与网络厂商以及广大用户普遍接受。同时各单位内部局域网普遍应用,它们都想与 Internet连接以获得更多的资源来满足其经营和发展的需要。从Client/ Server到Brower/Server已成为一种必然的趋势。Brower/Server的基本思想是在内部网络上采用Internet的TCP/IP作为通讯协议,并以Internet的 Web模型作为标准平台,通过简单的浏览界面,方便地提供电子邮件,文件传输,电子公告和新闻数据查询等服务,还可以通过防火墙或代理服务器等方式与Internet连接以实现企业内部网上的用户对Internet进行浏览查询,同时对外提供信息服务。主要由三部分组成:浏览器,WWW服务器和后台数据库服务器。浏览器是一个标准的客户端应用软件,为各种操作系统提供统一的操作界面;WWW服务器既可作浏览服务器,也可用作应用服务器:作为浏览服务器时,用来存储HTML文件,并通过HTTP协议在浏览器和服务器之间的连接,供用户浏览;作为应用服务器时,它存储可执行的应用程序,并嵌套HTML文件,由用户在客户机上启动,在服务器上执行,并通过标准的通用网关接口程序(CGI)或各厂商提供的专用API访问后台数据库运行结果,再通过浏览器输出,后台数据库则用来存取数据信息。这种方式具有如下的基本特征:1) 以目标为中心,实现各类信息的包容与广泛的信息共享。因为它突破传统结构的限制,人们可以轻易地以共同的兴趣,共同的利益,共同的范围,共同的工作目标为中心组织信息交流,实现广泛的信息共享。信息的提供者和使用者融为一体。2) 技术的开放性它所基于的标准是开放的,非专用的,是经过标准化组织制定的。以Web为核心的技术构成了与平台无关的统一而简单的交流方式。3) 在较低的管理成本的客户机/服务器模式中,开发人员必须处理多种平台,每个平台上有不同的软件和文件,必须在每一台客户机上进行维护和升级,需要较高的成本。Web应用具有较低维护费用,允许在中心服务器上安装应用程序,需要时可将它下载到客户机,管理费用低。另外由于这种技术简明易用,培训费用也很低。4) 自我服务。每个人都在这种信息系统上各取所需,无需他人帮助说明或解释,能够实现客户化的自我服务。在B/S结构中以WEB为中心,基于TCP协议和HTTP协议,改变了传统C/S结构下的客户机/服务器的二层结构,形成客户机/应用服务器/数据服务器的三层结构。客户端通过浏览器发出WEB的HTTP请求,有WEB服务器接受客户请求,通过接口访问后台数据库服务器,数据库服务器处理查询请求,并将结果返回WEB服务器,最后由WEB服务器将结果转化为HTML文档及各种脚本传回客户端浏览器。B/S结构大大减轻了客户端的负担。由于基于TCP/IP协议和HTTP协议,很好的解决了跨平台问题,系统的开放性,通用性强,扩展性强,易于维护。但当HTML文档量大,将导致数据的传输效率降低。同时HTML文档难以加密,安全性较差。基于本系统的要求及上述特点介绍,B/S使用的三层结构让客户端要求降低,将服务器端的事务逻辑和数据库逻辑分开同时降低了服务器的负载,在当前的应用变的更加普遍。为此本系统将采用B/S模式,使这个开放式网上考试系统得到更广泛的应用。2.1 JSP简介JSP(Java Server Pages)是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准,JSP技术在Servlet技术基础上发展起来的,它正在飞速发展中,现已成为Java服务器编程的重要组成部分1。在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应上广泛合作的结果。JSP为创建高度动态的Web应用提供了一个独特的开发环境,是一种服务器端的应用2。按照Sun的说法, JSP能够适应市场上包括Apache Web Server,IIS4.0在内的85%的服务器产品。JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力3。在JSP环境下,HTML代码主要负责描述信息的显示样式,而嵌入的Java程序代码则用来描术处理逻辑。普通的HTML页面只依赖于Web服务器,而JSP页面需要Java语言四擎分析并执行程序代码4。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。JSP是面向web服务器的技术,客户端浏览器不需要任何附加的软件支持。JSP文件首先被翻译成标准的Servlet代码,并被编译为class文件,由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求发生时进行。JSP技术是一种开放的、跨平台的结构,因此,Web服务器及其组件能很容易升级或切换,且不会影响JSP基本的应用程序5。这一特点使JSP能够适应现实世界的各种Web应用程序不断的变化和发展。2.1.1 JavaBean技术介绍JavaBean技术是一种基于Java的组件技术,JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据的提取等,是解决代码重用问题的一种策略6。以前的组件无法实现真正的代码重用,其主要原因就是它们对于处理平台的依赖和对开发语言的依赖过重7。由于Java语言在这些方面所具有的特点和优势,使得基于它的软件JavaBean组件技术倍受人们的关注。它的任务就是:一次编写,可以在任何地方执行,可以在任何地方重用。JavaBean组件可以在任何地方重用包括了可以在应用程序、其他组件、文档、Web站点和应用程序构造器工具等多种方案中再利用。为了创建和使用Java软件组件,JavaBean被实现为一种独立于平台和结构的应用程序接口,它的实现可以忽略内部的结构及细节问题,只需要定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。JavaBean的实质就是一个.class文件,也可以成为类文件。JavaBean以binary格式保存,可以保护Java源代码不容易被他人抄袭。2.1.2 JSP的运行原理在JSP第一次获得来自于客户端浏览器的请求时,JSP文件将被JSP引擎(JSP engine)转换成一个Servlet,即将”.jsp”文件编译成Java Class文件8。当Servlet引擎接收到请求后,如果设置了使用最新的JSP,它就会去找JSP文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。Client客户端请求(Request)Web Server响应(Response)Server extension服务器扩展Servlet引擎JSP引擎Servlet引擎JSP引擎ClassloaderJavacomplierJSPparser类载入器Java编译器JSP语法分析器在编译时如果发现JSP文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则所转换产生的Servlet代码被编译,然后该Servlet被JSP引擎加载到内存中。此时JSP引擎还请求了JspInit()方法的执行,并对此Servlet初始化。JspInit()方法在Servlet的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该JSP文件的请求,服务器将检查该JSP文件自最后一次被存取后是否经过修改。如果没有修改,则将请求交还给还在内存中的Servlet的JspService()方法,执行回复操作。由于Servlet始终驻于内存,所以响应是非常快的。JSP页面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件了,所以速度非常的快。2.2 JSP数据库访问技术在一个网站中,对数据库的访问是极为重要的一部分,网页动态显示部分的工作都是通过数据库的访问技术来实现的。JSP对数据库的访问技术有两种实现方法,分别是JSP数据库连接技术(JDBC技术)和连接池(Connection Pool)技术。2.2.1 JDBC技术及实现方法JDBC (Java DataBase Connetivity)是Java的开发者-Sun的Javasoft公司制订的Java数据库连接技术的简称,可为各种常用数据库提供无缝连接技术。JDBC也是Java用于访问数据库的一套标准API,由Java语言编写的一组类与接口组成9。JDBC作为一种数据库访问技术,具有以下优点:(1)JDBC易于掌握,JDBC和ODBC都是基于同样的技术接口X/Open SQL之上,所以JDBC API与ODBC十分相似,有利于用户理解,ODBC用户可以迅速掌握JDBC技术。(2)使用简单,因为JDBC是以类的形式提供API支持,很大程度上实现了对数据库操作的封装。因此,编程人员易于使用JDBC进行数据库编程。.(3) 可移植性强,现在提供对JDBC支持的数据库系统越来越多,使用JDBC编程可以不用对程序进行任何改变而移植到其它的数据库系统上。(4) JDBC-ODBC桥技术,Java提供了JDBC-ODBC桥技术,可以让用户非常方便、高效地使用现有的ODBC数据库系统,用户使用JDBC-ODBC桥驱动器将JDBC函数调用转换为ODBC调用,不用改变自己的数据库系统就可以将应用平台向Java转变。(5)良好的可复用性,JDBC API是面向对象的,用户可以将常用的对数据库访问的方法封装为一个类(JavaBean),通过对其调用实现对代码的有效复用。(6)适用范围广,JDBC不仅可以使用在Java Application和JSP中,同时JDBC也可以使用在JavaBean, Enterprise JavaBean和Java Applet中,甚至可以通过一定的数字签名技术使用在Java Applet中,实现对客户端本地数据库的访问。通过JDBC专用驱动程序实现数据库访问的方法是通过Java提供的用于各种数据库(MS SQL Server, Oracle, MySQL, Sybase等)的专用驱动程序来实现对数据库的访问。在使用这种方法之前,首先将相关的数据库专用驱动程序放到服务器的ClassPath路径下,然后在JSP程序中创建数据库连接就可以使用数据库中的信息进行数据处理操作。这里介绍一种通过使用JDBC专用驱动程序instead。来实现查询MS SQL Server数据库的应用实例,程序代码如下:通过引用JavaBean执行对数据库的连接和对数据库记录的各种处理操作,提高了代码的重用程度,大大简化了程序设计的复杂度,发挥了组件技术的特点,提高了程序设计的效率。JDBC作为一种数据库访问技术具有使用简单、易于编写和维护、可移植性强等优点,可以高效率地实现数据库的连接。但是JDBC技术也有一定的局限性,如访问速度较低,在建立与数据库的连接时需要耗费较多的时间,而且数据库所能支持的并发连接数量有限,过多的并发连接将导致数据库运行效率的下降9。随着客户访问数据库的数量不断增加,数据库服务器的负担也会越来越重,严重时将导致系统瘫痪,这种缺陷使JDBC技术在大型的信息网站中的应用受到了限制。2.2.2连接池技术及实现方法数据库连接池(Connection pool)技术可以解决JDBC技术效率低下、耗费时间和并发连接数量有限等缺陷。数据库连接池技术在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态地对连接池中的连接进行申请、使用和释放。此外,应用程序还可以根据池中连接的使用率,动态地增加或减少池中数据库的连接数目,这样可以提高对数据库请求的访问速度,增强数据库并发请求的处理能力,不会因为过多的并发请求而导致数据库服务器的瘫痪。数据库连接池的工作原理是首先获得对连接池或者管理连接池的一个对象的引用,这一工作由一个PoolManager类完成,这个类管理ConnectionPool类的多个实例,每个ConnectionPool管理JDBC Connection对象的一个连接池。当有数据库访问请求时,就从连接池中获得一个连接对象Connection,每个对象负责一个.JDBC URL和相应的数据库登录账户的名称和密码,对数据库的访问结束后将这个连接返还连接池10。这样,在一个大型的WEB站点中,当用户访问请求的数量不断增加的时候,数据库连接技术将使数据库系统更加有效地运行,保证系统正常工作。使用连接池技术实现查询MS SQL Server数据库的程序代码如下:通过使用连接池技术可以管理一组Connection连接对象和应用程序,在用户发出连接数据库请求时,直接从连接池获得一个数据库连接对象,并且每个连接对象可以被多个应用程序共享,使用完后将连接对象返还给连接池,避免因频繁使用数据库而造成数据库的效率下降,大大提高了程序的使用效率,同时还可以通过连接池自身的管理机制来监视数据库的数量、使用情况等。3 系统需求分析3.1 系统功能分析(1)系统需要经过有效的身份验证才可以登录。(2)将登录本系统的身份定为三种:一是管理员,二是教师,三是学生,只有被授权的用户才可以使用本系统的功能。(3)系统提供合法学生进行考试并对其监控的功能。(4)系统提供对学生成绩统计和查询的功能。(5)管理员可以管理所有用户的注册信息,并有管理系统内所有资源的权限。(6)教师可以管理题库和对自己生成的试卷进行发布和取消发布,但不能管理其他教师编排的试卷。(7)用户的身份不同,使用的系统资源也不同。学生只可以参加考试和成绩查询。管理员的权限在教师之上,他拥有整个系统的全部使用权。(8)系统要提供将分析的成绩打印出来的功能。系统采用B/S模式,考生注册、考试实现、及考试成绩查询可由各考试机浏览器完成;学生考试过程中向服务器请求试题到本地机,答案存于服务器;学生信息审核、题库管理、自动组卷、考试控制、系统评分等核心业务逻辑由WEB服务器(考试中心服务器)完成。 3.2 系统性能需求分析为了保证系统能够长期、安全、稳定、可靠、高效地运行,网上考试系统应该满足以下性能需求:1) 系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。响应时间,更新处理时间都比较迅速,完全满足用户要求。一般操作的响应时间应在1-2s内,对数据的导入、导出、软磁盘和打印机的操作也应在可接受的时间内完成。 2) 系统的开放性和系统的可扩充性 系统在开发过程中,应该充分考虑以后的可扩充性。例如,用户查询的需求也会不断地更新和完善。求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,即系统应是一个开放系统,只要符合一定的规范,可以简单地加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换,完成系统的升级和更新换代。3) 系统的易用性和易维护性系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。4) 系统的标准性系统在设计、开发、使用过程中,要涉及很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如,在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。3.3 设计原则1) 合理性原则2) 系统的设计要求既能体现考试的严肃性,通过考试能真实地反应出学生对知识的掌握情况,又要兼顾Internet的特点,为学生设计出快捷、方便的答题功能;3) 安全性原则4) 网上考试系统模块测验考试的任何一个关键环节均需要身份验证,考试过程中的数据传输及存储均要经过严格的加密;在设计中将题库、卷库与考试过程中所使用的WEB数据库服务器分开,充分保证题库与试卷库的安全性;5) 可扩充性原则6) 系统要具有良好的可扩充性,能根据网上考试系统模块测验考试的要求,进行相应的扩展;7) 先进性原则 8) 从开发工具的选择到系统设计均采用国际、国内先进IT相关技术。4 系统方案及概要设计4.1 系统方案设计考试系统的用户分为管理员、教师和学生三种,工作流程分为系统管理、题库与组卷和考试及批阅三个阶段;支持系统的数据库分为:考试监控库、资源库、用户信息库、题目库、试卷库、答题库和成绩库。系统的功能模块分别为:用户管理、资源管理、试题编制、试题管理、试卷生成、考试与提交、试卷评分、成绩入库、成绩查询等。系统方案描述:进入系统,首先需要登录,然后根据分配的权限,可以进行相应的操作。(1)系统管理员初始化系统管理员需要对系统初始化参数进行设置:资源管理(添加科目、院系和班级);用户管理(此项包含用户权限分配)。(2)题库管理合法登录的教师可以进行如下操作:选择科目所在的院系-选择添加题目所在科目-选择添加题目的题型-添加题目、选项和正确答案-提交。(3)生成试卷合法登录的教师可以进行如下操作:选择试卷类型-选择系别(院系)-选择科目-填写考试时间-填写试卷中的题型及题量-提交。(4)发布试卷合法登录的教师可以进行如下操作:点击试卷发布-选择试卷点击“发布试卷”(或“取消发布” )-在发布试卷(或未发布试卷)表中出现相应试卷。(4)考试与提交合法登录的学生可以进行如下操作:选择一套没有参加过的考试试卷-进入考试-完成考试后提交试卷,系统将会自动评卷,给出成绩并存入数据库。(5)成绩查询合法登录的学生可以进行如下操作:点击成绩查询-可看到自己参加的所有考试成绩记录-填写高级查询条件-点击搜索-查看其他学生成绩。4.2 系统概要设计4.2.1 系统层次模块根据系统的功能需求分析,将本系统划分为以下几个模块:用户登录用户管理模块资源管理模块题库管理模块控制中心模块试卷管理模块考试评分模块图4.1 系统功能模块各个模块包含主要功能如下:(1)用户管理模块:包括三种帐户(管理员、教师和学生)的查询、添加、删除和修改功能。(2)资源管理模块:包括系统资源(院系、科目和班级)的查询、添加、删除和修改功能。(3)控制中心模块:包括查看考试进行中的情况功能。包括已交卷和未交卷的人数以及按条件查找考生的考试情况。(4)题库管理模块:包括题库中所有题目的查询、添加、删除和修改功能。(5)试卷管理模块:包括生成试卷和发布试卷(或取消发布)功能。(6)考试评分模块:包括学生请求试卷、进行答题、提交试卷、给出评分和记录成绩功能。其中管理员权限下有用户管理模块、资源管理模块和控制中心模块;教师权限下有题库管理模块和试卷管理模块;学生权限下有考试评分模块。4.2.2 系统流程用户登录时选择身份,根据身份的不同跳转到不同的页面。(1)管理员具有对整个系统的管理权限,可以管理所有用户,管理系统资源,以及对考试过程控制。(2)教师则有权对题库进行管理,包括对题库的添加,删除和修改;对试卷管理,包括生成试卷和发布试卷,但仅限发布自己创建的试卷。(3)学生能参加考试和成绩查询,考试中有倒计时功能和定时提醒的功能。4.2.3. 数据库设计各数据表的设计:(1)管理员信息admini表:存储管理员的基本信息;(2)教师信息teacher表:存储教师的基本信息;(3)学生信息student表:存储学生的基本信息;(4)题库pool表:包含问题、选项和答案等;(5)试卷属性paper表:存储的基本属性表;(6)被抽取的问题question表:存储根据试卷属性抽取的题目及选项,用来组成试卷的所有题目;(7)监控monitor表:此表为一个临时表,存储学生进入考试状态的相关信息;(8)院系department表:存储所有的院系信息;(9)班级class表:存储所有的班级信息;(10)科目subject表:存储所有科目信息;(11)答题answer表:存储学生提交的答案;(12)成绩score表:存储学生的考试成绩;表4.1学生信息表名称字段名数据类型主键非空用户名usernamechar(20)YESYES密码passwordchar(20)NONO姓名namevarchar(50)NONO性别sexchar(2)NONO出生日期birthdaydatetime(8)NONO系别deptnamevarchar(50)NONO专业professionvarchar(50)NONO班级classvarchar(50)NONO学号numint(4)NONO电子邮箱emailvarchar(50)NONO状态stateint(4)NONO身份等级tpriint(4)NONO表4.2 试卷属性表名称字段名数据类型主键非空试卷号paperedint (4)YESYES试卷类型paperheadvarchar(50)NONO科目subjnamevarchar(50)NONO院系deptnamevarchar(50)NONO状态stateint (4)NONO考试时间timeint (4)NONO创建者creatbyvarchar(50)NONO表4.3 题库表名称字段名数据类型主键非空问题号sequenceint(4)YESYES科目subjvarchar(50)NONO题型typevarchar(50)NONO问题questionvarchar(250)NONO选项1option1varchar(250)NONO选项2option2varchar(250)NONO选项3option3varchar(250)NONO选项4option4varchar(250)NONO答案answervarchar(5)NONO表 4.4 院系信息表名称字段名数据类型主键非空院系编号deptcodechar(10)YESYES院系名称deptnamevarchar(50)NONO表4.5 班级信息表名称字段名数据类型主键非空院系名称deptnamevarchar(50)YESYES班级编号classcodechar(10)YESYES班级名称classnamevarchar(50)NONO人数totalint(4)NONO数据库连接是此系统最为重要的一部分,Java中连接数据库的技术是JDBC (Java Database Connectivity)。大多数数据库系统带有JDBC驱动程序, Java程序就通过JDBC驱动程序与数据库相连,执行查询、提取、插入数据等等操作。另外Sun公司还开发了JDBC-ODBC桥,用此技术Java程序就可以访问带有ODBC驱动程序的数据库。5 系统详细设计及关键技术5.1 总体设计5.1.1系统架构模式本系统采用三层B/S架构模式,即客户端浏览器、应用服务器和数据库。这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子“苗条”了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构层与层之间相互独立,任何一层的改变不影响其它层的功能。它从根本上改变了传统的二层C/S体系结构的缺陷,是应用系统体系结构中一次深刻的变革。图 5.1系统构架模式图5.1.2用户登录设计所有用户都通过主界面调用login.jsp文件验证用户身份,根据不同身份转向相应验证程序,验证过程需要检索数据库中的用户信息表,检查用户名是否存在且密码是否匹配。根据不同的结果调用不同的页面。5.2 主要功能模块设计和实现下图为本系统的登陆主界面,用户通过本界面登陆系统来完成功能。图5.2登陆主界面5.2.1 管理员功能模块管理员具有三个模块功能,包括帐户管理、资源管理和监控中心。其中帐户管理可以对自身、教师和学生信息进行查询、添加、修改和删除操作;资源管理可以对系统中的院(院系)和科目进行相同操作。而监控中心则是对正在考试中的情况进行时实查看。1.管理员登录输入:管理员的用户名,密码。处理:判断用户名和密码是否有效。填入用户名和密码后点击登录按扭,系统将自动从数据库中的管理员信息表中判断是否存在相同的管理员用户名和密码,如果有则进入系统,如果不存在则提示用户名和密码有错误信息。输出:登录成功,进入管理员的系统使用资源页面,不成功则显示错误信息页面。2. 帐户管理(1)自身帐户输入:新密码,姓名,性别,院系,工作证号和电子邮箱。处理:填入工作证号,密码和其他必要的信息后点击修改按扭,系统将自动从数据库中的管理员信息表中判断是否存在相同的管理员和密码,如果有则修改管理员信息表,不成功则显示错误信息页面。输出:修改成功,进入管理员的登录页面,不成功则显示错误信息页面。(2)教师帐户输入:新密码,姓名,性别,院系,工作证号和电子邮箱。处理:填入必要的信息后点击修改信息按扭,系统将自动从数据库中的教师信息表中判断是否存在相同的该条记录,如果有则修改教师信息表,不成功则显示错误信息页面。输出:修改成功则返回到教师信息查询页面,不成功则显示错误信息页面。(3)学生帐户输入:用户名,新密码,确认密码,姓名,性别,出生日期,院系,专业,班级,学号,电子邮箱(可选)和状态。处理:填入必要的信息后点击修改信息按扭,系统将自动从数据库中的学生信息表中判断是否存在相同的该条记录,如果有则修改学生信息表,不成功则显示错误信息页面。输出:修改成功则返回到学生信息查询页面,不成功则显示错误信息页面。图5.3学生帐户管理页面3. 资源管理(1)添加院系输入:院系编号和院系名称。处理:先判断编号是否已经存在,若不存在则在department表中插入一条记录;否则给出重新输入的信息。输出:提交成功,提示成功信息,不成功则显示错误信息页面。(2)添加科目输入:院系,科目编号和科目名称。处理:先判断编号是否已经存在,若不存在则在subject表中插入一条记录;否则给出重新输入的信息。输出:提交成功,提示成功信息,不成功则显示错误信息页面。(3)添加班级输入:所属院系、班级编号、班级名称和总人数。处理:先判断编号是否已经存在,若不存在则在subject表中插入一条记录;否则给出重新输入的信息。输出:若提交成功,提示成功信息,否则显示错误信息页面。图5.4 班级管理页面4. 监控中心输入:查找的字段名和关键字。处理:根据用户输入的查询条件,检索数据库中的考试情况monitor表,列出符合条件的记录,并根据状态为“1”的表示未交卷的,状态为“2”的表示已经提交是试卷。输出:学生及对应试卷信息。图 5.5考试管理监控页面5.2.2 教师功能模块教师登录后有两个功能模块:题库管理和试卷管理。其中题库管理包括查询和添加功能,进入查询页面后,可以对查出的题目进行修改和删除操作;试卷管理包括生成试卷和发布试卷功能。1. 题库管理(1)题库查询输入:查找条件:题型,科目和关键字。处理:根据输入的条件查找数据库中pool表,将相应的题目记录显示到页面上。本页还提供了分页显示的功能,可以电击“上一页”或“下一页”来逐页浏览,也可以用“转到第_页”的跳转功能,还提供直接转到首页和尾页的功能。输出:若有相关记录存在则显示在页面上,若没有则页面为空。(2)添加题库输入:科目、题型、问题、选项和正确答案。处理:首先自动生成一个序号,当用户填写完成后,点击“提交”,Tomcat服务器将向数据库服务器发出插入一条数据的请求,当数据是合法的,数据库服务器则执行操作,完成后页面将会转到题库查询页面。输出:若添加成功在题库查询页面可以看到新添加的记录。图5.6题库管理页面2. 试卷管理试卷管理模块包括两大功能:生成试卷和发布试卷(1)生成试卷输入:试卷的基本属性:试卷类型、院系、科目、考试时间;以及试卷中将会出现的题型及其数量和分值;抽题方式。处理:将试卷的基本属性存储到paper表中,以便作为学生在进入考试时随机抽取题目的依据。试卷属性包括试卷类型、院系、科目、考试时间、以及题型和相对应的分值。输出:得到一条试卷属性记录和定义的数目的题目记录。图5.7试卷生成页面(2)发布试卷输入:处理:向数据库服务器请求查找状态为0和为1的两种试卷,分别显示。点击“更改状态”栏下的“发布”或“取消发布”则能改变试卷的状态属性。输出:将两种状态不同的试卷分别显示。图5.8试卷发布页面5.2.3 学生功能模块学生成功登陆页面如下:图5.9学生成功登陆页面合法学生登录后,具有两个功能:一是参加考试;二是成绩查询。参加考试之前必须选择一套试卷,然后读取相关试题。在进入考试之前还会出现一个确定提示。成绩查询可以查询所有人的考试结果,也可按用户条件查询。1. 参加考试参加考试输入:试卷名处理:根据试卷名,获得试卷属性,再根据试卷属性随机抽取试题。首先将该题型的问题序号按原有顺序放入一个向量(Vector)中,然后随机抽取两个问题序号交换位置,重复上一步操作,直到打乱了原有序号,再按顺序提取出问题序号对应的题目放入到question表中去。再读取question表中的题目返回给客户端,则进入了考试状态,同时添加一条记录到考试情况表monitor中,状态为“1”,利用monitor表中的记录防止学生重复参加考试,当试卷被“取消发布”后将会清除monitor中的记录,防止该表数据无限增加。输出:试卷内容(问题和选项)、考试成绩。下图为学生正常登录后的考试页面截图:图5.10学生考试页面学生使用帐号登录系统,进行考试,考试系统自动处理学生的考试信息。首先进入考试登录窗口进行登录,输入正确的帐号与密码,否则系统会提示错误。学生登陆正确后,进入考试系统,开始进行考试,考试系统自动进行计时。学生点“交卷”按纽以后,系统会给出提示,如果确定要交卷,可以点击“确定”,否则点击“取消”,学生可以继续答题。 在规定考试时间结束时,考试系统将自动为学生交卷,学生自动退出考试系统。学生在考试完成提交后就会看到考试成绩,效果如下:图5.11学生考试结果页面2. 成绩查询成绩查询输入:用户信息(系别,专业,班级,学号,姓名)处理:向数据库服务器请求查询score表,将自己所有考试成绩的记录显示在页面上。输入高级查询条件,点击查询,将显示其他学生成绩。输出:符合条件的记录(姓名,学号,班级,专业,系别,试卷标题,成绩)学生成功登入页面中点击成绩查询,将会出现成绩查询页面,如下图:图5.12学生成绩查询页面5.3 关键技术研究与分析(1)分页功能的实现在本系统中分页功能是用html语言和内嵌的java语言相结合实现的,具体过程如下:int pageLine=5;/定义并初始化每页显示的记录数int totalRec=0;/定义并初始化记录总数int intPage=1;/定义并初始化转到的页码int intPageCount=0;/定义并初始化划分的页数int i;/指向记录的指针变量if (request.getParameter(page)!=null)intPage=Integer.parseInt(request.getParameter(page);tryResultSet rs1=null;rs1=poolquery.executeQuery(countsql);/ countsql为检索记录总数的SQL语句if(rs1.next()totalRec=rs1.getInt(cnt);if(pageLinetotalRec)/如果记录总数小于每页记录数pageLine=totalRec;/检索到的记录数就为每页记录数rs1.close();catch(Exception e)e.printStackTrace();intPageCount=(totalRec+pageLine-1)/pageLine;/获得划分的页数if(intPageCount0)ResultSet rs2=poolquery.executeQuery(querysql);for(i=1;i=(intPage-1)*pageLine;i+)/控制页数rs2.next();for(i=1;i=pageLine;i+)
展开阅读全文