基于WEB的在线自测系统的设计与实现毕业设计说明书

上传人:1888****888 文档编号:38915204 上传时间:2021-11-09 格式:DOC 页数:80 大小:1.76MB
收藏 版权申诉 举报 下载
基于WEB的在线自测系统的设计与实现毕业设计说明书_第1页
第1页 / 共80页
基于WEB的在线自测系统的设计与实现毕业设计说明书_第2页
第2页 / 共80页
基于WEB的在线自测系统的设计与实现毕业设计说明书_第3页
第3页 / 共80页
资源描述:

《基于WEB的在线自测系统的设计与实现毕业设计说明书》由会员分享,可在线阅读,更多相关《基于WEB的在线自测系统的设计与实现毕业设计说明书(80页珍藏版)》请在装配图网上搜索。

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

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

3、ine Self-test System Based on WEBAbstract : 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

4、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 their own learning an

5、d 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-test exercises very int

6、uitive 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 management, paper manag

7、ement, 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. Hierarchy of the whole sy

8、stem 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基于 WEB 的在线自测系统的设计与实现目目 录录1 概 述.11.1 项目开发背景及意义.11.2 系统开发环境.11.3 系统开发技术及工具.22 需求分析.52.1 系统可行性分析.52.2 系统

9、基本需求.52.3 系统功能模块需求.62.4 系统的设计目标.73 系统概要设计.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

10、附录 1 程序清单.36附录 1.1 登录模块程序清单.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 数据库连接和操作模块程序清单.711基于基于 WEBWEB 的在线自测系统的设计与实现的在线自测系统的设计与实现1 概

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

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

13、S 结构,主要是利用了不断成熟的WWW 浏览器技术,结合浏览器的多种 Script 语言(VBScript、JavaScript)和ActiveX 技术,通过浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着 Windows 98/Windows 2000 将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然 B/S 结构应用程序相对于传统的 C/S 结构应用程序是巨大的进步。B/S 结构具有以下优点:a) 具有分布性特点,可以随时随地进行查询、浏览等业务处理。b) 业务扩展简单方便,通过增加网页即可增加服务器功能

14、。c) 维护管理方便,只需更改网页即可实现所有用户的同步更新。d) 开发简单,共享性强。基于 WEB 的在线自测系统的设计与实现21.3 系统开发技术及工具1.3.1 JSPJSP 的工作原理是当用户浏览器从 WEB 服务器上请求 JSP 文件时,WEB 服务器响应该 HTTP 请求,JSP 引擎解释 JSP 标识和小脚本,通过访问 JavaBean 组件,使用 JDBC 技术访问数据库,生成所请求的内容,并且将结果以 HTML 或者 XML页面的形式返回给浏览器。Servlet 为 WEB 开发员提供了一个简单、一致的机制,来扩展 WEB 服务器的功能,并且和已有的业务系统交互,可以把 Se

15、rvlet 看作在服务端运行的 Applet。JavaBean 是一种“类” ,通过封装属性和方法成为具有某种功能或处理某业务的对象。JavaBean 被组织成为 Package 以便进行管理。实际上就是把一组 JavaBean 一起放在 XX 目录中,每个类的定义前加上 PackageXX,必须放在系统环境 Classpath 包含的目录下,系统才能找到其中的 JavaBean。JSP 技术是Servlet 技术的扩展,对 HTML 和 XML 的页面创作提供支持。网页设计员能够非常容易地将固定或静态的模板数据与动态内容进行组合。JSP 功能特点如下:a) JSP 具有跨平台能力、语法简单、

16、书写容易,并且有“一处编写,随处运行”的特点。与 ASP 相比,JSP+JavaBean 可以在所有平台下运行,而 Java 字节码都是具有标准性、跨平台性,在移植到另外的平台上时基本不用重新编译。而 ASP 目前仅用于 NT 和 IIS,需要通过 ASP+COM组合实现扩充,而且在 Unix 下使用 COM 非常困难。b) 采用 JavaBean 执行应用中的复杂处理,由于这些组件可重复使用,能提高开发效率。此外,组件的使用有利于实现静态和动态页面的分离,页面设计者和开发设计者可以各司其职 JSP 为分离处理逻辑和表示层提供了很好的解决方案。c) JSP 技术为创建显示动态生成内容的 WEB

