基于WEB的在线自测系统的设计与实现毕业设计说明书_第1页
基于WEB的在线自测系统的设计与实现毕业设计说明书_第2页
基于WEB的在线自测系统的设计与实现毕业设计说明书_第3页
基于WEB的在线自测系统的设计与实现毕业设计说明书_第4页
基于WEB的在线自测系统的设计与实现毕业设计说明书_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕毕业业设设计计说说明明书书 基于基于WEBWEB的在线自测系统的设计与实现的在线自测系统的设计与实现 基于基于WEBWEB的在线自测系统的设计与实现的在线自测系统的设计与实现 摘 要:计算机应用技术的日益发展,为教育技术学的研究与发展带来了新的机 遇,如何把计算机和网络更有效地引进教育领域为教育服务,已成为教育领域中 的一个新的课题。 随着网络应用的多元化与普及化,学生学习的途径更加多样化。通过网络, 学生可以更好的完成对所学知识的巩固和理解,同时通过在线自测系统,可以在 网上对所学内容进行自我测试,清醒的认识自己的学习情况,发现不足,以便更 好的完成学习任务。在线自测系统可以配合多元化教育

2、,对学习效果直接进行考 察并自动组卷、自动判卷。根据成绩库学生可以很直观的看到自测练习的成绩, 以便了解自己近期的学习效果,有利于学生的自学。 本文主要阐述了基于 WEB 技术的在线自测系统的体系结构和具体设计以及实 现过程。介绍了在线自测系统中对题库的管理、试卷的管理、学生成绩的查询, 在线自测功能的实现以及用户权限的管理和试卷发布等功能。着重介绍了组卷功 能、时间控制功能、自动批改试卷功能的设计与实现。整个系统层次结构简单, 操作容易,并具备一定的安全性,使用该系统能更高效、便捷地检验学生在课程 学习中的学习效果。 关键词: 在线自测;时间控制;试题库 The Design and Imp

3、lementation of Online Self-test System Based on WEB Abstract : 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

4、 a new topic. With the diversity of network applications 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 t

5、heir own learning and found weaknesses in order to better 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-tes

6、t exercises very intuitive results, in order to understand 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 man

7、agement, paper management, student achievement information, 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. Hiera

8、rchy of the whole system is simple, easy, and have a certain 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 目目 录录 1 概 述.1 1.1 项目开发背景及意义.1 1.2 系统开发环境.1 1.3 系统开发技术及工具.2 2 需求分析.5 2.1 系统可行性分析.

9、5 2.2 系统基本需求.5 2.3 系统功能模块需求.6 2.4 系统的设计目标.7 3 系统概要设计.7 3.1 系统开发环境.7 3.2 数据库设计.7 4 系统详细设计.11 4.1 数据库连接及操作类的编写.11 4.2 在线自测模块设计.12 4.3 成绩查询模块设计.16 4.4 查看正确答案模块设计.17 4.5 试卷管理模块设计.19 4.6 题库管理模块设计.23 4.7 管理员功能模块设计.25 4.8 用户登录模块设计.27 4.9 学生注册模块设计.29 5 系统测试.30 5.1 题库管理模块测试.30 5.2 试卷管理模块测试.31 5.3 在线自测模块测试.32

10、 6 结束语.33 参考文献.34 致 谢.35 附 录.36 附录 1 程序清单.36 附录 1.1 登录模块程序清单.36 附录 1.2 题库管理模块程序清单.39 附录 1.3 自动组卷模块程序清单.41 附录 1.4 发布试卷模块程序清单.44 附录 1.5 时间控制模块程序清单.45 附录 1.6 批改试卷模块程序清单.46 附录 1.7 成绩查询模块程序清单.48 附录 1.8 成绩排序模块程序清单.55 附录 1.9 平均成绩模块程序清单.62 附录 1.10 查看正确答案模块程序清单.68 附录 1.11 数据库连接和操作模块程序清单.71 基于基于 WEBWEB 的在线自测系

11、统的设计与实现的在线自测系统的设计与实现 1 概 述 1.1 项目开发背景及意义 基于 WEB 技术的在线自测系统可以借助于遍布全球的因特网进行,因此在线 自测既可以在本地进行,也可以在异地进行。试卷可以根据题库中的内容即时生成; 可采用大量标准化试题,便于使用计算机判卷,大大提高阅卷效率;可以直接把成 绩存到数据库中,进行统计、排序等操作。现在较好的学生自我测试的方法为在线 自测,试题内容放在服务器上,考生通过用户名和密码进行登录,试卷答案存放在 服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,在线自 测的学习方法将是以后学生自我测试的发展趋势。 在线考试系统可以使学生在网

