1、Smart 系统考试管理及成绩查询模块的设计与开发摘 要本文所涉及的系统是根据现代教育的需求所设计的一个在线考试系统。主要是基于Struts + Spring + Hibernate作为平台搭建的框架开发的一套软件。本次设计作为Smart项目的一个组成部分,主要设计和开发了其中的两个主要模块,考试管理及成绩查询模块。论文首先介绍了背景和相关的理论知识。其次列出了根据需求而提出的设计方案,然后详细阐述了系统设计与实现过程。包括数据库设计,新建考试信息管理,新建阅卷组管理和成绩查询。通过本系统的应用,可以满足目前教育模式的评估需求,对教育评估的发展起到一定的促进作用。 随着系统的不断深开发,会有更
2、好,更完善的软件系统应用到远程教育当中去,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。关键词:Struts;Spring;Hibernate;考试管理;成绩查询;评估The Smart System-The Design and Implementation of the Examination Management and Score Inquiry ModuleAbstractThis paper mainly introduces the online examination system which the modern education demands. This
3、 software mainly takes the platform based on Struts + Spring + Hibernate frame. This design is one part of the Smart Project, mainly designs and develops two main modules, the examination management and the score inquiry module. The paper first introduced the background and the relation theories kno
4、wledge. Then it listed the design proposal which proposed according to the demands, and elaborate the system design and the realization process in detail. Including the database design, the information management of a new examination, the groups management of testing paper and the score inquiry. Thr
5、ough this system application, it may satisfy the education appraisal demand, and promote the educational evaluation development. Along with the system development, it can be used in the remote education as the better software system, it can take the new change for the traditional education pattern,
6、and make the new propelling force to the education development.Key words: Struts; Spring; Hibernate; Examination management; Score inquiry module; Appraisal.目 录论文总页数:26 页1 引言 .11.1 课题背景 .11.2 国内现状 .11.3 本课题研究的意义 .12 相关理论知识及其技术 .22.1 系统开发环境与技术 .22.2 架构介绍 .22.2.1 Struts .22.2.2 spring 简介 .32.2.3 Hiber
7、nate 简介 .52.2.4 SQLServer 2000 简介 .52.2.5 JSP 组件 .62.2.6 Tomcat .73 需求分析和设计方案 .83.1 考试管理 .83.1.1 考试管理需求分析 .83.1.2 考试管理设计方案 .83.2 成绩查询 .93.2.1 成绩查询模块需求分析 .93.2.2 成绩查询模块设计方案 .94 系统设计与实现 .94.1 数据库设计 .94.1.1 考试管理数据库 ER 图及其数据库表 .94.1.2 阅卷组数据库 ER 图及其数据库表 .154.1.3 成绩查询模块数据库 ER 图及其数据库表 .164.2 系统实现 .184.2.1
8、考试管理模块实现 .184.2.2 成绩查询模块实现 .225 测试 .235.1 测试环境 .235.2 测试结果 .23结 论 .23参考文献 .24致 谢 .25声 明 .26第 2 页 共 26 页1 引言1.1 课题背景随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。现在,计算机硬件技术的发展已经达到了相当高的水平。但是,在线考试软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到在线考试当中去,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。本文以 Interne
9、t 为平台,研究了基于 Web 考试系统考试管理及成绩查询模块的设计与开发,包括系统需求分析和系统功能设计以及数据库设计。重点阐述了考试管理及成绩查询模块的设计。1.2 国内现状在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。1.3 本课题研究的意义随着计算机应用的迅猛发展,网络应用不断扩大
10、,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。在线考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使考试不受地域的局限。一个完备的在线考试系统可以使用户在网上学习过后及时检验自己的学习效果,已发现自己的不足,使得学习效率得到很大提高。只要形成一套成熟的题库和生成试卷的自动化就可以实现考试的自动化,可以使教师方便的出卷,为教师提供很大的方便,这样一来,教师所要做的只是精心设计题目
11、、维护题库,智能出卷就可以了的,从而大大减轻了教师的负担,这表明其经济性是相当可观的。为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来!第 3 页 共 26 页2 相关理论知识及其技术2.1 系统开发环境与技术 集成开发环境: JDK5.0+Eclipse3.1+MyEclipse4.0 开发语言: Java、SQL2.2 架构介绍本系统采用 struts + spring 管理的 hibernate 作为平台框架搭建的。J S P 或者其他视图生成 H T M LW E B 层 ( 处理
12、用户输入 , 调用业务层 , 选择视图 )业务层 ( 主要事务及业务逻辑 )D A O 接口及实现层H i b e r n a t e 平台 数据库S p r i n g 平台利用 S t r u t s 框架包实现了整个 W E B 层的 M V C 架构图 1 系统架构图2.2.1 Struts1、MVC 设计模式MVC 是一种设计模式,他强制性的把应用程序的输入、处理和输出分开。MVC 把应用程序分成三个核心模块:模型、视图和控制器,他们分别担负不同的任务。下图显示了这几个模块各自的功能以及它们的相互关系。用户请求图 2 MVC 设计模式View显示模型状态接受数据更新请求把用户输入数据
13、传给控制器Model代表应用程序状态响应状态查询处理业务流程通知视图业务状态更新Controller接受用户请求调用模型响应用户请求选择视图显示响应结果选择视图状态查询通知数据库更新第 4 页 共 26 页2、Struts 概述Struts 最早是作为 Apache Jakarta 项目的组成部分问世运做。项目的创立者希望通过对该项目的研究、改进,提高 Java Server Pages (JSPs)、Servlet 、标签库以及面向对象的技术水准。Struts 这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助开发者减少在运用 MVC 设计模型来开发 Web 应用的时间。开
14、发者仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用 Servlet 和 JSP 的优点来建立可扩展的应用,Struts 是一个不错的选择。Struts 是 MVC 的一种实现,它将 Servlet 和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts 继承了 MVC 的各项特性,并根据 J2EE 的特点,做了相应的变化与扩展。优点: Struts 跟 Tomcat、Turbine 等诸多 Apache 项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 除此之外,Struts 的优点主要集中体现在两个方面:Taglib
15、 和页面导航。Taglib 是 Struts 的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的 JSP 开发者而言,除了使用 JSP 自带的常用标记外,很少开发自己的标记,或许 Struts 是一个很好的起点。 关于页面导航,估计是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。 缺点:Taglib 是 Struts 的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱初学者网页编写的习惯,但是,当习惯了它时,会觉得
16、它真的很棒。Struts 将 MVC 的 Controller 一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。 Struts 已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的 J2EE MVC 实现方式,如果系统准备采用 J2EE MVC 架构,那么,不妨考虑一下 Struts。2.2.2 spring 简介Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。第 5 页 共 26 页框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 框架由 7 个定义良好的模块
17、组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图 3 所示。图 3 Spring 框架组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。 BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文
18、包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 Spring AOP:通过配置管理特性, Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了
19、错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接) 。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。 Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 第 6 页 共 26 页 Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Strut
20、s 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。 Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web 或 EJB) 、独立应用程序、测试环境
21、之间重用。 2.2.3 Hibernate 简介Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通 Java 对象一样,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序实用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。2.2.4 SQLSe
22、rver 2000 简介Server 是一个关系数据库管理系统,它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的。于1988 年推出了第一个 OS/2 版本,在Windows NT 推出后,Microsoft 与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT 系统上,专注于开发推广SQL Server WindowsNT 版本。 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版
23、本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。SQL Server 不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQLServer 数据库处理的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQL Server 的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQL Server 的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO(面向对象)的一个系统结构。SQL Server 企业管理器是 SQL Server 的主第 7 页 共 26 页要管理
24、工具,它提供了一个遵从MMC 标准的用户界面,使用户得以: 定义 SQL Server 实例组。 为每个已注册的服务器配置所有 SQL Server 选项。 在每个已注册的服务器中创建并管理所有 SQL Server 数据库、对象、登录、用户和权限。 在每个已注册的服务器上定义并执行所有 SQL Server 管理任务。 通过唤醒调用 SQL 查询分析器,交互地设计并测试 SQL 语句、批处理和脚本。唤醒调用为 SQL Server 定义的各种向导。2.2.5 JSP 组件在传统的 HTML 文件中加入 JAVA 程序片段和 JSP 标签,就构成了 JSP 网页。JAVA 程序片段可以操作数据
25、库、重定向网页以及发送 E-MAIL 等,实现建立动态望站所需要的功能。所有程序操作都在服务器端执行,网络上传送给用户端的仅仅为输出结果。JSP 技术大大降低了对用户浏览器的要求,即使用户浏览器端不支持 Java,也可以访问 JSP 网页。当 JSP 容器接受到 WEB 用户的一个 JSP 文件请求时,它对 JSP 文件进行语法分析并生成 JAVA Servlet 源文件,然后对其进行编译。一般情况下,Servlet 源文件的生成和编译仅在初次调用 JSP 时发生。如果原始的 JSP 文件被更新了,JSP 容器将检测所做的更新,在执行他之前重新生成 Servlet 并惊醒编译。下图显示了 JSP 容器初次执行 JSP 的过程:尽管 JSP 在本质上是 Servlet,但这两者的创建方式不一样。Servelet 完全由 java 程序代码构成,擅长于流程控制和事务处理,而通过 Servlet 来生成动态网页很不直观;JSP 由 HTML 代码和 JSP 标签构成可以方便的编写动态网页。因此在实际应用中,采用 Servlet 来控制业务流程,而采用 JSP 来生成动态网页。在 Struts 框架中,JSP 位于 MVC设计模式的视图层,而 Servlet 位于控制层。浏览器JSP 容器JSP 文件生成 Servlet 源代码经编译的 Servlet 类请求响应