17、 页面提供了一个简捷而快速的方法。JSP 技术的设计目的是使构造基于 WEB 应用程序更加容易和快捷,这些应用程序能够与各种 WEB 服务器、应用服务器、浏览器和开发工具共同工作。d) JSP 的效率和安全性更高。ASP 以源码形式存放,以解释方式运行,每次ASP 网页调用都需要对源码进行解释,运行效率不高。JSP 在执行以前先被编译成字节码,字节码由 Java 虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高服务器上还有字节码 Cache 机制,能提高字节码的访问效率。第一次调用 JSP网页可能稍慢,因为它被编译成 Cache,以后就快得多了。同时,JSP 源程

18、序不大可能被下载,特别是 JavaBean 程序完全可以放到不对外的目录中。e) JSP 的组件方式更方便,易于维护。JSP 通过 JavaBean 实现了功能扩充,而且 JavaBean 更为简单。而 ASP 需要通过 COM 来扩充复杂的功能。在维护方面,COM 必须在服务器上注册,如果修改了 COM 程序,就必须重新注册,甚至必须关机和重新启动。JavaBean 则不需要注册,放在 CLASSPATH 包含的目录中就行了。另外 JavaBean 是完全 OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、E-mail 自动回复等等。31.3.2 Tom

19、catTomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应对 HTML 页面的访问请求。实际上 Tomcat 部分是 Apache 服务器的扩展,但它是独立运行的,所以当运行 Tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。当配置正确时,Apache 为 HTML 页面服务,而 Tomcat 实际上运行 JSP 页面和 Servlet。另外,Tomcat 和 IIS、Apache 等 WEB 服务器一

20、样,具有处理 HTML 页面的功能,另外它还是一个 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 2005Micro

21、soft SQL server 2005 是由 Microsoft 公司开发的,由一系列相互协助的组件构成,能满足最大的 WEB 站点和企业数据处理系统存储和和分析数据的需求。它提供了丰富的图形化管理工具,简化了系统管理与操作。Microsoft SQL server 2005 具有如下特性:a) 其数据引擎提供完整的 XML 支持b) 简单友好的操作方式c) 多种形式的管理架构d) 高度的可靠性、可扩展性和可用性e) 数据库可以在不同的平台上使用f) 易于安装、管理、部署和使用1.3.4 JDKJDK(Java Development Kit)是 Sun Microsystems 针对 Ja

22、va 开发员的产品。自从 Java 推出以来,JDK 已经成为使用最广泛的 Java SDK。JDK 是整个 Java 的核心,包括了 Java 运行环境,Java 工具和 Java 基础的类库。JDK 是学好 Java 的第一步。而专门运行在 x86 平台的 Jrocket 在服务端运行效率也要比 Sun JDK 好很多。从SUN 的 JDK5.0 开始,提供了泛型等非常实用的功能,其版本也在不断更新,运行效率得到了非常大的提高。1.3.5 JavaScriptJavaScript 是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。使用它的目的是与

23、HTML 超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个 WEB 页面中连接多个对象,与 WEB 客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入到标准的 HTML 语言中实现的。它的出现弥补了 HTML 语言的缺陷,它是 Java 与 HTML 折中的选择,具有以基于 WEB 的在线自测系统的设计与实现4下几个基本特点:a) JavaScript 是一种脚本编写语言JavaScript 是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript 同样已是一种解释性语言,它提供了一个简易的开发过程。它的基本结构形式与 C、C+、V

24、B、Delphi 十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与 HTML 标识结合在一起,从而方便用户的使用操作。b) 基于对象的语言JavaScript 是一种基于对象的语言,同时也可以看作一种面向对象的语言。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。c) 简单性JavaScript 的简单性主要体现在:首先它是一种基于 Java 基本语句和控制流之上的简单而紧凑的设计,从而对于学习 Java 是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。d) 安全性JavaScript

25、 是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。e) 动态性JavaScript 是动态的,它可以直接对用户或客户输入做出响应,无须经过 WEB服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(HomePage)中执行了某种操作所产生的动作,就称为“事件”Event) 。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。f) 跨平台性JavaScript 是依赖于浏览器本身,与操作环境无关,只要能运