12、上学习过后及时检验自己的学习效果,以发现自 己的不足,使得学习效率得到很大提高。在线自测统中试卷的生成、考卷的提交、 试题的批阅等都可以在网络上自动完成。只要形成一套成熟的题库就可以实现学生 自测练习的自动化。这样一来,教师所要做的只是精心设计题目、维护题库,而不 是组织考试,从而大大减轻了教师的负担,其经济性是相当可观的,实用性、安全 性也很好。 1.2 系统开发环境 本系统采用 B/S 结构,即 Browser/Server(浏览器/服务器)结构,其随着 Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户 界面完全通过 WWW 浏览器实现,一部分事务

13、逻辑在前端实现,但是主要事务逻辑 在服务器端实现,形成所谓的 3-tier 结构。B/S 结构,主要是利用了不断成熟的 WWW 浏览器技术,结合浏览器的多种 Script 语言(VBScript、JavaScript)和 ActiveX 技术,通过浏览器就实现了原来需要复杂专用软件才能实现的强大功能, 并节约了开发成本,是一种全新的软件系统构造技术。随着 Windows 98/Windows 2000 将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结 构。显然 B/S 结构应用程序相对于传统的 C/S 结构应用程序是巨大的进步。 B/S 结构具有以下优点: a) 具有分布性

14、特点,可以随时随地进行查询、浏览等业务处理。 b) 业务扩展简单方便,通过增加网页即可增加服务器功能。 c) 维护管理方便,只需更改网页即可实现所有用户的同步更新。 d) 开发简单,共享性强。 1.3 系统开发技术及工具 1.3.1 JSP JSP 的工作原理是当用户浏览器从 WEB 服务器上请求 JSP 文件时,WEB 服务 器响应该 HTTP 请求,JSP 引擎解释 JSP 标识和小脚本,通过访问 JavaBean 组件, 使用 JDBC 技术访问数据库,生成所请求的内容,并且将结果以 HTML 或者 XML 页面的形式返回给浏览器。Servlet 为 WEB 开发员提供了一个简单、一致的

15、机制, 来扩展 WEB 服务器的功能,并且和已有的业务系统交互,可以把 Servlet 看作在服 务端运行的 Applet。JavaBean 是一种“类” ,通过封装属性和方法成为具有某种功 能或处理某业务的对象。JavaBean 被组织成为 Package 以便进行管理。实际上就是 把一组 JavaBean 一起放在 XX 目录中,每个类的定义前加上 PackageXX,必须放在 系统环境 Classpath 包含的目录下,系统才能找到其中的 JavaBean。JSP 技术是 Servlet 技术的扩展,对 HTML 和 XML 的页面创作提供支持。网页设计员能够非常 容易地将固定或静态的模

16、板数据与动态内容进行组合。JSP 功能特点如下: a) JSP 具有跨平台能力、语法简单、书写容易,并且有“一处编写,随处运行” 的特点。与 ASP 相比,JSP+JavaBean 可以在所有平台下运行,而 Java 字节码都是 具有标准性、 跨平台性,在 移植到另外的 平台上时基本不用重新编译。而 ASP 目前仅用于 NT 和 IIS,需要通过 ASP+COM 组合实现扩充,而且在 Unix 下使用 COM 非常困难。 b) 采用 JavaBean 执行应用中的复杂处理,由于这些组件可重复使用,能提高 开发效率。此外,组件的使用有利于实现静态和动态页面的分离,页面设计者和开 发设计者可以各司

17、其职 JSP 为分离处理逻辑和表示层提供了很好的解决方案。 c) JSP 技术为创建显示动态生成内容的 WEB 页面提供了一个简捷而快速的方 法。JSP 技术的设计目的是使构造基于 WEB 应用程序更加容易和快捷,这些应用 程序能够与各种 WEB 服务器、应用服务器、浏览器和开发工具共同工作。 d) JSP 的效率和安全性更高。ASP 以源码形式存放,以解释方式运行,每次 ASP 网页调用都需要对源码进行解释,运行效率不高。JSP 在执行以前先被编译成 字节码,字节码由 Java 虚拟机(Java Virtual Machine)解释执行,比源码解释的效 率高服务器上还有字节码 Cache 机

