1、毕 业 设 计 说 明 书基于 WEB的在线自测系统的设计与实现基于WEB的在线自测系统的设计与实现摘 要:计算机应用技术的日益发展,为教育技术学的研究与发展带来了新的机遇,如何把计算机和网络更有效地引进教育领域为教育服务,已成为教育领域中的一个新的课题。随着网络应用的多元化与普及化,学生学习的途径更加多样化。通过网络,学生可以更好的完成对所学知识的巩固和理解,同时通过在线自测系统,可以在网上对所学内容进行自我测试,清醒的认识自己的学习情况,发现不足,以便更好的完成学习任务。在线自测系统可以配合多元化教育,对学习效果直接进行考察并自动组卷、自动判卷。根据成绩库学生可以很直观的看到自测练习的成绩
2、,以便了解自己近期的学习效果,有利于学生的自学。本文主要阐述了基于 WEB 技术的在线自测系统的体系结构和具体设计以及实现过程。介绍了在线自测系统中对题库的管理、试卷的管理、学生成绩的查询,在线自测功能的实现以及用户权限的管理和试卷发布等功能。着重介绍了组卷功能、时间控制功能、自动批改试卷功能的设计与实现。整个系统层次结构简单,操作容易,并具备一定的安全性,使用该系统能更高效、便捷地检验学生在课程学习中的学习效果。关键词: 在线自测;时间控制;试题库1The Design and Implementation of Online Self-test System Based on WEBAbs
3、tract : The increasing development of computer application technology for educational research and development has brought new opportunities, and how the computer and network to be more effectively to introduce the field of education, has become a new topic. With the diversity of network application
4、s and the popularity of more diverse ways of learning. Students can better complete the consolidation of the knowledge and understanding, through online self-test system, you can learn online content on the self-test, a clear understanding of their own learning and found weaknesses in order to bette
5、r completion of learning tasks. Online self-test system can accommodate the diversity of education, direct effects on learning and automatic generation of inspection, automatic graders. According to results library students can see the self-test exercises very intuitive results, in order to understa
6、nd their recent learning, helping students self-learning. This article focuses on technology-based WEB-line self-test system architecture and detailed design and implementation process. Introduced an online self-test item bank system on the management, paper management, student achievement informati
7、on, online self-test function of the realization and user rights management and publishing papers and so on. Test paper focuses on the function, time control function, automatic correcting function of the design and implementation papers. Hierarchy of the whole system is simple, easy, and have a cer
8、tain security, to use the system more efficient and convenient to test students in the course of learning. Key words: On-line self_test;Time control; Test database基于 WEB 的在线自测系统的设计与实现目 录1 概 述 .11.1 项目开发背景及意义 11.2 系统开发环境 11.3 系统开发技术及工具 22 需求分析 .52.1 系统可行性分析 52.2 系统基本需求 52.3 系统功能模块需求 62.4 系统的设计目标 73 系
9、统概要设计 .73.1 系统开发环境 73.2 数据库 设计 74 系统详细设计 .114.1 数据库连接及操作类的编写 .114.2 在线自测模块设计 124.3 成绩查询模块设计 164.4 查看正确答案模块设计 174.5 试卷管理模块设计 194.6 题库管理模块设计 234.7 管理员功能模块设计 254.8 用户登录模块设计 274.9 学生注册模块设计 295 系统测试 .305.1 题库管理模块测试 305.2 试卷管理模块测试 315.3 在线自测模块测试 326 结束语 .33参考文献 .34致 谢 .35附 录 .36附录 1 程序清单 36附录 1.1 登录模块程序清单
10、 .36附录 1.2 题库管理模块程序清单 .39附录 1.3 自动组卷模块程序清单 .41附录 1.4 发布试卷模块程序清单 .44附录 1.5 时间控制模块程序清单 .45基于 WEB 的在线自测系统的设计与实现附录 1.6 批改试卷模块程序清单 .46附录 1.7 成绩查询模块程序清单 .48附录 1.8 成绩排序模块程序清单 .55附录 1.9 平均成绩模块程序清单 .62附录 1.10 查看正确答案模块程序清单 .68附录 1.11 数据库连接和操作模块程序清单 .71盐城工学院本科生毕业设计说明书(2009)基于 WEB 的在线自测系统的设计与实现1 概 述1.1 项目开发背景及意
11、义基于 WEB 技术的在线自测系统可以借助于遍布全球的因特网进行,因此在线自测既可以在本地进行,也可以在异地进行。试卷可以根据题库中的内容即时生成;可采用大量标准化试题,便于使用计算机判卷,大大提高阅卷效率;可以直接把成绩存到数据库中,进行统计、排序等操作。现在较好的学生自我测试的方法为在线自测,试题内容放在服务器上,考生通过用户名和密码进行登录,试卷答案存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,在线自测的学习方法将是以后学生自我测试的发展趋势。在线考试系统可以使学生在网上学习过后及时检验自己的学习效果,以发现自己的不足,使得学习效率得到很大提高。在线自测统中试卷
12、的生成、考卷的提交、试题的批阅等都可以在网络上自动完成。只要形成一套成熟的题库就可以实现学生自测练习的自动化。这样一来,教师所要做的只是精心设计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,其经济性是相当可观的,实用性、安全性也很好。1.2 系统开发环境本系统采用 B/S 结构,即 Browser/Server(浏览器/服务器)结构,其随着 Internet技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓的 3-tier 结构。B/S 结构,主要是利用了不断成
13、熟的 WWW 浏览器技术,结合浏览器的多种 Script 语言(VBScript、JavaScript)和 ActiveX 技术,通过浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着 Windows 98/Windows 2000 将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然 B/S 结构应用程序相对于传统的 C/S 结构应用程序是巨大的进步。B/S 结构具有以下优点:a) 具有分布性特点,可以随时随地进行查询、浏览等业务处理。b) 业务扩展简单方便,通过增加网页即可增加服务器功能。c) 维护管理方便,只
14、需更改网页即可实现所有用户的同步更新。d) 开发简单,共享性强。1.3 系统开发技术及工具1.3.1 JSPJSP 的工作原理是当用户浏览器从 WEB 服务器上请求 JSP 文件时,WEB 服务器响应该 HTTP 请求,JSP 引擎解释 JSP 标识和小脚本,通过访问 JavaBean 组件,使用JDBC 技术访问数据库,生成所请求的内容,并且将结果以 HTML 或者 XML 页面的形II式返回给浏览器。Servlet 为 WEB 开发员提供了一个简单、一致的机制,来扩展 WEB服务器的功能,并且和已有的业务系统交互,可以把 Servlet 看作在服务端运行的Applet。JavaBean 是
15、一种“类” ,通过封装属性和方法成为具有某种功能或处理某业务的对象。JavaBean 被组织成为 Package 以便进行管理。实际上就是把一组 JavaBean 一起放在 XX 目录中,每个类的定义前加上 PackageXX,必须放在系统环境 Classpath 包含的目录下,系统才能找到其中的 JavaBean。JSP 技术是 Servlet 技术的扩展,对HTML 和 XML 的页面创作提供支持。网页设计员能够非常容易地将固定或静态的模板数据与动态内容进行组合。JSP 功能特点如下:a) JSP 具有跨平台能力、语法简单、书写容易,并且有“一处编写,随处运行”的特点。与 ASP 相比,J
16、SP+JavaBean 可以在所有平台下运行,而 Java 字节码都是具有标准性、跨平台性,在移植到另外的平台上时基本不用重新编译。而 ASP 目前仅用于NT 和 IIS,需要通过 ASP+COM 组合实现扩充,而且在 Unix 下使用 COM 非常困难。b) 采用 JavaBean 执行应用中的复杂处理,由于这些组件可重复使用,能提高开发效率。此外,组件的使用有利于实现静态和动态页面的分离,页面设计者和开发设计者可以各司其职 JSP 为分离处理逻辑和表示层提供了很好的解决方案。c) JSP 技术为创建显示动态生成内容的 WEB 页面提供了一个简捷而快速的方法。JSP 技术的设计目的是使构造基
17、于 WEB 应用程序更加容易和快捷,这些应用程序能够与各种 WEB 服务器、应用服务器、浏览器和开发工具共同工作。d) JSP 的效率和安全性更高。ASP 以源码形式存放,以解释方式运行,每次 ASP网页调用都需要对源码进行解释,运行效率不高。JSP 在执行以前先被编译成字节码,字节码由 Java 虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高服务器上还有字节码 Cache 机制,能提高字节码的访问效率。第一次调用 JSP 网页可能稍慢,因为它被编译成 Cache,以后就快得多了。同时,JSP 源程序不大可能被下载,特别是JavaBean 程序完全可以放到不对外
18、的目录中。e) JSP 的组件方式更方便,易于维护。 JSP 通过 JavaBean 实现了功能扩充,而且JavaBean 更为简单。而 ASP 需要通过 COM 来扩充复杂的功能。在维护方面,COM 必须在服务器上注册,如果修改了 COM 程序,就必须重新注册,甚至必须关机和重新启动。JavaBean 则不需要注册,放在 CLASSPATH 包含的目录中就行了。另外 JavaBean是完全 OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、E-mail 自动回复等等。1.3.2 TomcatTomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访
19、问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应对 HTML 页面的访问请求。实际上 Tomcat 部分是 Apache 服务器的扩展,但它是独立运行的,所以当运行Tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。当配置正确时,Apache 为 HTML 页面服务,而 Tomcat 实际上运行 JSP 页面和 Servlet。另外,Tomcat和 IIS、Apache 等 WEB 服务器一样,具有处理 HTML 页面的功能,另外它还是一个盐城工学院本科生毕业设计
20、说明书(2009)Servlet 和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。JDK (Java Development Kit)是 Sun Microsystems 针对 Java 开发员的产品。自从 Java 推出以来,JDK 已经成为使用最广泛的 Java SDK。JDK 是整个 Java 的核心,包括了 Java 运行环境,Java 工具和 Java 基础的类库。MyEclipse 已经自带 JDK,在 MyEclipse 中,只需配置好 Tomcat 的就可以搭建好服务器。1.3.3 SQL Server 2005Microsoft SQL serve
21、r 2005 是由 Microsoft 公司开发的,由一系列相互协助的组件构成,能满足最大的 WEB 站点和企业数据处理系统存储和和分析数据的需求。它提供了丰富的图形化管理工具,简化了系统管理与操作。Microsoft SQL server 2005 具有如下特性:a) 其数据引擎提供完整的 XML 支持b) 简单友好的操作方式c) 多种形式的管理架构d) 高度的可靠性、可扩展性和可用性e) 数据库可以在不同的平台上使用f) 易于安装、管理、部署和使用1.3.4 JDKJDK(Java Development Kit)是 Sun Microsystems 针对 Java 开发员的产品。自从Ja
22、va 推出以来,JDK 已经成为使用最广泛的 Java SDK。JDK 是整个 Java 的核心,包括了 Java 运行环境,Java 工具和 Java 基础的类库。JDK 是学好 Java 的第一步。而专门运行在 x86 平台的 Jrocket 在服务端运行效率也要比 Sun JDK 好很多。从 SUN 的JDK5.0 开始,提供了泛型等非常实用的功能,其版本也在不断更新,运行效率得到了非常大的提高。1.3.5 JavaScriptJavaScript 是一种基于对象(Object )和事件驱动(EventDriven)并具有安全性能的脚本语言。使用它的目的是与 HTML 超文本标记语言、J
23、ava 脚本语言(Java 小程序)一起实现在一个 WEB 页面中连接多个对象,与 WEB 客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入到标准的 HTML 语言中实现的。它的出现弥补了 HTML 语言的缺陷,它是 Java 与 HTML 折中的选择,具有以下几个基本特点:a) JavaScript 是一种脚本编写语言JavaScript 是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript 同样已是一种解释性语言,它提供了一个简易的开发过程。它的基本结构形式与 C、 C+、VB、Delphi 十分类似。但它不像这些语言一样,需要先编译,而是
24、在程序运行过程中被逐行地解释。它与 HTML 标识结合在一起,从而方便用户的使用操作。b) 基于对象的语言JavaScript 是一种基于对象的语言,同时也可以看作一种面向对象的语言。这意味IV着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。c) 简单性JavaScript 的简单性主要体现在:首先它是一种基于 Java 基本语句和控制流之上的简单而紧凑的设计,从而对于学习 Java 是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。d) 安全性JavaScript 是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到
25、服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。e) 动态性JavaScript 是动态的,它可以直接对用户或客户输入做出响应,无须经过 WEB 服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(HomePage)中执行了某种操作所产生的动作,就称为“事件”Event) 。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。f) 跨平台性JavaScript 是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持 JavaScript 的浏览器就可
26、正确执行。从而实现了“编写一次,走遍天下”梦想。实际上 JavaScript 最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件及浏览器。1.3.6 MyEclipseMyEclipse 是一个十分优秀的用于开发 Java、J2EE 的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse 目前支持 Java Servlet、AJAX 、JSP 、JSF、Struts、Spring、Hibernate 、EJB3、JDBC 数据库链接工具等多项功能。可以说 MyEclipse 几乎囊
27、括了目前所有主流开源产品的专属 Eclipse 开发工具。2 需求分析2.1 系统可行性分析可行性的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决,系统方案在经济上、技术上和操作上是否可以接受。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行系统分析和设计的过程。因此,在对在线自测系统进行开发前,首先对系统进行整体规划与设计,否则就会导致开发工作量大,系统不符合要求,更为糟糕的是还可能导致系统不完善或整个盐城工学院本科生毕业设计说明书(2009)系统根本就无法运行。因此,系统的总体规划与设计是在线自测必备且首要的步骤。具体
28、到本系统而言,就是要根据在线自测系统的目标、内容、规模、性质、现有的配置等具体情况,进行系统可行性分析,明确系统开发的方向,规划系统整体的物理结构。2.1.1 技术可行性本系统操作系统采用 Windows 系列操作系统,数据库管理系统采用 SQL server 2005,采用 JSP+Servlet+JavaBean 实现 MVC 三层模式进行系统的开发,IDE 工具采用MyEclipse。本系统的设计在技术上是可行的。2.1.2 经济可行性在线自测系统可以节省大量的人力物力以及时间,可以最大限度的满足学生的需要,减轻老师的教学负担。让学生可以更方便地进行在线自测。同时,系统自动组卷、判卷,老
29、师也可以通过本系统更方便地了解到学生的学习情况。2.1.3 操作可行性在线自测系统具备良好的界面、使用方便、操作简单、易于被用户接受,用户只需熟练操作计算机和对此系统使用做简单地了解即可方便使用,而且使用此系统可以减轻学校的负担,从使用方面来看此系统的开发是可行的。2.2 系统基本需求目前网上学习已经成为一种潮流,与此同时在线自测系统也成为一种需求。经过对在线自测系统需求的分析,要求本系统具有以下功能:考试系统的用户分为管理员、教师和学生三种。a) 管理员:对教师信息、学生信息、学院信息、班级信息、科目信息的管理。b) 教师:题库的管理、学生成绩的查询,平均成绩的查询以及试卷的发布。c) 学生
30、:主要是参加自主测验,测验完可以立即查出自己的考试成绩,并可以查看正确答案和该课程的平均成绩。另外,系统提供学生的注册,可以方便更多学生使用本系统。题型分为选择题和填空题,系统实现自动随机抽题组卷。系统控制在线自测时间,时间一到自动提交试卷。刷新或离开考试页面,视为提交考卷,在一定程度上加强了系统的公平性和严格性。测试完成系统自动批改试卷,得出学生该次自测练习的成绩,并写入数据库。考试完成后,学生可以查看已参加的考试的正确答案,可以查询成绩,并且可以查看平均成绩,了解自己的学习情况。教师可以查询学生的成绩,并可以选择试卷来查询参加过该考试的学生成绩,并可以按成绩的高低进行排序、查看该试卷的平均
31、成绩,以便更好的了解学生的学习情况。2.3 系统功能模块需求系统总体功能模块如图 2-1 所示。VI在线自测系统自测时间控制自动阅卷功能查看平均成绩试卷平均成绩自动组卷功能学生成绩排序学院管理功能科目管理功能后台部分前台部分(学生用户)在线自测子系统成绩查询子系统正确答案子系统教师用户学生成绩试卷管理题库管理管理员用户用户管理资源管理图 2-1 系统总体功能模块图各个模块包含主要功能如下:a)在线自测模块:包括学生选择试卷、进行答题、提交试卷、系统评分和记录成绩功能。b)成绩查询模块:包括学生查询自己参加过测试的所有试卷的成绩,查询某试卷的个人成绩和平均成绩;教师查询所有学生的成绩,查询某科目
32、的学生成绩并排序,查看该科目的平均成绩功能。c)正确答案模块:已参加过测试的学生,可以查看该试卷的答案。d)试卷管理模块:包括自动组卷、发布试卷(或取消发布) 、预览试卷和删除试卷功能。e)题库管理模块:包括题库中所有题目的查询、添加、删除和修改功能。f)用户管理模块:包括三种帐户(管理员、教师和学生)的查询、添加、删除和修改功能。g)资源管理模块:包括系统资源(院系、科目和班级)的查询、添加、删除和修改功能。盐城工学院本科生毕业设计说明书(2009)其中学生权限下的功能模块包括:在线自测模块、成绩查询模块和查看正确答案模块;教师权限下的功能模块包括:题库管理模块、试卷管理模块和学生成绩管理模
33、块;管理员权限下的功能模块包括:用户管理模块和资源管理模块。2.4 系统的设计目标在线自测系统是为了更好的服务教师和学生,减轻教师和学生的负担,使学生可以自主学习。同时,教师可以监督学生,了解学生的学习情况。所以,本系统的设计目标是在满足以上功能的同时,尽量做到界面美观大方,操作简单,安全性高。3 系统概要设计3.1 系统开发环境在线自测系统的实现技术有多种,可以采用传统的客户机/服务器型的 MIS 型架构,即试题内容放在远程的服务器上,在客户机上安装考试应用程序和数据库客户机配置,因此每次访问时要对机器进行安装、配置,考务工作比较烦琐,而且考试程序放在客户机上,安全性也受到一定影响。WEB
34、技术超越了传统的“客户机/ 服务器”两层结构,采用了三层体系结构:用户界面层/事务层/数据库层,因此 WEB 结构有着更好的安全性,在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数据库可以是同一台机器(如果条件允许,还是应该把这两层分别放在不同的计算机上) ,因此本系统最终决定采用WEB 技术实现。3.2 数据库设计3.2.1 数据库需求分析通过对在线自测系统的功能分析,得出数据流图如图 3-1 所示。生成试卷题库管理教师登录提交的答案教师信息管理操作试卷内容考题考题考试请求 用户信息 用户信息 学生信息学生信息教师信息注册信
35、息试卷文件学生信息文件教师信息文件管理员评分系统学生登录教师学生资源管理学生成绩文件成绩信息院系、科目文件成绩信息图 3-1 数据流程图VIII3.2.2 数据项与结构根据上述需求,设计如下所示的数据项和数据结构:a) 用户表:用户名、密码、姓名、出生日期、性别、学院、专业、班级、学号、E-mail、权限;b) 院系:编号和院系名称;c) 班级:班级名称和学院;d) 科目:编号、科目名称;e) 选择题题库:问题号、科目、题目、选项和答案;f) 填空题题库:问题号、科目、题目和答案;g) 试卷目录:试卷名、科目、题目数量、每题分数、状态、总分、考试时间;h) 试卷选择题表:问题号、科目、题目、选
36、项和答案;i) 试卷填空题表:问题号、科目、题目和答案;j) 成绩:用户名、试卷名、姓名、成绩、专业名称和院系名称。3.2.3 系统 E-R 图基于上面的需求分析可以得出系统的 E-R 图,如图 3-2 所示。NM1QYASD 1ZX1学生教师管理员员试卷院系从属从属管理管理 考试科目从属 111从属 班级从属11盐城工学院本科生毕业设计说明书(2009)图 3-2 系统 E-R 图3.2.4 数据库表设计数据库 user 包含以下八个表:用户表、院系表、班级表、科目表、选择题题库表、填空题题库表、试卷目录表、成绩表。另外,试卷选择题表、试卷填空题表为系统随即组卷时自动生成的表,表结构与题库表
37、相同。下面简单介绍几个表的结构。用户表用于存放管理员用户、教师用户和学生用户的基本信息和权限,权限字段为“1”为管理员, “2”为教师用户, “3”为学生用户。表结构如表 3-1 所示。表 3-1 用户表(Online_Examination)名称 字段名 数据类型 主键 非空序号 id int YES YES用户名 username varchar(50) NO NO密码 password varchar(50) NO NO姓名 rname varchar(50) NO NO性别 sex varchar(50) NO NO出生日期 timea varchar(50) NO NO学院 xuey
38、uan varchar(50) NO NO专业 zhuanye varchar(50) NO NO班级 banji varchar(50) NO NO学号 xuehao varchar(50) NO NO邮箱 email varchar(50) NO NO院系信息表用于存放院系信息,班级表与院系表为从属关系。只需要两个字段,院系编号和院系信息。表结构如表 3-2 所示。表 3-2 院系信息表(Online_Examination_XY)名称 字段名 数据类型 主键 非空院系编号 id int YES YES院系名称 xueyuan varchar(50) NO NO班级信息表用于存放班级信息,
39、其中的学院名称与院系表的学院名称相关联,表示班级和学院的从属关系。表结构如表 3-3 所示。表 3-3 班级信息表(Online_Examination_BJ)名称 字段名 数据类型 主键 非空班级编号 id int YES YES班级名称 banji varchar(50) NO NO学院名称 xueyuan varchar(50) NO NO科目信息表用于存放科目信息,表结构如表 3-4 所示。表 3-4 科目信息表(Online_Examination_LX)名称 字段名 数据类型 主键 非空科目编号 id int YES YES科目名称 leixing varchar(50) NO N
40、O选择题题库表用于存放选择题信息,其中科目与科目表相关联。还包括问题、选项和正确答案字段。表结构如表 3-5 所示。X表 3-5 选择题题库表(Online_ST)名称 字段名 数据类型 主键 非空问题号 id int YES YES科目 leixing varchar(50) NO NO问题 timu varchar(5000) NO NO选项 1 xxa varchar(500) NO NO选项 2 xxb varchar(500) NO NO选项 3 xxc varchar(500) NO NO选项 4 xxd varchar(500) NO NO答案 daan varchar(500)
41、 NO NO填空题题库表用于存放填空题信息,其中科目与科目表相关联。还包括问题和正确答案字段。表结构如表 3-6 所示。表 3-6 填空题题库表(Online_ST1)名称 字段名 数据类型 主键 非空问题号 id int YES YES科目 leixing varchar(50) NO NO问题 timu varchar(500) NO NO答案 daan varchar(500) NO NO试卷目录表用于存放试卷信息,试卷权限字段标识试卷的发布状态, “1”为发布,“2”为未发布。另外其他字段还包括题目数量、每题分数、考试时间等。表结构如表3-7 所示。表 3-7 试卷目录表(Online
42、_Examination_ML)名称 字段名 数据类型 主键 非空序号 id int YES YES试卷名 shijuan_name varchar(50) NO NO试卷科目 shijuan_bumen varchar(50) NO NO题目数量 timu_shuliang varchar(50) NO NO试卷权限 shijuan_quanxian varchar(50) NO NO每题分数 meitifenshu varchar(50) NO NO总分 zongfen varchar(50) NO NO考试时间 kaoshi_sj varchar(50) NO NO学生成绩表用于存放学生
43、成绩信息,平均成绩模块要用到整型的考试成绩,所以数据类型设计成 int,其他字段包括试卷名、学院、专业、学生名等。学生表结构如表3-8 所示。表 3-8 学生成绩表(Online_Examination_XJ)名称 字段名 数据类型 主键 非空序号 id int YES YES学生姓名 student_name varchar(50) NO NO试卷名 shijuan_bumen varchar(50) NO NO考试成绩 kaoshi_cj int NO NO专业 zhuanye varchar(50) NO NO学院 xueyuan varchar(50) NO NO用户名 usernam
44、e varchar(50) NO NO盐城工学院本科生毕业设计说明书(2009)4 系统详细设计4.1 数据库连接及操作类的编写数据库连接及操作类通常包括连接数据库的方法 getConnection()、执行查询语句的方法 executeQuery()、执行更新操作的方法 executeUpdate()和关闭数据库连接的方法close()。下面将详细介绍在线自测系统中数据库连接及操作的类“conn” 。conn.java 放在包 Javabean 下,主要负责数据库的连接和数据的操作。数据库连接采用 JDBC 方法:public conn() try Class.forName(“com.mi
45、crosoft.jdbc.sqlserver.SQLServerDriver“); catch (Exception e) try String path = “jdbc:microsoft:sqlserver:/127.0.0.1:1433;DatabaseName=user“;String name = “sa“;String word = “123“;conn = DriverManager.getConnection(path, name, word); catch (Exception e) 数据的操作先调用 conn 的 createStatement 方法创建一个 stmt,然后
46、调用 statement的 executeQuery 方法执行 sql 语句,结果集放到 resultset 声明的 rs 中。以查询为例代码如下:public ResultSet query(String sql) try stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);rs = stmt.executeQuery(sql);System.out.println(“数据库查询成功!“);return rs;catch (Exception e) XIIretur
47、n rs;4.2 在线自测模块设计在线自测模块是本系统的主要功能模块。后台数据库中已经存放了教师用户添加、发布,并由系统自动组卷生成的试卷表。学生用户在选择试卷后,进行测验。提交试卷后,系统自动批改试卷。a) 进入自测页面前的验证注册学生用户首先通过下拉菜单选择试卷,为了保证系统的安全性,只有教师用户发布过的试卷,即数据库表 Online_Examination_ML 中的试卷权限的值为“1” ,才会显示在下拉菜单中。实现的主要方法是,查询表 Online_Examination_ML 中的试卷权限的值。主要代码如下:String sql=“select * from Online_shiju
48、an_ML where shijuan_quanxian=1“; ResultSet rs=aaa.query(sql);=请选择= 选择一份试卷进入考试,将选择项以 select 标签的 value 属性传递给kaishikaishi.jsp,该 JSP 获取试卷名,首先查询学生成绩表 Online_Examination_XJ,如果查询结果不为空,则说明已经测试过,不能再进行测试。然后查询数据库中试卷名称命名的表,获取考卷内容。查询试卷目录表 Online_Examination_ML 中该试卷名所对应的数据,获取字段 kaoshi_sj 的值,来控制考试时间。b) 前台考试页面因为试卷的
49、题型为选择和填空,所以在设计数据库的时候将题库表和试卷表都区分为选择题库表和填空题库表、选择题试卷表和填空题试卷表。所以在获取试卷的时候要将两个试卷表数据库都查询到,并以不同的形式显示出来。选择题的选项用 radio类型的标签,填空类型用 text 类型的标签传递答案,以便传值给阅卷模块。获取试卷的主要代码如下:String sql2=“select * from “+shijuan_name;conn con = new conn();ResultSet rs2=con.query(sql2);String sql21=“select * from “+shijuan_name+“1“;conn con21 = new conn();ResultSet rs21=con21.query(sql21);盐城工学院本科生毕业设计说明书(2009)考试界面如图4-1所示。图4-1 考试界面c) 考试时间的控制考试时间的控制对系统的公平性影响很大,所以本系统细致的实现了此功能。基本方法是,在kaishikaishi.jsp的head 部分设置一个隐藏的标签作为JSP与Javascript传值的媒介,Javascript 中用document.getElementById( ).value方法获取该表的value 值,即该试卷的