26、行浏览器的计算机,并支持 JavaScript 的浏览器就可正确执行。从而实现了“编写一次,走遍天下”梦想。实际上 JavaScript 最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件及浏览器。1.3.6 MyEclipseMyEclipse 是一个十分优秀的用于开发 Java、J2EE 的 Eclipse 插件集合,MyEclipse 的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse 目前支持 Java Servlet、AJAX、JSP、JSF、Struts、Spring、Hibernate、EJB3、JDBC 数据

27、库链接工具等多项功能。可以说 MyEclipse 几乎囊括了目前所有主流开源产品的专属 Eclipse5开发工具。2 需求分析2.1 系统可行性分析可行性的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决,系统方案在经济上、技术上和操作上是否可以接受。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行系统分析和设计的过程。因此,在对在线自测系统进行开发前,首先对系统进行整体规划与设计,否则就会导致开发工作量大,系统不符合要求,更为糟糕的是还可能导致系统不完善或整个系统根本就无法运行。因此,系统的总体规划与设计是在线自测必备且首

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) 教师:题库的管理、学生成绩的

30、查询,平均成绩的查询以及试卷的发布。c) 学生:主要是参加自主测验,测验完可以立即查出自己的考试成绩,并可以查看正确答案和该课程的平均成绩。另外,系统提供学生的注册,可以方便更多学生使用本系统。题型分为选择题基于 WEB 的在线自测系统的设计与实现6和填空题,系统实现自动随机抽题组卷。系统控制在线自测时间,时间一到自动提交试卷。刷新或离开考试页面,视为提交考卷,在一定程度上加强了系统的公平性和严格性。测试完成系统自动批改试卷,得出学生该次自测练习的成绩,并写入数据库。考试完成后,学生可以查看已参加的考试的正确答案,可以查询成绩,并且可以查看平均成绩,了解自己的学习情况。教师可以查询学生的成绩,

31、并可以选择试卷来查询参加过该考试的学生成绩,并可以按成绩的高低进行排序、查看该试卷的平均成绩,以便更好的了解学生的学习情况。2.3 系统功能模块需求系统总体功能模块如图 2-1 所示。在线自测系统自测时间控制自动阅卷功能查看平均成绩试卷平均成绩自动组卷功能学生成绩排序学院管理功能科目管理功能后台部分前台部分(学生用户)在线自测子系统成绩查询子系统正确答案子系统教师用户学生成绩试卷管理题库管理管理员用户用户管理资源管理图 2-1 系统总体功能模块图各个模块包含主要功能如下:a)在线自测模块:包括学生选择试卷、进行答题、提交试卷、系统评分和记7录成绩功能。b)成绩查询模块:包括学生查询自己参加过测

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

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

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

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

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

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

38、O学院xueyuanvarchar(50)NONO专业zhuanyevarchar(50)NONO班级banjivarchar(50)NONO基于 WEB 的在线自测系统的设计与实现10学号xuehaovarchar(50)NONO邮箱emailvarchar(50)NONO院系信息表用于存放院系信息,班级表与院系表为从属关系。只需要两个字段,院系编号和院系信息。表结构如表 3-2 所示。表 3-2 院系信息表(Online_Examination_XY)名称字段名数据类型主键非空院系编号idintYESYES院系名称xueyuanvarchar(50)NONO班级信息表用于存放班级信息,其中

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

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

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

42、_bumenvarchar(50)NONO题目数量timu_shuliangvarchar(50)NONO试卷权限shijuan_quanxianvarchar(50)NONO每题分数meitifenshuvarchar(50)NONO总分zongfenvarchar(50)NONO考试时间kaoshi_sjvarchar(50)NONO学生成绩表用于存放学生成绩信息,平均成绩模块要用到整型的考试成绩,所以数据类型设计成 int,其他字段包括试卷名、学院、专业、学生名等。学生表结构如表 3-8 所示。表 3-8 学生成绩表(Online_Examination_XJ)名称字段名数据类型主键非空