18、制,能提高字节码的访问效率。第一次调用 JSP 网页可能稍慢,因为它被编译成 Cache,以后就快得多了。同时,JSP 源程序不大 可能被下载,特别是 JavaBean 程序完全可以放到不对外的目录中。 e) JSP 的组件方式更方便,易于维护。JSP 通过 JavaBean 实现了功能扩充,而 且 JavaBean 更为简单。而 ASP 需要通过 COM 来扩充复杂的功能。在维护方面, COM 必须在服务器上注册,如果修改了 COM 程序,就必须重新注册,甚至必须关 机和重新启动。JavaBean 则不需要注册,放在 CLASSPATH 包含的目录中就行了。 另外 JavaBean 是完全

19、OOP,可以针对不同的业务处理功能方便地建立一整套可重 复利用的对象库,例如用户权限控制、E-mail 自动回复等等。 1.3.2 Tomcat Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很 多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可 以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应对 HTML 页面 的访问请求。实际上 Tomcat 部分是 Apache 服务器的扩展,但它是独立运行的,所 以当运行 Tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。当配置 正确时,Apache 为

20、 HTML 页面服务,而 Tomcat 实际上运行 JSP 页面和 Servlet。另 外,Tomcat 和 IIS、Apache 等 WEB 服务器一样,具有处理 HTML 页面的功能,另 外它还是一个 Servlet 和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。 JDK(Java Development Kit)是 Sun Microsystems 针对 Java 开发员的产品。自从 Java 推出以来,JDK 已经成为使用最广泛的 Java SDK。JDK 是整个 Java 的核心, 包括了 Java 运行环境,Java 工具和 Java 基础的类库。My

21、Eclipse 已经自带 JDK,在 MyEclipse 中,只需配置好 Tomcat 的就可以搭建好服务器。 1.3.3 SQL Server 2005 Microsoft SQL server 2005 是由 Microsoft 公司开发的,由一系列相互协助的组 件构成,能满足最大的 WEB 站点和企业数据处理系统存储和和分析数据的需求。 它提供了丰富的图形化管理工具,简化了系统管理与操作。 Microsoft SQL server 2005 具有如下特性: a) 其数据引擎提供完整的 XML 支持 b) 简单友好的操作方式 c) 多种形式的管理架构 d) 高度的可靠性、可扩展性和可用性

22、e) 数据库可以在不同的平台上使用 f) 易于安装、管理、部署和使用 1.3.4 JDK JDK(Java Development Kit)是 Sun Microsystems 针对 Java 开发员的产品。自 从 Java 推出以来,JDK 已经成为使用最广泛的 Java SDK。JDK 是整个 Java 的核心, 包括了 Java 运行环境,Java 工具和 Java 基础的类库。JDK 是学好 Java 的第一步。 而专门运行在 x86 平台的 Jrocket 在服务端运行效率也要比 Sun JDK 好很多。从 SUN 的 JDK5.0 开始,提供了泛型等非常实用的功能,其版本也在不断更

23、新,运行 效率得到了非常大的提高。 1.3.5 JavaScript JavaScript 是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性 能的脚本语言。使用它的目的是与 HTML 超文本标记语言、Java 脚本语言(Java 小程序)一起实现在一个 WEB 页面中连接多个对象,与 WEB 客户交互作用。从 而可以开发客户端的应用程序等。它是通过嵌入或调入到标准的 HTML 语言中实现 的。它的出现弥补了 HTML 语言的缺陷,它是 Java 与 HTML 折中的选择,具有以 下几个基本特点: a) JavaScript 是一种脚本编写语言 JavaScript

24、 是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语 言一样,JavaScript 同样已是一种解释性语言,它提供了一个简易的开发过程。它 的基本结构形式与 C、C+、VB、Delphi 十分类似。但它不像这些语言一样,需要 先编译,而是在程序运行过程中被逐行地解释。它与 HTML 标识结合在一起,从而 方便用户的使用 操作。 b) 基于对象 的语言 JavaScript 是一种基于对象的语言,同时也可以看作一种面向对象的语言。这 意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象 的方法与脚本的相互作用。 c) 简单性 JavaScript 的简单性主要体现在:

