基于java的标准化考试系统含源文件

上传人:无*** 文档编号:129855756 上传时间:2022-08-03 格式:DOC 页数:39 大小:1.39MB
返回 下载 相关 举报
基于java的标准化考试系统含源文件_第1页
第1页 / 共39页
基于java的标准化考试系统含源文件_第2页
第2页 / 共39页
基于java的标准化考试系统含源文件_第3页
第3页 / 共39页
点击查看更多>>
资源描述
摘 要随着教育信息化的发展,在线考试系统作为一种新型的考核手段和考试方式,在实际教学中得到了广泛的应用,并成为当前计算机信息系统研究与应用的热点领域。本考试系统在综合分析了当前考试系统研究成果的基础上,采用BS架构形势,利用IE浏览器作为界面设计,使用户可利用浏览器直接访问本平台,完成考试和测评。JSP技术和MYSQL数据库以及其他网络程序设计开发平台为本系统主要开发技术,本论文对在线考试系统的最重要功能,包括用户登录、身份验证、新用户注册、教师学生信息管理、在线考试、管理员登录及管理等模块,以减轻教师的工作负担、提高工作效率和考试质量为设计目标进行了较深入的研究与分析。关键词: JSP技术;MySql数据库;B/S架构摘 要Title: Online Examination System Abstract:With the development of education informationization, online examination system has been widely utilized in our daily teaching work as a new assessment means and examination method. Furthermore, it has also been a hit research and application field of current computer information systems. The online examination system presented in this paper firstly gives an integrated analysis on current examination system research achievements, and then we make use of B/S structure and IE browser as interface design to make sure the users can access the platform directly through the browser to finish the examination and assessment.The main development techniques utilized in this system include JSP technology and MYSQL databases as well as other network programming development platform. This dissertation makes a relatively further analysis on the crucial functions of online examination system, including different modules of user loging, identification, registration, information management, online examination and administrator login management. The design objectives of the online examination system presented in this paper is set as to reduce teachers workloads as well as to improve working efficiency and test quality.Keywords: JSP;MySql;B/S1 绪 论本次标准化的制作为团队分工合作完成,我们将项目的开发分部成前台显示业务界面、后台功能管理业务模块以及数据持久化业务模块。在这样的分工下,我主要负责对数据的控制性管理,即持久化业务模块功能。1.1选题背景及研究意义随着计算机科学、网络技术的迅猛发展,在教育领域里,实现网上考试可以充分利用学校现有的计算机软、硬件资源和网络资源实现考试;对于客观题由计算机来完成阅卷,可以将减少人工阅卷的工作量。目前常用的网上考试系统主要有两种基本模式:传统的C/S(客户机/服务器)模式和新型的B/S(浏览器/服务器)模式,所谓C/S 模式,即数据库(比如,试题库)内容放在远程的服务器上,在客户机上安装相应软件;C/S 结构在技术上虽然很成熟,但该结构的程序往往只局限在小型的局域网内部,不利于扩展。并且,该结构的每台客户机都需要安装相应的客户端程序。当拥有用户量比较多时,如果采用该结构,系统的安装与维护工作比较繁重。同时,由于应用程序直接安装在客户机,客户机直接和数据库服务器交换数据,系统的安全性也受到一定影响。与传统的基于C/S 模式的网上考试系统相比,B/S 体系将应用逻辑与用户界面和数据访问相分离,使系统的维护变得简单(只需要改变网页,即可实现所有用户的同步更新),同时简化了客户端的功能,用户只需浏览器即可使用此考试系统,更适宜于互联网上的考试。1.2网上考试系统的现状分析在信息技术迅速发展的今天,网络对于大多数人已不再陌生,并且其应用在人们的工作、学习和生活中越来越多地发挥着不可替代的作用。近年来随着软件工程技术、信息通信技术的快速发展以及计算机网络技术的日趋成熟,网络教育在人们的教育活动中逐步得到普及。网上考试是网络教育不可缺少的组成部分,是网络教育的一个重要环节。网上考试在国外一些国家已经得到了蓬勃发展,人们的选学课程和考试都是通过网上进行的。一些著名的考试, 如Microsoft 公司的MCSE(Microsoft 系统工程师认证考试)、GMAT(工商管理硕士入学考试)、托福考试、GRE(美国研究生入学考试)、Oracle公司的SCJP(java程序远认证)等,都是采用网上考试的形式进行的。在国内,目前绝大多数考试还停留在传统考试方式上,对互联网的真正应用仅限于一些考试的网上报名工作和网上成绩查询,还没有真正形成网上考试规模。网上考试系统作为现代教育的一个子系统,是保证教育教学质量的重要手段。在传统的考试方式下,组织一次考试要经过出题、考试、评卷、试卷分析等步骤,随着考试类型的增加及考试要求的提高,教师的工作量将会越来越大,并且其工作非常容易出错,在一定程度上说,传统的考试方式已经存在着改革的必要了。Internet 技术的发展使得考试的技术手段和载体发生了划时代的变化,考试从传统的纸笔考试到计算机辅助考试再发展到基于Web 的网上考试成为现实。现阶段,网上考试系统的主流开发技术已经相当成熟,且很好地适应了动态站点设计和基于Web 的数据库访问的要求,是当前网上考试软件实现的主流技术之一。在对大量关于网上考试系统资料的研究和学习后,根据工作的需要,针对本校实际情况特别是教学的需求,利用学校校园网已有的基础条件,我们提出一种基于Web 的网上考试系统,并用MySql数据库与jsp 技术结合进行了该系统的开发。1.3考试系统的开发平台分类考试系统由应用程序和数据库组成,开发程序主要有微软的Visual Basic、Visual C+、Visual FoxPro(VFP)和PowerBuilder、Delphi、JBuilder等,数据库主要有本地数据库Access和网络数据库SQL Server、MYSQL、ORACLE等。从理论上说开发平台可以由任何一种开发程序和数据库组成,也就是任意两两组合,但是综合考虑系统需求、软件的兼容性等方面,往往有比较合适的组合。对于数据库的选择,可以考虑数据存取速度、容量和网络存取等要求。如果考试系统是单机版的,那么可以选择Access数据库;如果数据库数据的容量在几十万行之内,并且要求网络存取,那么可以选择SQL Server;如果数据库中的数据非常大,那么从安全性和速度等方面考虑采用ORACLE是最好的选择。如果数据库采用SQL Server,有很多开发程序支持它,分别使用不同的技术连接和管理数据库。1.VB+SQL Server,DAOs方法、ODBC API或VBSQL方法管理数据库;2.VC+SQL Server,开放数据库连接Open Database Connectivity(ODBC)实现数据库访问;3.Delphi+SQL Server,数据库引擎BorlandDatabaseEngine实现连接;4.VFP+SQL Server,SQL Pass Through(SPT)技术直接访问ODBC函数,并把SQL语句发送给服务器执行;5.Java+SQL Server,JDBC实现数据库访问。2 系统的关键技术及介绍2.1 Jsp技术JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。2.1.1 Jsp的优势JSP 是在服务器上运行的编译好的公共语言运行库代码,它可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。2.1.2 常用到的JSP 内置对象Request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。它是HttpServletRequest的实例。Response对象:对客户的请求做出动态的响应,向客户端发送数据。Session对象:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。Application对象:服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。Out对象:out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。Page java.lang.Object:对应this关键字。JSP网页本身,page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:Object page = this;在JSP页面中,很少使用page对象。Config:javax.servlet. ServletConfig 的实例,该实例代表该JSP 的配置信息。常用的方法有getInitParameter(String paramNarne) 及getInitParameternarnes() 等方法。事实上, JSP 页面通常无须配置,也就不存在配置信息。因此,该对象更多地在Servlet 中有效。Exception:java.lang.Throwable 的实例,该实例代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page 的isErrorPage 属性为true 时,该对象才可以使用。常用的方法有getMessage()和printStackTrace()等。PageContext:javax.servlet.jsp.PageContext 的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据。常用的方法有getServletContext()和getServletConfig()等。2.1.3 J2SE实现网上考试系统现在已经有了多种实用的考试系统,应用于各种类型的考试,那么为什么要开发本网上考试系统呢,主要出于以下几点考虑:1.虽然各种类型考试系统研究很多,但是和操作系统无关或者支持多操作系统的考试系统的研究还比较少。Java语言和平台无关,可以使用JBuilder开发多平台下的J2SE程序。2.商品化软件一般只能获得考试系统的学生端,出于系统保密的原因,有时甚至不能批改试卷,例如省计算机一级考试下发到学校的是考试客户端,考试结束后学生答题数据包统一上交批改。但是教师希望批改后统计和分析学生成绩,并且以直观的方式显示,从而发现问题改进教学。3.自主控制考试题目,可以用于单元学习后的单元测试。4.自主扩充修改题库,随时增加修改题目。现有的考试系统不能完全符合我校定制的需求。我校的老师对考试系统有特定的要求,例如可以在,多种方式分析成绩等。结合教学和研究的需要,本人开发了基于J2SE的网上考试系统。本考试系统采用C/S模式的软件体系结构,客户端使用Java集成开发环境JBuilder开发调试生成,数据库使用Microsoft SQL Server2000技术,使用JDBC技术连接数据库。本课题中的考试系统是基于J2SE的C/S模式考试系统,具体使用Java的开发平台JBuilder实现。JBuilder的集成开发环境IDE广受业界赞誉,其可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。JBuilder集成了软件开发、调试、部署、管理、版本控制等工具,提高了项目开发速度。Java的开发平台称之为JDK,运行平台称之为JRE。为了对Java技术的使用方向和范围进行区分,避免开发中关注不必要的技术特性,Sun公司将Java平台划分成3个版本:1.J2SE(Java2 Platform Standard Edition):核心用于桌面系统的Java2平台标准版,主要用于桌面应用软件的编程。2.J2EE(Java2 Platform Enterprise Edition):针对企业级软件开发和应用的Java2平台企业版。用于创建服务器应用程序和服务,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。3.J2ME(Java2 Platform Micro Edition):适用于嵌入式系统开发的Java2平台微型版,如手机和PDA的编程。开发环境主要包括:Java Virtual Machine(JVM)、核心API、集成API、用户界面工具、部署技术、部署工具及API。J2SE主要用于实现桌面应用软件开发,其实现的系统有以下特点:1.支持多平台:Java是一种与系统平台无关的语言。在J2SE的开发模式下,使用JBuilder的Native Executable Builder工具可以生成在不同的系统和处理器平台下执行的程序,目前支持的平台有Dos、Windows、Linux、Solaris和Mac OS。2.分布性:Java带有强大有关网络协议族的库,使Java网络编程高效易用。3.面向对象:设计重点放在对象及对象的接口上。4.简单性:Java的语法比C+简单,只能在一个类中定义公用和静态的变量来实现一个全局变量,不支持goto语句,自动管理内存并且进行垃圾收集。5.可靠性和安全性:Java可以用来构建一定程度防病毒和防攻击的系统。6.其余特性:多线程、动态性、解释、结构中立性、可移植性、鲁棒性。2.2 MySql数据库MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。MySql是一种关系型数据库。此种数据库采用数据分类表格化的架构,将相关的数据组成表格,表格和表格之间可以有关联性,因此称为关系型数据库。系统管理员可透过应用程序进入服务器,更改数据型态,管理及处理服务器资源。MySql 也是一种具备延展性的数据库(scalable database),亦即MySql可以支持多位使用者同时进入数据库中处理大量的数据。如图2-1 所示:图2-1 MySql工作方式2.3 Browser/Server 模式2.3.1 Browser/Server 模式简介随着网络规模的日益扩大,应用程序的复杂程度不断提高,传统的数据库应用架构已经不能胜任。为了充分利用网络资源,越来越多的信息需要在www(World Wide Web) 上发布, 实现信息最大程度的共享。Browser/Server 结构伴随着Internet 的发展而很快地发展起来。Browser/Server 体系结构是一种三层结构,其组成如图2-2 所示:图2-2 B/S 结构示意图第一层, 浏览器是表示层, 完成用户接口功能。在客户端向URL(Uniform Resource Locator)指定的Web 服务器提出服务器请求,Web 服务器用HTTP 协议把所需文件资料传给用户,客户端接受并显示在WWW浏览器上。第二层,Web 服务器是功能层,完成客户的应用功能。即Web 服务器接受客户请求,以CGI 或ASP 与数据库连接,进行申请处理,而后数据库结果返回Web 服务器,再传至客户端。第三层,数据库服务器是数据层。数据库服务器应客户请求独立地进行各种处理。Browser/Server 系统中的Browser 作为一种通用的浏览器,一般没有任何应用程序; Browser/Server 系统中的中间层是B/S 结构中相当关键的部分,中间层在Browser/Serve 系统中充当着双重身份:从Browser 的角度看,它是Web Server,而从DB Server 的角度看,它是一个功能丰富的Client。2.3.2 Browser/Server 模式的特点B/S 系统的这种三层体系结构的特点:友好、统一的图形用户界面在Browser/Server 系统中,由于遵循了统一的标准协议,而且使用浏览器作为统一的客户软件,用户无须再花费大量的时间与精力去学习和熟悉不同的系统的使用方法,用户可以把大部分的精力集中在系统的内容上,而不是去记住系统的使用说明书。减少网络中的数据流量在Browser/Server 系统中,由于数据的处理工作是由服务器来执行的,因此在读取数据和保存数据时,这些数据只在几台服务器之间传输,不需要通过浏览器与服务器之间的网络。采用Browser/Server,可以充分地利用服务器之间的高速连接通路,减少在浏览器与服务器之间的长距离,减少网络中的数据流量。更好的开放性开放性是发挥分布式系统优势的基本保障,它为不同厂商生产的产品协同工作创造了条件,但是这些产品还应当遵循统一的标准。在Browser/Server 系统中,采用了一致的HTTP 协议以及其他一些共同的规则,不同系统之间的冲突将会大大减少。平台无关性在Browser/Server 系统中,程序的主体分布在Mid-Server 上,客户机上只有一个标准的浏览器,它与服务器之间采用标准的TCP/IP 及HTTP 等协议进行通信,因此客户端的平台是相对独立的,它不依赖于服务器方所采用的软硬平台。用户可以自由地选择自己熟悉的平台进行工作。有效地解决异种数据库联合使用的问题在Browser/Server 系统中,由于采用了Browser/Mid-Server/Server 的三层体系结构,只需在中间层服务器上安装数据库的驱动程序,或者使用专门的服务器用作与数据库连接的桥梁。因为程序的主体是运行在中间服务器上的,客户端只是一个浏览器,避免了在客户端重复安装数据库驱动程序的问题,可以有效地解决异种数据库联合使用的问题。客户端的维护工作简单Brower/Server 系统中,由于采用了通用的客户软件,维护工作主要集中在服务器端,而服务器是由专门的管理人员集中管理的,对系统的维护相对简单得多。基于B/S 结构的Web 应用体系有如此多的优势,因此本网上考试系统的主体就采用这种B/S 体系结构。2.4 Spring技术 2.4.1 Spring简介Spring是一个开源的JavaJava EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一书中的代码,最初由 Rod Johnson 和 Juergen Hoeller等开发。Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。2.4.2 Spring 中包含的关键特性强大的基于 JavaBeans 的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。一个可用于从 applet 到 Java EE 等不同运行环境的核心 Bean 工厂。数据库事务的一般化抽象层,允许声明式(Declarative)事务管理器,简化事务的划分使之与底层无关。内建的针对 JTA 和 单个 JDBC 数据源的一般化策略,使 Spring 的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反。JDBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码),简化了错误处理,大大减少了程序员的编码量。再次利用JDBC时,你无需再写出另一个 终止 (finally) 模块。并且面向JDBC的异常与Spring 通用数据访问对象(Data Access Object)异常等级相一致。以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 iBATIS SQL Maps 集成。利用众多的翻转控制方便特性来全面支持,解决了许多典型的Hibernate集成问题。所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范。灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如 JSP,FreeMarker,Velocity,Tiles,iText 以及 POI。值得注意的是,Spring 中间层可以轻易地结合于任何基于 MVC 框架的网页层,例如 Struts,WebWork,或 Tapestry。提供诸如事务管理等服务的面向方面编程框架。在对网上考试系统数据库部分进行设计的过程中,通过对系统功能进行需求分析得到系统的基本信息表,绘制系统业务流程图和系统数据流程图,分析得到数据字典;在概率结构设计阶段通过对需求阶段得到的用户需求抽象得到数据库关系模型的E-R图;在逻辑结构设计阶段得到数据库的关系模式并绘制信息表。详细设计过程如下介绍。2.5 Hibernate技术 Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。2.6 Struts技术 Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java ServletJSP技术,实现了基于Java EE Web应用的Model-View-ControllerMVC设计模式的应用框架Web Framework,是MVC经典设计模式中的一个经典产品。2.7 软件开发方法软件开发方法指使用定义好的技术和表示符号来组织软件生产过程的方法。经过多年的软件工程实践,有多种软件开发方法获得了推广。1.结构化方法:由E.Yourdon 和 L.L.Constantine 提出,认为软件系统均以一定的结构形式存在,由若干子系统构成,子系统本身又是一个系统,软件实现过程有结构化分析SA、结构化设计SD和结构化编程SP。实现结构化方法的技术有面向数据流图的方法、Jackson方法、LCP方法等。2.原型化方法:迅速开发出一个可以让用户看得见、摸得着的精简系统,适用于需求反复修改的情况。原型化开发的优点有:有助于确定系统的可行性;原型法修改比最终软件修改快且代价小;容易定义需求不确定的。由于用户在实际软件方面的介入,开发组和用户有更高层次的交流和沟通。3.净室方法:测试之前程序设计开发组就开发出几乎无错的系统。4.形式化Formal Methods方法:以严密的数学证明为基础,包括形式化分析Formal Analysis、形式化设计Formal Design和翻译Translation。5.面向对象方法:认为客观世界是由对象组成的,不同对象间的相互作用和联系构成不同的系统,以对象为中心来构造模型、组织系统。6.基于组件的软件方法:应用逻辑和实现分离,提供标准接口和框架,使软件开发变成组件的组合。模型有Sun公司的EJB、微软公司的COM+/DCOM、OMG的CORBA/ORB。7.敏捷软件开发:着眼于快速交付高质量软件,并使客户满意,包括极限编程Extreme Programming(XP)、动态系统开发方法Dynamic System Development Method、SCRUM、Crystal和Lean等。敏捷软件开发有四个核心价值:沟通Communication、反馈Feedback、勇气Courage和简单Simplicity。选择何种软件开发方法需综合考虑各种因素。首先考虑软件项目的特点;还有支持环境,如若没有相应的快速原型工具,就不可能采用快速原型方法;以及技术支持,如软件工程规范、软件工程管理经验、软件人员的技术基础和经验等。软件的开发可以选用开发方法中的一种,也可以选用几种方法的结合。考虑到本考试系统由JBuilder开发,使用面向对象的开发语言Java语言实现,所以本系统主要采用了面向对象的软件开发方法。在开发的部分阶段,还使用了原型化方法,这两种方法的结合既具有稳定性好、可复用性和可维护性的优点又方便了系统开发者和最终用户的沟通。3 系统的整体分析与设计3.1需求分析需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。3.1.1系统需要解决的主要问题系统根据用户性质不同开发四类不同的客户端程序,为不同用户所使用。1系统管理员,其主要功能是做系统管理,具体有: 系统初始化、 全面管理各类用户的密码、系统中数据库的转储与故障恢复、运行维护等, 2 教务考务管理员,其主要功能是确定该系统的应用范围、各类用户的注册、试卷的审批、学生考试试卷的自动生成等;3 出题教师(单科题库维护),该用户是本系统中最重要的一类用户,每门课程为一个用户,一般由担任该课教学任务的一个或一组教师出任,试题类型设计、 题库中所有题目的编写与选定,上述工作是在本系统功能之外完成的准备工作, 一旦完成就可借助本系统为其提供的试题录入、查询、修改、删除、浏览等功能将海量试题存入数据库,并完成校对工作,第三,该客户程序还提供两种生成试卷的功能,一种为与其它类用户相同的自动生成试卷,另一种为用户手动生成试卷功能,即由教师通过浏览功能逐题地从题库中选取。4 学生用户,对于选修某一课程的学生,本系统为其提供考试、成绩查询功能,由教师组卷并发布新闻,告之学生考试,学生将登陆考试模块进行考试。考虑到系统的安全性,本系统的用户可分为教师,学生两类。一个部分用于教师、管理员、教务考务管理员登录,主要负责进行基本资料、题库、试卷、成绩的管理以及查询等,为教师类;另外一个部分用于考生登录,参加考试和考试前的模拟训练,为学生类。 组卷策略的建立方法:选定试卷课程;设定考试总分,题型分布,考试时间和有效期。输入选定的每种题型的题数及每小题分数(各题型总分相加必须为100);将系统试题库表中该门课程所用全部题型列表显示,供用户选择;选定参加考试的人员和试卷审批人;生成试卷。 组卷策略的存储:在系统中建立了一个组卷策略基本表,其属性有:课程代码、题型代码、小题分数、试题数,在用户要自动生成试卷时系统按用户选定的课程从组卷策略表中选择试卷编号,通过该编号可查到题型代码、试题等信息。 组卷策略的使用:在自动生成试卷的算法中,依次对提到的表中每一条记录,对试题库表进行一次检索,在该检索的结果中按试题数属性值随机挑选出相应数量的试题,依次放入试卷临时表中,待排序后结合各代码库输出试卷,题库系统的设计,在不同的需求环境中可能会不同,只要满足用户要求就是好系统。可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、管理的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。软件方面,网络化考试需要的各种软件环境都已具备,数据库服务器方面则有SQL Server,均能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。其灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。3.1.2系统的基本结构层次考生进入系统应该进行身份验证。考生进入考试系统后,需要选择考试科目,所以系统还应有考试科目选择的功能。鉴于考试环境一般为机房,考试者之间的距离很近,为了避免考试做弊,试卷的试题和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后动态生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考生交卷。考生选择提交答卷后,应该自动判卷,给出考生分数。本系统是为了满足在线考试的需求而设计开发的,可在Internet 上进行实时考试。所以本考试系统应具备的考试系统功能包括:题库设计和管理,试卷的随机组卷能力,用户在线考试及记录,系统自动评卷。综合以上分析,要实现上面的所有功能模块,数据库共要设计十个表,它们分别是:科目表、班级表、系别表、专业表、试卷信息表、学生表、学生成绩表、学生答题试卷信息表、教师表、题库表。根据所要实现的功能和用户权限的设置。系统总体的层次图如下图3-1所示:图3-1系统层次图通过上面简单的系统结构图不难看出,我们的系统可以给出前台的学生考试操作界面,还可以给出可用于管理员和老师操作的管理后台。既方便系统的操作使用,又能很好的完成系统的扩展与维护。3.1.3数据库概念结构设计概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键,包括概念模型设计和新系统流程两个阶段。在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。概念数据模型独立于具体的数据处理的细节和数据库管理系统。这次设计仍采用传统的实体联系图作为概念设计的工具。再进行优化后,尽量满足结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。3.1.4数据库逻辑结构设计对于关系型数据库,数据库的概念结构设计完毕后,要把E-R图描述的概念数据模型转换为等价的关系模式极其约束。逻辑设计的基本工作主要包括如下的3个步骤。该设计以概念结构设计中的E-R图为主要依据,这几出相关的整体逻辑结构。该系统的关系模式如下图3-2所示:图3-2 概念关系模型图本次采用3NF为规范准则来分解关系。将一个关系分解为两个或者多个关系,以满足规范,从而避免产生插入异常、删除异常、更新异常。3.1.5数据库表设计管理员信息表如图3-3所示图3-3 管理员信息表生信息息表如图3-4所示图3-4 考生信息表题库信息表如图3-5所示图3-5 题库信息表试卷信息表如图3-6所示图3-6 试卷信息表3.2系统结构设计3.2.1页面模块化设计模块化设计的要求不仅是为了提高代码的重用性,更重要的是为了提高代码的可维护性和稳定性。一个模块化程度高、结构清晰的应用程序,在程序维护时的便利性是可想而知的。最初设计方案时,就要规划好哪些模块是可以提出来多次使用,哪些模块虽只使用一次,但提出来之后能使代码更清晰等。网上考试系统是一个典型的数据库开发应用程序,本系统主要用管理员、教师和学生三大模块组成,各模块功能如下:管理员模块:该模块主要是对系部、专业、班级、课程进行管理,添加修改学生、教师、信息,添加试题、试卷和审核教师制作的试卷等。教师模块:该模块主要是教师通过登录该系统能够修改个人信息,添加试题,在线制作试卷,阅卷等。学生模块:该模块主要是学生通过登录该系统能够修改个人信息(只能修改密码),进行考试等。3.2.2 MVC模式设计MVC(Model View Controller)是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图是用户看到并与之交互的界面。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。JSP页面处于表现层,也就是视力(View即V)的角色。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。JavaBean则负责数据的处理,也就是模型(Model即M)的角色。在本次的系统中,我采用struts2作为MVC框架,配合Hibernate的持久层框架,再通过Spring的工厂模式管理,很好的发挥了MVC设计理念的处理核心。使得程序在扩展性和实用性上得到了很好的体现。那么Struts2是如何充当MVC的呢?实际上,有些人习惯的称Struts2为MVC2,原因是Struts2的action的角色不再是控制器了,而是模型,控制器实现了Struts里的Servlet过滤器以及拦截器,模型实现的actions,视图则是由结果类型和结果组成的。这样的一个MVC框架始终贯彻着系统。不论前台的开始部分,还是后台的广利模式,都必须在MVC的控制下,才能井然有序的运行。3.3详细设计3.3.1 系统模块设计用户管理模块,系统权限分配主要在这一模块中,管理员可以根据实际情况,将用户设置成普通用户和有一定权限的用户。权限又分为:有审批权和有管理权两种。科目管理模块,该模块完成题库中的试题类别管理,如数学、英语等,可以根据需要进行填加、删除和修改科目。题库管理模块,试题库的管理是核心部分,试题录入与维护,修改,查询都频繁地对试题库进行操作,使题库具有较大题量可供选择,从而自动组题时随机选择程度更大,各考生的考题雷同程度较小.课程设置在录入试题前加入本门课程,试题录入可以输入各种题型的试题,题库维护包括添加、修改和删除.考试管理模块,考试管理模块主要完成试卷生成,考试新闻的发布,在线考试和评分功能,是本系统的核心模块。确定命题原则. 进行考试前,由教师确定考试课程名称,考试时间,总分数,每题的分数,自动组题. 根据命题原则,产生参加考试的机器数套试题.考试与评分. 学生通过登陆,系统进入数据库中检查是否有此人和是否考试过,如果有则调出一套试题让其开始考试.考试开始后,开始倒计时,如果时间到,评分显示该生的成绩,同时成绩入库. 如果考生提前做完了所有的试题,可以让考生自己提前结束考试,同时评分显示成绩和成绩入库. 考试新闻管理,用户未登陆时可以查看新闻标题,在登陆后可以查看新闻具体内容,并可以查看未浏览新闻的用户。功能模块图描述如图3-7所示图3-7 系统功能模块图3.3.2系统数据设计所谓题库就是试题的仓库,是把许多题目集合到一起,供试卷编制者随时查询和使用的集合。针对一般考试系统的需求,设计的主要数据项和数据结构如下所示的:用户信息,包括的数据项有:用户编号、姓名、性别、院系等。试卷信息,包括的数据项有:试卷编码、考试科目、试卷总分、试题分布、分值分布、考试时间、设定审核人、已经审核人编号、已经过时间等。成绩信息,包括的数据项有:成绩编号、用户编号、开始考试时间、结束考试时间等。试题信息,包括的数据项有:试题编号、题目正文、正确答案等。本系统应该建立一个稳定的后台数据库系统,通过该数据库管理整个考试系统所需的信息(用户信息、试题信息、试卷信息、考试信息等)。 为了从多方面来保障考生考试信息的安全性、可信性和考试成绩的可依赖性,本系统还应该建立一套机制,这套机制至少应该包括学生和教师的账号的安全机制、后台数据库的安全机制、考试过程的控制机制。3.3.3系统E-R图图3-8 系统E-R图通过上图的E-R结构可以看出,我们的系统,通过提供前台和后台进行数据的流通与交互。前台为学生提供考试界面后台为老师或管理员听过系统维护。4 标准化考试系统实现4.1在线考试系统持久层操作 4.1.1创建与数据库的连接数据流程图中主要包括处理逻辑、外部项、数据流、数据存储四个要素,数据流程图是以处理逻辑为中心来展开的,它也是系统信息模型的一种表达方法。通过分析,本系统的外部实体有管理员、教师、教务管理、系统管理员及考生,处于系统设计简便性考虑,本系统采用两个外部实体,既教师和学生,分别通过用户登陆管理、试题管理、考试新闻管理、试题管理等逻辑处理将信息录入到相应的表中,如图4-1图4-1 数据流程图4.1.2数据项描述管理员资料表:表名Admin备注记录在线考试系统内的管理员信息与密码字段属性说明Amd_idInt用于标注管理员的唯一标识amdNameVarchar用于记录管理员的姓名amdPassVarchar用于记录管理员的密码表4-1 管理员资料表试卷类型表:表名examtype备注可记录本考试系统的各种考试类型字段属性说明type_idInt用户记录考试类型的唯一字段testTitleVarchar用于记录唯一id下考试类型的名称testTimeVarchar用于记录次类型考试的时间长度表4-2 试卷类型表问题题库表:表名question备注可记录本系统内所有的考试题目字段属性说明qu_idInt用户记录考试题目的唯一标示quTitleVarchar用于记录题目的信息文言quHardVarchar用于存储此题目的难度系数quScoreVarchar用于记录次题目的分数值quAnswerVarchar用于存储题目的答案quTypeVarchar用于存储题目的类型selectOptionVarchar用于存储题目的选项type_idVarchar用于对应examtype表表4-3 题目库表学生表:表名question备注可记录本系统内所有的考试题目字段属性说明qu_idInt用户记录考试题目的唯一标示quTitleVarchar用于记录题目的信息文言quHardVarchar用于存储此题目的难度系数quScoreVarchar用于记录次题目的分数值quAnswerVarchar用于存储题目的答案quTypeVarchar用于存储题目的类型selectOptionVarchar用于存储题目的选项type_idVarchar用于对应examtype表表4-4 考生信息表通过以上的表格信息不难看出,我们的程序通过tomcat服务器,调用数据库信息,显示考试的科目,然后进入考试系统,读取题目信息,由学生作答,完成所需的考试操作,或者进入后台的管理模块,由管理员对考生、考题、考试的类别做相应的操作4.2 实现与数据库的连接4.2.1创建与数据库的连接配置数据源创建连接池,再通过Hibernate连接到数据源再对数据库进行操作。连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。连接池可以极大的改善用户的 Java 应用程序的性能,同时减少全部资源的使用。连接池主要的优点有:减少连接创建时间、简化的编程模式、受控的资源使用。连接池能够使性能最大化,同时还能将资源利用控制在一定的水平之下,不过如果超过该水平,应用程序将崩溃而不仅仅是变慢。4.2.2 通过ANT工具正向生成实体累和应用表格ANT工具文件build.Xml !- - 4.2.3 通过Spring管理javaBeanJavaBean是一种Java语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成为属性。众所周知,属性名称符合这种模式,其他Java类可以通过自省机制发现和操作这些JavaBean属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、Applet程序或应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JSP的一个重要特性就是可以用JavaBean实现功能的扩展。将大部分功能放在JavaBean中完成,以使JSP页面程序更干净简洁、利于维护。JavaBean可以很方便的用来捕获页面表单的输入并完成各种业务逻辑的处理。连接数据库的JavaBeanConn。通过JSP页面调用此JavaBean,可以实现对数据库的连接,数据表的添加、删除、更新等操作。4.3 系统主要模块页面系统根据用户性质不同开发四类不同的客户端程序,为不同用户所使用。1系统管理员,其主要功能是做系统管理,具体有: 系统初始化、 全面管理各类用户的密码、系统中数据库的转储与故障恢复、运行维护等, 2 教务考务管理员,其主要功能是确定该系统的应用范围、各类用户的注册、试卷的审批、学生考试试卷的自动生成等;3 出题教师(单科题库维护),该用户是本系统中最重要的一类用户,每门课程为一个用户,一般由担任该课教学任务的一个或一组教师出任,试题类型设计、 题库中所有题目的编写与选定,上述工作是在本系统功能之外完成的准备工作, 一旦完成就可借助本系统为其提供的试题录入、查询、修改、删除、浏览等功能将海量试题存入数据库,并完成校对工作,第三,该客户程序还提供两种生成试卷的功能,一种为与其它类用户相同的自动生成试卷,另一种为用户手动生成试卷功能,即由教师通过浏览功
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!