43、序号idintYESYES学生姓名student_namevarchar(50)NONO试卷名shijuan_bumenvarchar(50)NONO考试成绩kaoshi_cjintNONO专业zhuanyevarchar(50)NONO学院xueyuanvarchar(50)NONO用户名usernamevarchar(50)NONO4 系统详细设计4.1 数据库连接及操作类的编写数据库连接及操作类通常包括连接数据库的方法 getConnection()、执行查询语句的方法 executeQuery()、执行更新操作的方法 executeUpdate()和关闭数据库连接的方法 close()

44、。下面将详细介绍在线自测系统中数据库连接及操作的类“conn” 。conn.java 放在包 Javabean 下,主要负责数据库的连接和数据的操作。数据库连接采用 JDBC 方法:public conn() try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);基于 WEB 的在线自测系统的设计与实现12 catch (Exception e) try String path = jdbc:microsoft:sqlserver:/127.0.0.1:1433;DatabaseName=user;String name

45、 = sa;String word = 123;conn = DriverManager.getConnection(path, name, word); catch (Exception e) 数据的操作先调用 conn 的 createStatement 方法创建一个 stmt,然后调用statement 的 executeQuery 方法执行 sql 语句,结果集放到 resultset 声明的 rs 中。以查询为例代码如下:public ResultSet query(String sql) try stmt = conn.createStatement(ResultSet.TYPE_

46、SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);rs = stmt.executeQuery(sql);System.out.println(数据库查询成功!);return rs;catch (Exception e) return rs;4.2 在线自测模块设计在线自测模块是本系统的主要功能模块。后台数据库中已经存放了教师用户添加、发布,并由系统自动组卷生成的试卷表。学生用户在选择试卷后,进行测验。提交试卷后,系统自动批改试卷。a) 进入自测页面前的验证注册学生用户首先通过下拉菜单选择试卷,为了保证系统的安全性,只有教师用户发布过的试卷,即数据

47、库表 Online_Examination_ML 中的试卷权限的值为“1” ,才会显示在下拉菜单中。实现的主要方法是,查询表 Online_Examination_ML 中的试卷权限的值。主要代码如下:13String sql=select * from Online_shijuan_ML where shijuan_quanxian=1; ResultSet rs=aaa.query(sql); =请选择= option value= 选择一份试卷进入考试,将选择项以 select 标签的 value 属性传递给kaishikaishi.jsp,该 JSP 获取试卷名,首先查询学生成绩表On

48、line_Examination_XJ,如果查询结果不为空,则说明已经测试过,不能再进行测试。然后查询数据库中试卷名称命名的表,获取考卷内容。查询试卷目录表Online_Examination_ML 中该试卷名所对应的数据,获取字段 kaoshi_sj 的值,来控制考试时间。b) 前台考试页面因为试卷的题型为选择和填空,所以在设计数据库的时候将题库表和试卷表都区分为选择题库表和填空题库表、选择题试卷表和填空题试卷表。所以在获取试卷的时候要将两个试卷表数据库都查询到,并以不同的形式显示出来。选择题的选项用 radio 类型的标签,填空类型用 text 类型的标签传递答案,以便传值给阅卷模块。获取

49、试卷的主要代码如下: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);考试界面如图4-1所示。基于 WEB 的在线自测系统的设计与实现14图4-1 考试界面c) 考试时间的控制考试时间的控制对系统的公平性影响很大,所以本系统细致的实现了此功能。基本方法是,在kai

50、shikaishi.jsp的head部分设置一个隐藏的标签作为JSP与Javascript传值的媒介,Javascript中用document.getElementById( ).value方法获取该表的value值,即该试卷的考试时间。然后,在kaishikaishi.jsp页面加载完成的时候就开始计时,考试时间结束后,自动提交考试表单到自动阅卷页面,完成考试。考试时间控制的核心代码如下:input type=hidden name=time value= id=timevar timer = document.getElementById(time).value; var startTim