25、首先它是一种基于 Java 基本语句和控制流之 上的简单而紧凑的设计,从而对于学习 Java 是一种非常好的过渡。其次它的变量类 型是采用弱类型,并未使用严格的数据类型。 d) 安全性 JavaScript 是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入 到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或 动态交互,从而有效地防止数据的丢失。 e) 动态性 JavaScript 是动态的,它可以直接对用户或客户输入做出响应,无须经过 WEB 服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动, 就是指在主页(HomePage)中执行了某种

26、操作所产生的动作,就称为“事件” Event) 。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后, 可能会引起相应的事件响应。 f) 跨平台性 JavaScript 是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算 机,并支持 JavaScript 的浏览器就可正确执行。从而实现了“编写一次,走遍天下” 梦想。实际上 JavaScript 最杰出之处在于可以用很小的程序做大量的事。无须有高 性能的电脑,软件仅需一个字处理软件及浏览器。 1.3.6 MyEclipse MyEclipse 是一个十分优秀的用于开发 Java、J2EE 的 Eclipse 插件集合, My

27、Eclipse 的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分 不错。MyEclipse 目前支持 Java Servlet、AJAX、JSP、JSF、Struts、Spring、Hibernate、EJB3、JDBC 数据库链接工 具等多项功能。可以说 MyEclipse 几乎囊括了目前所有主流开源产品的专属 Eclipse 开发工具。 2 需求分析 2.1 系统可行性分析 可行性的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决, 系统方案在经济上、技术上和操作上是否可以接受。因此,可行性研究实质上是要 进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层

28、次上以较抽象 的方式进行系统分析和设计的过程。 因此,在对在线自测系统进行开发前,首先对系统进行整体规划与设计,否则 就会导致开发工作量大,系统不符合要求,更为糟糕的是还可能导致系统不完善或 整个系统根本就无法运行。因此,系统的总体规划与设计是在线自测必备且首要的 步骤。具体到本系统而言,就是要根据在线自测系统的目标、内容、规模、性质、 现有的配置等具体情况,进行系统可行性分析,明确系统开发的方向,规划系统整 体的物理结构。 2.1.1 技术可行性技术可行性 本系统操作系统采用 Windows 系列操作系统,数据库管理系统采用 SQL server 2005,采用 JSP+Servlet+Ja

29、vaBean 实现 MVC 三层模式进行系统的开发,IDE 工具 采用 MyEclipse。本系统的设计在技术上是可行的。 2.1.2 经济可行性经济可行性 在线自测系统可以节省大量的人力物力以及时间,可以最大限度的满足学生的 需要,减轻老师的教学负担。让学生可以更方便地进行在线自测。同时,系统自动 组卷、判卷,老师也可以通过本系统更方便地了解到学生的学习情况。 2.1.3 操作可行性操作可行性 在线自测系统具备良好的界面、使用方便、操作简单、易于被用户接受,用户 只需熟练操作计算机和对此系统使用做简单地了解即可方便使用,而且使用此系统 可以减轻学校的负担,从使用方面来看此系统的开发是可行的。

30、 2.2 系统基本需求 目前网上学习已经成为一种潮流,与此同时在线自测系统也成为一种需求。经 过对在线自测系统需求的分析,要求本系统具有以下功能: 考试系统的用户分为管理员、教师和学生三种。 a) 管理员:对教师信息、学生信息、学院信息、班级信息、科目信息的管理。 b) 教师:题库的管理、学生成绩的查询,平均成绩的查询以及试卷的发布。 c) 学生:主要是参加自主测验,测验完可以立即查出自己的考试成绩,并可以 查看正确答案和该课程的平均成绩。 另外,系统提供学生的注册,可以方便更多学生使用本系统。题型分为选择题 和填空题,系统实现自动随机抽题组卷。系统控制在线自测时间,时间一到自动提 交试卷。刷

31、新或离开考试页面,视为提交考卷,在一定程度上加强了系统的公平性 和严格性。测试完成系统自动批改试卷,得出学生该次自测练习的成绩,并写入数 据库。考试完成后,学生可以查看已参加的考试的正确答案,可以查询成绩,并且 可以查看平均成绩,了解自己的学习情况。 教师可以查询学生的成绩,并可以选择试卷来查询参加过该考试的学生成绩, 并可以按成绩的高低进行排序、查看该试卷的平均成绩,以便更好的了解学生的学 习情况。 2.3 系统功能模块需求 系统总体功能模块如图 2-1 所示。 在线自测系统 自 测 时 间 控 制 自 动 阅 卷 功 能 查 看 平 均 成 绩 试 卷 平 均 成 绩 自 动 组 卷 功

32、能 学 生 成 绩 排 序 学 院 管 理 功 能 科 目 管 理 功 能 后台部分前台部分(学生用户) 在 线 自 测 子 系 统 成 绩 查 询 子 系 统 正 确 答 案 子 系 统 教师用户 学 生 成 绩 试 卷 管 理 题 库 管 理 管理员用户 用 户 管 理 资 源 管 理 图 2-1 系统总体功能模块图 各个模块包含主要功能如下: a)在线自测模块:包括学生选择试卷、进行答题、提交试卷、系统评分和记 录成绩功能。 b)成绩查询模块:包括学生查询自己参加过测试的所有试卷的成绩,查询某 试卷的个人成绩和平均成绩;教师查询所有学生的成绩,查询某科目的学生成绩并 排序,查看该科目的平

33、均成绩功能。 c)正确答案模块:已参加过测试的学生,可以查看该试卷的答案。 d)试卷管理模块:包括自动组卷、发布试卷(或取消发布) 、预览试卷和删除 试卷功能。 e)题库管理模块:包括题库中所有题目的查询、添加、删除和修改功能。 f)用户管理模块:包括三种帐户(管理员、教师和学生)的查询、添加、删除 和修改功能。 g)资源管理 模块:包括系统 资源(院系、科目和班级)的查询、添加、删除和修改功能。 其中学生权限下的功能模块包括:在线自测模块、成绩查询模块和查看正确答 案模块;教师权限下的功能模块包括:题库管理模块、试卷管理模块和学生成绩管 理模块;管理员权限下的功能模块包括:用户管理模块和资源

34、管理模块。 2.4 系统的设计目标 在线自测系统是为了更好的服务教师和学生,减轻教师和学生的负担,使学生 可以自主学习。同时,教师可以监督学生,了解学生的学习情况。所以,本系统的 设计目标是在满足以上功能的同时,尽量做到界面美观大方,操作简单,安全性高。 3 系统概要设计 3.1 系统开发环境 在线自测系统的实现技术有多种,可以采用传统的客户机/服务器型的 MIS 型 架构,即试题内容放在远程的服务器上,在客户机上安装考试应用程序和数据库客 户机配置,因此每次访问时要对机器进行安装、配置,考务工作比较烦琐,而且考 试程序放在客户机上,安全性也受到一定影响。WEB 技术超越了传统的“客户机/ 服

35、务器”两层结构,采用了三层体系结构:用户界面层/事务层/数据库层,因此 WEB 结构有着更好的安全性,在用户机上不需要安装任何应用程序,应用程序可 以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数 据库可以是同一台机器(如果条件允许,还是应该把这两层分别放在不同的计算机 上) ,因此本系统最终决定采用 WEB 技术实现。 3.2 数据库设计 3.2.1 数据库需求分析数据库需求分析 通过对在线自测系统的功能分析,得出数据流图如图 3-1 所示。 生成试卷 题库 管理 教师登录 提 交 的 答 案 教师信息 管理操作 试 卷 内 容 考题 考题 考试请求 用户信息 用户信

36、息 学生信息 学生信息 教师信息 注册信息 试卷文件 学生信息文件 教师信息文件 管理员 评分 系统 学生 登录 教师 学生 资源管理 学生成绩文件 成绩信息 院系、科目文件 成绩信息 图 3-1 数据流程图 3.2.2 数据项与结构数据项与结构 根据上述需求,设计如下所示的数据项和数据结构: a) 用户表:用户名、密码、姓名、出生日期、性别、学院、专业、班级、学号、 E-mail、权限; b) 院系:编号和院系名称; c) 班级:班级名称和学院; d) 科目:编号、科目名称; e) 选择题题库:问题号、科目、题目、选项和答案; f) 填空题题库:问题号、科目、题目和答案; g) 试卷目录:试

37、卷名、科目、题目数量、每题分数、状态、总分、考试时间; h) 试卷选择题表:问题号、科目、题目、选项和答案; i) 试卷填空题表:问题号、科目、题目和答案; j) 成绩:用户名、试卷名、姓名、成绩、专业名称和院系名称。 3.2.3 系统系统 E-R 图图 基于上面的需求分析可以得出系统的 E-R 图,如图 3-2 所示。 N M 1 Q Y A S D 1 ZX 1 学生教师 管理员 员 试卷 院系 从属 从属 管理 管理考试 科目 从属 1 1 1 从属 班级 从属 11 图 3-2 系统 E-R 图 3.2.4 数据库表设数据库表设 计计 数据库 user 包含以下八个表:用户表、院系表、