51、e, timeOver function checkTime() var timeNow = new Date(); var remnantTime = timeOver.getTime() - timeNow.getTime(); if(remnantTime 1) alert( 时间到了,点击确定交卷。 ); document.autosub.submit(); 15else var msg = ; var date1 = new Date(); date1.setTime(remnantTime); msg = (date1.getTime() % 60000 = 0)?(Math.ce

52、il(date1.getTime() / (60000) + 分 ):(Math.ceil(date1.getTime() / (60000)-1 + 分 ); msg += date1.getSeconds() + 秒 ; document.all.agree.value=msg; setTimeout( checkTime(); ,1000); function window_load() startTime = new Date(); timeOver = new Date();timeOver.setTime(startTime.getTime() + (timer * 1000);c

53、heckTime(); window.onload = window_load; /网页加载完成开始计时 d) 自动批改试卷kaishikaishi.jsp中设置了一个表单,试卷提交后,将表单的内容提交给add_chengji.jsp页面进行自动阅卷和学生成绩的录入。自动阅卷功能是add_chengji.jsp获取了学生在kaishikaishi.jsp中选择或填入的答案,然后和数据库中的标准答案进行比对。如果比对正确,则在总分上加上每题分数,如果不正确则不加分。部分核心代码如下:for(int i=1;i=shuliang_xz;i+)rs.next();String daan1=reque

54、st.getParameter(+i);if(daan1=null |daan1=) System.out.println(没有aa的值);continue;daan1=new String(daan1.getBytes(ISO8859-1),gb2312);System.out.println(第+i+题选择的答案:+daan1);String daan=rs.getString(daan);基于 WEB 的在线自测系统的设计与实现16if(daan.equals(A)daan=rs.getString(xxa);else if(daan.equals(B)daan=rs.getString

55、(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(daan)System.out.println(第+i+题回答正确!);zongfen=zongfen+meitifenshu1;System.out.println(-);4.3 成绩查询模块设计成绩查询模块分为学生用户使用的成绩查询和教师用户使用的成绩查询。a)学生用户的成绩查询学生用户查询的成绩是

56、该用户所参加自测的成绩。学生的成绩查询模块包含按试卷查询成绩的功能。同时也可以查询相应试卷的平均成绩,以了解自己的学习情况。考试成绩查询页面如图4-2所示。图4-2 考试成绩查询17该页面显示该学生所参加的所有考试的成绩。按试卷查询成绩功能的实现是将select标签和submit标签放入表单中,然后通过select标签的value属性传递试卷名给cj_chaxun1.jsp,该jsp文件按照试卷名到数据库中查询相应字段的值。平均成绩功能则是将该试卷所有学生的成绩求平均。因为在实现过程中,sql语句的avg( )函数在执行时总是出错,所以在实现的过程中只能选用在循环语句中把查询结果的kaoshi

57、_cj字段的值相加,再除以该试卷所有学生的个数。核心代码如下:b)教师用户的成绩查询教师用户的成绩查询功能模块与学生的成绩查询功能模块类似,只是增加了一个排序的功能,即将某试卷的所有学生成绩进行排序。以便更好的了解学生的学习情况。排序功能只是简单利用了sql语句中的“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

58、(sql);排序前的页面如图4-3所示。图4-3 排序前基于 WEB 的在线自测系统的设计与实现18排序后的页面如图4-4所示。图4-4 排序后4.4 查看正确答案模块设计完成考试后,学生可以查看正确答案。选择试卷名后,将试卷名提交给right_answer.jsp页面,该页面通过查询Online_Examination_XJ表中,该用户是否有该试卷的成绩,来判断该用户是否自测完成。若未完成,弹出对话框提示该信息。流程图如图4-5所示。是否已参加考试查看该试卷正确答案结束选择试卷否是开始图 4-5 查看正确答案模块流程图条件判断的主要代码:alert(您还未考试,不能查看答案!);window

59、.location=kaishidati.jsp;查看正确答案界面如图4-6所示。图4-6 查看正确答案页面4.5 试卷管理模块设计试卷管理模块的主要功能分为:自动组卷、试卷发布(取消试卷发布) 、试卷预览和删除试卷。4.5.1 自动组卷模块设计自动组卷模块设计自动组卷功能属于添加试卷。添加试卷之前要首先选择添加试卷的科目,然后页面跳转至fabu_shijuan.jsp,该jsp文件通过调用conn.java查询数据库题库表中科目为所选择科目的元组,分别显示选择题题库的题目数量和填空题题库的题目数量。基于 WEB 的在线自测系统的设计与实现20添加试卷页面如图4-7所示。图4-7 添加新试卷页

60、面图为了保证教师用户输入信息格式的完整性,保证数据插入不出现异常,在fabu_shijuan.jsp中加入JavaScript代码,fabu_shijuan.jsp中控制输入格式的严格性的主要代码如下: function notnull()hh=;aa=frm.shiti_name.value;bb=frm.shuliang.value;cc=frm.meitifs.value;dd=frm.kaoshisj.value;ee=frm.shuliang1.value;if(aa= | aa=null)alert(请填写试题名称!);return false;else if(bb= | bb=n

61、ull)alert(请填写试题数量!);return false;else if(ee= | ee=null)alert(请填写试题数量!);return false;else if(bbhh)alert(数量不能大于题库!);return false;21else if(bb1|ee1)alert(数量不能小于1!);return false;else if(cc= | cc=null)alert(请填写每题多少分!);return false;else if(dd= | dd=null)alert(请填写考试时间!);return false;else return checkuserna

62、me(); 教师用户输入的信息(如选择题数量,填空题数量,每题分数,考试时间等)以表单的方式提交给servlet,servlet获取表单中各标签的值,然后调用javabean中的ADD_shijuan.java进行自动组卷。自动组卷模块的设计思路是调用conn.java查询数据库题库表中所有科目为所选择科目的元组放入结果集rs中。利用Math.random()生成0-1的随即种子然后乘以题库中的试题数目加上一,即得到题库中所有可能的题目id的对照。用rs.absolute()方法获取该id对应的元组,然后插入新建的试卷题目表。将以上过程写入循环语句中,执行对应要生成试卷的该试题类型的个数次。以

63、选择题为例,核心代码如下:conn cn2 = new conn();int a = new intds;for(int ii=0;iids;ii+)int temp=(int)(Math.random()*10+1);try while(true)if(eq(a,temp) aii = temp;break;elsetemp=(int)(Math.random()*10+1);if(temp=0)基于 WEB 的在线自测系统的设计与实现22temp=1;String te=第+iiii+;System.out.println(获取的随机数为:+temp); rs.absolute(temp)

64、; String sql3=insert into +shiti_name+ (leixing,timu,xxa,xxb,xxc,xxd,daan,name_input) values(+rs.getString(2)+,+rs.getString(3)+,+rs.getString(4)+,+rs.getString(5)+,+rs.getString(6)+,+rs.getString(7)+,+rs.getString(8)+,+te+);cn2.update(sql3);System.out.println(te+道题目添加成功);System.out.println(-); catc

65、h (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();4.5.2 其他试卷管理模块设计其他试卷管理模块设计a) 发布试卷和取消发布试卷发布试卷和取消发布试卷功能,是将数据库表Online_Examination_ML中的试卷权限的值,相应的设置成“1”或者“2” 。以取消发布试卷为例,核心代码如下:b) 删除试卷删除试卷是将id对应的在数据库表Online_Examination_ML中的元组删除,执行的过程与发布试卷功能的过程类似,sql语句为:String sql=delete Online_shij

66、uan_ML where id=+id+;c) 试卷预览试卷预览功能所操作的表是自动组卷模块生成的表,查询该试卷名所对应的不同题型的试卷表的内容,并在前台页面显示。sql语句如下:String sql=select * from +namea;/试卷选择题表String sql11=select * from +namea+1;/试卷填空题表23前台显示的页面如图4-8所示。图4-8 试卷预览4.6 题库管理模块设计由于试题类型分为选择题和填空题,所以在设计题库管理的时候要设计试题类型的选择。通过表单将select标签的value传给跳转页面,跳转页面再通过判断调用window.location方法进入相应题型的题库。因为添加新题模块的页面和修改删除题目的页面不同,而一个跳转页面对于同种选择又不能区分跳转的方向,所以设计了两个跳转页面:tiaozhuan_tk.jsp为题库的跳转页面,tiaozhuan.jsp为添加新题时的跳转页面。跳转界面的核心代码如下:window.location=tiku_manage.jsp;window.location=tiku_manage1.jsp;

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

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

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


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