38、班级表、科目表、选择题题库 表、填空题题库表、试卷目录表、成绩表。另外,试卷选择题表、试卷填空题表为 系统随即组卷时自动生成的表,表结构与题库表相同。下面简单介绍几个表的结构。 用户表用于存放管理员用户、教师用户和学生用户的基本信息和权限,权限字 段为“1”为管理员, “2”为教师用户, “3”为学生用户。表结构如表 3-1 所示。 表 3-1 用户表(Online_Examination) 名称字段名数据类型主键非空 序号 idintYESYES 用户名 usernamevarchar(50)NONO 密码 passwordvarchar(50)NONO 姓名 rnamevarchar(50

39、)NONO 性别 sexvarchar(50)NONO 出生日期 timeavarchar(50)NONO 学院 xueyuanvarchar(50)NONO 专业 zhuanyevarchar(50)NONO 班级 banjivarchar(50)NONO 学号 xuehaovarchar(50)NONO 邮箱 emailvarchar(50)NONO 院系信息表用于存放院系信息,班级表与院系表为从属关系。只需要两个字段, 院系编号和院系信息。表结构如表 3-2 所示。 表 3-2 院系信息表(Online_Examination_XY) 名称字段名数据类型主键非空 院系编号 idintYE

40、SYES 院系名称 xueyuanvarchar(50)NONO 班级信息表用于存放班级信息,其中的学院名称与院系表的学院名称相关联, 表示班级和学院的从属关系。表结构如表 3-3 所示。 表 3-3 班级信息表(Online_Examination_BJ) 名称字段名数据类型主键非空 班级编号 idintYESYES 班级名称 banjivarchar(50)NONO 学院名称 xueyuanvarchar(50)NONO 科目信息表用于存放科目信息,表结构如表 3-4 所示。 表 3-4 科目信息表(Online_Examination_LX) 名称字段名数据类型主键非空 科目编号 idi

41、ntYESYES 科目名称 leixingvarchar(50)NONO 选择题题库表用于存放选择题信息,其中科目与科目表相关联。还包括问题、 选项和正确答案字段。表结构如表 3-5 所示。 表 3-5 选择题题库表(Online_ST) 名称字段名数据类型主键非空 问题号 idintYESYES 科目 leixingvarchar(50)NONO 问题 timuvarchar(5000)NONO 选项 1 xxavarchar(500)NONO 选项 2 xxbvarchar(500)NONO 选项 3 xxcvarchar(500)NONO 选项 4 xxdvarchar(500)NONO

42、 答案 daanvarchar(500)NONO 填空题题库表用于存放填空题信息,其中科目与科目表相关联。还包括问题和 正确答案字段。表结构如表 3-6 所示。 表 3-6 填空题题库表(Online_ST1) 名称字段名数据类型主键非空 问题号 idintYESYES 科目 leixingvarchar(50)NONO 问题 timuvarchar(500)NONO 答案 daanvarchar(500)NONO 试卷目录表用于存放试卷信息,试卷权限字段标识试卷的发布状态, “1”为发 布, “2”为未发布。另外其他字段还包括题目数量、每题分数、考试时间等。表结 构如表 3-7 所示。 表

43、3-7 试卷目录表(Online_Examination_ML) 名称字段名数据类型主键非空 序号 idintYESYES 试卷名 shijuan_namevarchar(50)NONO 试卷科目 shijuan_bumenvarchar(50)NONO 题目数量 timu_shuliangvarchar(50)NONO 试卷权限 shijuan_quanxianvarchar(50)NONO 每题分数 meitifenshuvarchar(50)NONO 总分 zongfenvarchar(50)NONO 考试时间 kaoshi_sjvarchar(50)NONO 学生成绩表用于存放学生成绩

44、信息,平均成绩模块要用到整型的考试成绩,所 以数据类型设计成 int,其他字段包括试卷名、学院、专业、学生名等。学生表结 构如表 3-8 所示。 表 3-8 学生成绩表(Online_Examination_XJ) 名称字段名数据类型主键非空 序号 idintYESYES 学生姓名 student_namevarchar(50)NONO 试卷名 shijuan_bumenvarchar(50)NONO 考试成绩 kaoshi_cjintNONO 专业 zhuanyevarchar(50)NONO 学院 xueyuanvarchar(50)NONO 用户名 usernamevarchar(50)

45、NONO 4 系统详细设计 4.1 数据库连接及操作类的编写 数据库连接及操作类通常包括连接数据库的方法 getConnection()、执行查询语 句的方法 executeQuery()、执行更新操作的方法 executeUpdate()和关闭数据库连接的 方法 close()。下面将详细介绍在线自测系统中数据库连接及操作的类“conn” 。 conn.java 放在包 Javabean 下,主要负责数据库的连接和数据的操作。数据库连 接采用 JDBC 方法: public conn() try Class.forName(com.microsoft.jdbc.sqlserver.SQLSe

46、rverDriver); catch (Exception e) try String path = jdbc:microsoft:sqlserver:/:1433;DatabaseName=user; String name = sa; String word = 123; conn = DriverManager.getConnection(path, name, word); catch (Exception e) 数据的操作先调用 conn 的 createStatement 方法创建一个 stmt,然后调用 statement 的 executeQuery 方法执行

47、 sql 语句,结果集放到 resultset 声明的 rs 中。以 查询为例代码如下: public ResultSet query(String sql) try stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_U PDATABLE); rs = stmt.executeQuery(sql); System.out.println(数据库查询成功!); return rs; catch (Exception e) return rs; 4.2 在线自测模块设计 在线自测模块是本系统

48、的主要功能模块。后台数据库中已经存放了教师用户添 加、发布,并由系统自动组卷生成的试卷表。学生用户在选择试卷后,进行测验。 提交试卷后,系统自动批改试卷。 a) 进入自测页面前的验证 注册学生用户首先通过下拉菜单选择试卷,为了保证系统的安全性,只有教师 用户发布过的试卷,即数据库表 Online_Examination_ML 中的试卷权限的值为“1” , 才会显示在下拉菜单中。实现的主要方法是,查询表 Online_Examination_ML 中的 试卷权限的值。主要代码如下: String sql=select * from Online_shijuan_ML where shijuan_

49、quanxian=1; ResultSet rs=aaa.query(sql); =请选择= option value= 选择一份试卷进入考试,将选择项以 select 标签的 value 属性传递给 kaishikaishi.jsp,该 JSP 获取试卷名,首先查询学生成绩表 Online_Examination_XJ,如果查询结果不为空,则说明已经测试过,不能再进行测 试。然后查询数据库中试卷名称命名的表,获取考卷内容。查询试卷目录表 Online_Examination_ML 中该试卷名所对应的数据,获取字段 kaoshi_sj 的值,来控 制考试时间。 b) 前台考试页面 因为试卷的题

50、型为选择和填空,所以在设计数据库的时候将题库表和试卷表都 区分为选择题库表和填空题库表、选择题试卷表和填空题试卷表。所以在获取试卷 的时候要将两个试卷表数据库都查询到,并以不同的形式显示出来。选择题的选项 用 radio 类型的标签,填空类型用 text 类型的标签传递答案,以便传值给阅卷模块。 获取试卷的主要代码如下: String sql2=select * from +shijuan_name; conn con = new conn(); ResultSet rs2=con.query(sql2); String sql21=select * from +shijuan_name+1;

51、 conn con21 = new conn(); ResultSet rs21=con21.query(sql21); 考试界面如图4-1所示。 图4-1 考试界面 c) 考试时间的控制 考试时间的控制对系统的公平性影响很大,所以本系统细致的实现了此功能。 基本方法是,在kaishikaishi.jsp的head部分设置一个隐藏的标签作为JSP与Javascript 传值的媒介,Javascript中用document.getElementById( ).value方法获取该表的value值, 即该试卷的考试时间。然后,在kaishikaishi.jsp页面加载完成的时候就开始计时,考 试时

52、间结束后, 自动提交考试表 单到自动阅卷页 面,完成考试。 考试时间控制的核心代码如下: input type=hidden name=time value= id=time var timer = document.getElementById(time).value; var startTime, timeOver function checkTime() var timeNow = new Date(); var remnantTime = timeOver.getTime() - timeNow.getTime(); if(remnantTime 1) alert( 时间到了,点击确定

53、交卷。 ); document.autosub.submit(); else var msg = ; var date1 = new Date(); date1.setTime(remnantTime); msg = (date1.getTime() % 60000 = 0)?(Math.ceil(date1.getTime() / (60000) + 分 ):(Math.ceil(date1.getTime() / (60000)-1 + 分 ); msg += date1.getSeconds() + 秒 ; document.all.agree.value=msg; setTimeout

54、( checkTime(); ,1000); function window_load() startTime = new Date(); timeOver = new Date(); timeOver.setTime(startTime.getTime() + (timer * 1000); checkTime(); window.onload = window_load; /网页加载完成开始计时 d) 自动批改试卷 kaishikaishi.jsp中设置了一个表单,试卷提交后,将表单的内容提交给 add_chengji.jsp页面进行自动阅卷和学生成绩的录入。自动阅卷功能是 add_che

55、ngji.jsp获取了学生在kaishikaishi.jsp中选择或填入的答案,然后和数据库中 的标准答案进行比对。如果比对正确,则在总分上加上每题分数,如果不正确则不 加分。 部分核心代码如下: for(int i=1;i=shuliang_xz;i+) rs.next(); String daan1=request.getParameter(+i); if(daan1=null |daan1=) System.out.println(没有aa的值); continue; daan1=new String(daan1.getBytes(ISO8859-1),gb2312); System.o

56、ut.println(第+i+题选择的答案:+daan1); String daan=rs.getString(daan); if(daan.equals(A) daan=rs.getString(xxa); else if(daan.equals(B) daan=rs.getString(xxb); else if(daan.equals(C) daan=rs.getString(xxc); else if(daan.equals(D) daan=rs.getString(xxd); System.out.println(第+i+题正确答案:+daan); if(daan1.equals(d

57、aan) System.out.println(第+i+题回答正确!); zongfen=zongfen+meitifenshu1; System.out.println(-); 4.3 成绩查询模块设计 成绩查询模块分为学生用户使用的成绩查询和教师用户使用的成绩查询。 a)学生用户的成绩查询 学生用户查询的成绩是该用户所参加自测的成绩。学生的成绩查询模块包含按 试卷查询成绩的功能。同时也可以查询相应试卷的平均成绩,以了解自己的学习情 况。考试成绩查询页面如图4-2所示。 图4-2 考试成绩查询 该页面显示该学生所参加的所有考试的成绩。 按试卷查询成绩功能的实现是将select标签和submi

58、t标签放入表单中,然后通过 select标签的value属性传递试卷名给cj_chaxun1.jsp,该jsp文件按照试卷名到数据库 中查询相应字段的值。 平均成绩功能则是将该试卷所有学生的成绩求平均。因为在实现过程中,sql语 句的avg( )函数在执行时总是出错,所以在实现的过程中只能选用在循环语句中把查 询结果的kaoshi_cj字段的值相加,再除以该试卷所有学生的个数。 核心代码如下: b)教师用户的成绩查询 教师用户的成绩查询功能模块与学生的成绩查询功能模块类似,只是增加了一 个排序的功能,即将某试卷的所有学生成绩进行排序。以便更好的了解学生的学习 情况。排序功能只是简单利用了sql

59、语句中的“order by desc” ,核心代码如下: conn cn = new conn(); String sql=select * from Online_Examination_XJ where shijuan_name=+sj_name+ order by kaoshi_cj desc; ResultSet rs= cn.query(sql); 排序前的页面如图4-3所示。 图4-3 排序前 排序后的页面如图4-4所示。 图4-4 排序后 4.4 查看正确答案模块设计 完成考试后,学生可以查看正确答案。选择试卷名后,将试卷名提交给 right_answer.jsp页面,该页面通过

60、查询Online_Examination_XJ表中,该用户是否有 该试卷的成绩,来判断该用户是否自测完成。若未完成,弹出对话框提示该信息。 流程图如图4-5所示。 是否已参加考试 查看该试卷正 确答案 结束 选择试卷 否 是 开始 图 4-5 查看正确答案模块流程图 条件判断的主要代码: alert(您还未考试,不能查看答案!); window.location=kaishidati.jsp; 查看正确答案界面如图4-6所示。 图4-6 查看正确答案页面 4.5 试卷管理模块设计 试卷管理模块的主要功能分为:自动组卷、试卷发布(取消试卷发布) 、试卷 预览和删除试卷。 4.5.1 自动组卷模块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论