1、陕西理工学院毕业设计 第 I 页 共 53 页 毕 业 论 文 设 计 题 目 基于 B/S 模式的在线考试系统的设计与实现 所在院(系)数计学院 专业班级 信息与计算科学 1102 班 陕西理工学院毕业设计 第 II 页 共 53 页 基于 B/S 模式的在线考试管理系统的设计和实现 摘要随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,也有人称为数字化时代。在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学习,同时也希望能够得到科学的评价。老师希望有效改进现有的考试模式,提高考试工作的效率,教育机构也希望给网上的学生提供更全面灵活的服务,以更准确地对学生进行
2、跟踪和评价。在线考试系统正是迎合这一需求而开发的,它旨在探索一种以互联网为基础的考试模式。通过这种新的模式,为学校创造一种新的考试环境,使考务管理更方便顺利,提高考试工作效果和标准水平,使学校管理者、教师和学生可以随时随地通过网络进行考试工作。本论文研究了一种基于 JSP 的在线考试系统。该系统主要包括学生子系统模块、教师系统模块和管理员子系统模块。学生模块实现的功能主要包括:学生登录、学生考试、和管理功能。教师模块实现的功能主要包括:教师注册、添加科目、试卷管理、题库管理、试题管理、在线评卷、成绩管理和个人信息管理.本系统采用 JSP 和 MySql 为开发工具,具有扩展性。关键字在线考试;
3、JAVA;MySQL;MyEclipse;TOMCAT 陕西理工学院毕业设计 第 III 页 共 53 页 The Design and Implement of The Logistics Management System Based on B/S Model Liu Xu(Grade11,Class02,Information and computing science Major,Mathematics and Computing Science Dept.,Shaanxi University of Technology,Hanzhong 723000,Shaanxi)Tutor:Z
4、haohui Abstract:With the development of computer technology and the Internet era,it has entered an information age which is also known as the digital age.In this digital network environment,students prefer personalized communication space to meet,to learn according to their own situation,and also ne
5、eds a scientific evaluation.The teachers want to effectively improve the current test model to increase the examination efficiency.Education institutions want to give students a more comprehensive flexible service to more accurately track and evaluate students.Online examination system is developed
6、to meet this demand targeting to an Internet-based test model.With this new model,schools can create a new test environment for the successful test management and to improve the effectiveness and examination standard level,so that school administrators,teachers and students can work anytime,anywhere
7、 via the Internet test.In this paper,an online examination system is developed based on JSP.The system includes subsystem modules of students,teachers and administrators sub-modules.The student module features include:student login,student exams,check grades,student messages and personal information
8、 management functions.The teacher module features include:teacher registration,adding courses,paper management,exam management,test management,online marking,performance management,message management,announced management and personal information management.The manager module features include:bulleti
9、n management,other management systems,professional management,class management,student management,teacher management and password change functionality.The system uses JSP and MySql as the development tools which are more extensible.Key Words:Online Exem System,JAVA,JSP,MySql 陕西理工学院毕业设计 第 IV 页 共 53 页
10、 目 录 1 引言.1 1.1 研究背景.1 1.2 研究意义.1 1.3 研究现状.2 1.3.1 国外研究现状.2 1.3.2 国内研究现状.2 1.4 研究的主要内容.2 1.5 本文的组织.2 2 系统相关技术.3 2.1 JSP 技术.3 2.2 JAVA 语言.4 2.3 数据库连接.5 2.4 MYSQL数据库.5 2.5 SERVLET技术.5 3 系统需求分析.6 3.1 系统概述.6 3.2 可行性分析.6 3.3 技术可行性.6 3.4 操作可行性.6 3.5 社会可行性.6 4 系统概要设计.7 4.1 系统功能模块图.7 4.1.1 学生子系统模块.7 4.1.2 教
11、师子系统模块.9 4.2 数据库设计.11 4.2.1 数据字典.11 4.2.2 数据表结构.11 4.2.3 数据表关系图.14 5 系统详细设计.15 5.1 数据库连接.15 5.2 系统架构搭建.15 5.2.1 系统目录结构.15 5.2.2 系统访问权限设置.16 5.2.3 系统主要功能实现.16 5.3 系统功能模块的设计与实现.17 5.3.1 系统登录界面.17 5.3.2 系统子模块.17 6 系统部分功能测试.22 6.1 系统运行环境.22 6.2 系统部分功能测试.22 陕西理工学院毕业设计 第 V 页 共 53 页 7 总结.26 7.1 总结.26 7.2 未
12、来工作展望.26 参考文献.27 致 谢.28 1 引言 1.1 研究背景 传统的考试从出题、组卷、印刷,到试卷分发、答题、收卷,再评卷、公布成绩,整个过程都完全靠人工完成,周期长,工作量大,容易出错,还要有适当的保密工作,使得整个考试的成本较大。所以,实现无纸化、网络化、自动化的计算机考试系统,具有深远的现实意义和实用价值。在线考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使考试不受地域的局限。一个完备的在线考试系统可以使用户在网上学习之后及时检验自己的学习效果,以发现自己的不足,使得学习效率得到很大提高。在线考试系统中题目的生成、试卷的提交、成
13、绩的批阅等都在网络上自动完成。只要形成一套成熟的题库就可以实现考试的自动化。这样一来,教师所要做的是精心设计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相当可观的。目前,网络应用软件运行的模式主要有二类:C/S 模式,B/S 模式。C/S 结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于企业内部网。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的
14、局限性。要求具有一定专业水准的技术人员去完成。B/S 结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。虽然可以用 ActiveX、Java 等技术开发较为复杂的应用,但是相对于发展已非常成熟 C/S 的一系列应用工具来说,这些技术的开发复杂,并没有完全成熟的技术工具供使用。另外,考试系统的软件也必将不断的更新;同时软件产
15、品本身就要经过一个不断自我完善的过程。基于上述考虑,用 B/S 模式来设计考试系统比较合适,服务器端我们采用 MySql 数据库系统 JSP 技术来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和管理。1.2 研究意义 网络考试系统具有降低考试成本,解决繁重的考务工作的优点。它可以免去教师大量的临考工作,试卷可以根据题库中的内容即时生成;教师也无须去做考后的阅卷、统计、分析工作,计算机可以自动判卷,直接把成绩送到数据库中进行统计、排序、汇总。实现无纸化考试,大大提高了工作效率。同时,试卷的题目是随机组成的,不存在试卷的泄密和考试作弊问题,使考试的公平性、答案的
16、安全性得到有效的保证。目前,基于网络考试面向的主要是社会上的培训认证考试(如微软的各种认证考试)和远程教育的考试。一个成功的基于 WEB 的考试,需要一个好的网络环境,一个好的考试平台和一个好的题库。但一个真正的智能化的基于 WEB 的考试系统的实现是一个复杂的过程,考试平台和题库的研究要依靠软件开发专家、被考学科专家和精通考试理论和命题的专家三者的合作。因而对于有极大市场的社会认证考试,必然会走上专业化的道路。1.3 研究现状 1.3.1 国外研究现状 国际上,基于网络的考试蓬勃发展,对于题库建设的理论研究不断深入,实用考试系统也层出不穷。美国心理协会在 1986 年出版了关于如何开发、使用
17、计算机化考试以及解释考分的指南,成为了考试和软件开发者的事实标准。投入实际使用的例子有,1993 年美国教育考试中心(Eraduade Record examination 简称 ETS)考试;从 1994 年开始,美国护理证书考试完全在计算机上进行,等等。目前,国外许多大型测验出版机构、地区教育主管部门和专业资格认证机构都以某种测量理论为指导建立题库、设计考试系统,并进行各项相关研究。1.3.2 国内研究现状 在我国,计算机考试系统和题库的理论研究和实践应用起步比较晚。但发展也比较迅速,研究和开发活动比较活跃。清华大学、上海交通大学等高校都组织力量致力于实用考试系统的研究和开发工作。其中,使
18、用在线考试影响较大的考试有:1994 年开始,国家教务组织的全国计算机等级考试;1996 年,教育部考试中心举办的全国计算机应用技术证书(National Aplide Information Technology Certificate 简称 NIT),等等。1.4 研究的主要内容 在线考试系统主要研究设计并实现学生模块、教师模块和系统管理员模块的功能操作。学生模块分为:学生登录、学生考试、成绩查询、学生留言和个人信息管理功能;教师模块分为:教师注册、添加科目、试卷管理、题库管理、试题管理、在线评卷、成绩管理、留言管理、公告管理和个人信息管理;系统管理员模块为分:公告管理、系别管理、专业管理
19、、班级管理、学生管理、教师管理和密码修改功能。1.5 本文的组织 本文主要介绍在线考试系统的分析、设计与实现。第 1 章主要介绍了在线考试系统的研究背景、意义、现状和内容;第 2 章主要介绍了在线考试系统的实现所用到的技术及其概念;第 3 章主要介绍的是对该系统的需求分析;第 4 章概要介绍了系统的整体结构设计;第 5 章则进一步介绍了系统的详细设计,架构搭建及功能的实现;第 6 章主要是系统部份功能的测试记录;第 7 章为本文的总结,主要介绍了该系统所用技术及遇到的问题,和实现的功能及有待完善的功能。最后介绍系统设计实现时用到参考文献和通过谢词向帮助过我的人表示谢意。2 系统相关技术 2.1
20、 JSP 技术 JSP1是由 SunMicrosystems 公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页 HTML 文件(*.htm,*.html)中加入 Java 程序片段(Scriptlet)和 JSP 标签,就构成了 JSP 网页 java 程序片段可以操纵数据库、重新定向网页以及发送 E-mail 等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持 Java,也可以访问 JSP 网页。JSP 全名为 Java Server Pages,其根本是一个简化的 Ser
21、vlet 设计,他实现了 Html语法中的 java 扩张(以 形式)。JSP 与 Servlet 一样,是在服务器端执行的。通常返回给客户端的就是一个 HTML 文本,因此客户端只要有浏览器就能浏览。Web 服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同 JSP 文件中的 HTML代码一起返回给客户端。插入的 Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。通常 JSP 页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。JSP 技术使用 Java 编程语言编写类 XML 的 tags 和
22、scriptlets,来封装产生动态网页的处理逻辑。网页还能通过 tags 和 scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于 Web 的应用程序的开发变得迅速和容易。JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从 Servlet 中分离出来 JSP 页面由 HTML 代码和嵌入其中的 Java 代码所组成。服务器在页面被客户端请求以后对这些 Java 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器。Java Servlet是 JSP 的技术基础,而且大
23、型的 Web 应用程序的开发需要 Java Servlet 和 JSP 配合才能完成。JSP 具备了 Java 技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自 JSP 推出后,众多大公司都支持 JSP 技术的服务器,如 IBM、Oracle、Bea 公司等,所以 JSP 迅速成为商业应用的服务器端语言。JSP 与 webServer 的结合关系如图 2-1 所示 图 2.1 JSP 与 webServer 的结合关系 JSP 指令控制 JSP 编译器如何去生成 servlet,以下是可用的指令:包含指令 include 包含指令通知 JSP 编译器把另外
24、一个文件完全包含入当前文件中。效果就好像被包含文件的内容直接被粘贴到当前文件中一样。这个功能和 C 预处理器所提供的很类似。被包含文件的扩展名一般都是jspf(即 JSPFragment,JSP 碎片):页面指令 page 页面指令有以下几个选项:如表 2-1 所示 表 2-1 page页面指令 import 使一个 JAVA 导入声明被插入到最终页面文件。contentType 规定了生成内容的类型。当生成非 HTML 内容或者当前字符集 character set 并非默认字符集时使用。errorPage 处理 HTTP 请求时,如果出现异常则显示该错误提示信息页面 isErrorPage
25、 如果设置为 TRUE,则表示当前文件是一个错误提示页面 isThreadSafe 表示最终生成的 servlet 是否安全线程(thread,safe,)import 使一个 JAVA 导入声明被插入到最终页面文件。contentType 规定了生成内容的类型。当生成非 HTML 内容或者当前字符集 character set 并非默认字符集时使用。JSP 动作是一系列可以调用内建于网络服务器中的功能的 XML 标签。JSP 提供了以下动作:如下表 2-2 所示 表 2-2 Jsp 标签 jsp:include 和子过程类似,JAVA SERVLET 暂时接管对其它指定的 JSP 页的请求和
26、响应。当处理完该 JSP 页后就马上把控制权交还当前JSP页。这样JSP代码就可以在多个JSP页中共享而不用复制。jsp:param 可以在 jsp:include,jsp:forward 或 jsp:params 块之间使用。指定一个将加入请求的当前参数组中的参数。jsp:forward 用于处理对另一个JSP或SERVLET的请求和响应。控制权永远不会交还给当前JSP页。jsp:plugin Netscape Navigator 的老版本和 Internet Explorer 使用不同的标签以嵌入一个applet。这个动作产生为嵌入一个 APPLET 所需要的指定浏览器标签。jsp:fal
27、lback 如果浏览器不支持 APPLETS 则会显示的内容 jsp:getProperty 从指定的 JavaBean 中获取一个属性值 jsp:setProperty 在指定的 JavaBean 中设置一个属性值 2.2 JAVA 语言 它最初被命名为 Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun 放弃了该项计划。就在 Oak 几近失败之时,随着互联网的发展,Sun 看到了Oak 在计算机网络上的广阔应用前景,于是改造了 Oak,以“Java”的名称正式发布。Java 编程
28、语言的风格十分接近 C、C+语言。Java 是一个纯的面向对象的程序设计语言,它继承了 C+语言面向对象技术的核心,Java 舍弃了 C+语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java 不同于一般的编译执行 计算机语言和解释执行计算机语言。它首先将源代码编译
29、成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同
30、。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 平台是基于 Java 语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET 平台以及模仿 Java 的 C#语言。2.3 数据库连接 JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行 SQL 语句的Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数
31、据库开发人员能够编写数据库应用程序,JDBC 实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。2.4 Mysql 数据库 SQL Server 是一个全面的、集成的、端到端的数据解决方案,它为组织中的用户提供了一个更安全可靠和更高效的平台用于企业数据和 BI 应用。MySql 为 IT 专家和信息工作者带来了强大的、熟悉的工具,同时降低了在从移动设备到企业数据系统的多平台上创建、部署、管理和使用企业数据和分析应用程序的复杂性。通过全面的功能集、与现有系统的互操作性以及对日常任务的自动化管理能力,MySql 为不同规模的企业提供了一个完整的数据解决方案。MySql 数据
32、引擎是本企业数据管理解决方案的核心。此外 MySql 结合了分析、报表、集成和通知功能。2.5 Servlet 技术 Servlet2(Server Applet),全称 Java Servlet,未有中文译文。是用 Java 编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。狭义的 Servlet是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。Servlet 运行于支持 Java 的应用服务器中。从实现上讲,Servlet 可以响应任何类型的请求,但绝大多
33、数情况下 Servlet 只用来扩展基于HTTP 协议的 Web 服务器。最早支持 Servlet 标准的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Jav 的 Web 服务器开始支持标准的 Servlet。3 系统需求分析 3.1 系统概述 该系统是基于 Web 平台实现学生通过浏览器进行考试。学生可根据自己的情况,选择科目、试卷进行考试。同时为了在线考试做到规范公正,对于每个应试者来说,试卷的试题和题量都是相同的,但题目从服务器的数据库随机抽取试题后动态生成。另外,系统还对考试时间进行控制,时间到了会自动禁止学生答题,并提交试卷。试卷在提交后,由系统的自
34、动评阅客观题部份,主观题由相应的教师在线评阅,待公布成绩后,学生可登录系统查询到自己的成绩3。3.2 可行性分析 实现系统的主要功能 1.添加试题,添加试卷。考生信息管理,定时收卷,验证登录.2.数据库可并发访问并具有较大的吞吐量.3.系统具有很好的可移植性、可扩展性和可重用性.4.系统反应速度较快,当客户端与服务器断开连接时候也能够实现按时收卷.5.使用系统的每个用户都必须有登陆密码,具有较好的安全保密性.6.系统界面具有一定的人性化 3.3 技术可行性 在“在线考试系统”开发中,使用 Java 语言开发。其原因在于 java 语言简单,我自身对这门语言较为熟悉,开发工具选用 MyEclip
35、se 8.5 其软件功能相当强大,与较为简洁,易学,易用的 MySQL 相结合使得系统的开发较为简单。本系统主要是向 MySQL 数据库进行增、删、改、查等多次的重复性的 操作。本系统的设计思路简明明了,所以只要稍懂这方便技术的人一看即懂,日后维护方便。3.4 操作可行性 他的使用群体可以是会使用电脑的每个人,只要简简单单的操作即可为您服务,应用领域至多方多面,使得各个操作即在瞬间完成。本系统的操作和界面都很直观,只要你会用鼠标你就会操作本系统,然后还得会输入信息。只要你会以上两点则可操作本系统。当然会操作还得有操作权限,所以在操作之前你必须得是一个用户,或者是一个管理员,有了密码和用户名方可
36、操作本系统。3.5 社会可行性 本项目不涉及在社会上或政治上引起侵权、破坏或其他责任问题。设计本项目的一切活动都在国家法律允许范围以内。系统开发和运行与国家的政策法规不存在任何冲突和抵触之处。使用方面的可行性:“在线考试系统”是针对企业内部要对员工考核的需求进行开发的一个在线系统。从企业的角度来看,纸质的考试不仅物质成本高,而且需要耗费大量的人力资源;此外,纸质的考试不够灵活,使得考试变得不够人性化,不能体现出企业考试的真实目的促进员工提升自身的素质和能力,更好地为企业服务,这是有别于其他的升学考试的 4 系统概要设计 4.1 系统功能模块图 教师用户管理课程管理退出单选题管理多选题管理判断题
37、管理简答题管理系统设置用户管理课程添加课程管理单选题添加判断题添加单选题管理多选题添加多选题管理判断题管理简答题添加简答题管理用户管理修改删除学生登录生成试卷开始考试查看成绩查阅试卷退出 4.1.1 学生子系统模块 学生登录生成试卷开始考试查看成绩查阅试卷退出 图 4-1 学生子系统模块图 如图 4-1 所示,学生子系统模块主要实现以下功能4:1.学生登录 2.生成试卷 3.开始考试 4.查看成绩 5.查阅试卷 6.退出系统 学生子系统主要实现的用户管理类图如下 4-2图 图 4-2 学生子系统模块图 学生子系统主要实现的创建试卷类图如下 4-3图 图 4-3 学生创建试卷模块图 学生子系统主
38、要实现的创建查询成绩,分数设置类图如下 4-4图 4-4 创建查询成绩,分数设置类图如下 学生要想进行考试,必须先登录系统。然后进入考试模块,选择可考的试卷进行考试,考试完成后,练习则即刻可查询成绩,考试则待教师公布成绩后方可查询。在平常的考试学习中,有疑问可给教师留言,进行交流。进入个人管理模块,可更改密码。最后点击安全退出可以退出系统。4.1.2 教师子系统模块 教师系统模块功能主要可以管理用户,对每种题型进行增删改查,对题目数量进行设置来进行组卷功能,批阅学生试题,对主观型题目判分,等功能6,如下图 4-6所示。教师用户管理课程管理退出单选题管理多选题管理判断题管理简答题管理系统设置用户
39、管理课程添加课程管理单选题添加判断题添加单选题管理多选题添加多选题管理判断题管理简答题添加简答题管理用户管理修改删除 图 4-6 教师子系统模块图 如图 4-2 所示,教师子系统模块主要实现以下功能:1.教师登录 2.用户管理 3.课程管理 4.单选题管理 5.多选题管理 6.判断题管理 7.简答题管理 8.系统设置 9.退出 10.个人管理 老师子模块主要实现单选题管理,多选题添加图如下 4-7 图 图 4-7 单选题管理,多选题添加图 老师子模块主要实现多选题管理,多选题添加图如下 4-8 图 图 4-8 多选题管理,多选题添加图 老师子模块主要实现简答题管理,简答题添加图如下 4-9 图
40、 图 4-9 简答题管理,简答题添加图 老师子模块主要实现判断题管理,判断题添加图如下 4-10 图 图 4-10 判断题管理,判断题添加图 老师子模块主要实现题目设置图如下 4-11 图 图 4-11 题目设置图 教师登录系统后,可以管理用户,对单选题,多选题,判断题简答题进行增删改查等操作。可以评阅学生主观性题的试卷。然后在公布成绩。对每种提醒进行题目个数设置操作等功能模块。4.2 数据库设计 4.2.1 数据字典 数据字典主要说明数据库中的每个字段的的属性。表 4-1 数据库表清单列表 表名 解释 exam_dan 单选题存储表 exam_duo 多选题存储表 exam_jian 简答题
41、存储表 exam_kecheng 课程类型存储表 exam_pan 判断题存储表 exam_score 学生考题及分数存储表 exam_timuset 课程题目设置表 exam_user 用户信息表 4.2.2 数据表结构 表 4-2 单选题存储表 Field Type Null Key Default Extra id int(11)NO PRI NULL auto_increment kecheng_id int(11)YES NULL question varchar(255)YES NULL A varchar(255)YES NULL B varchar(255)YES NULL C
42、 varchar(255)YES NULL D varchar(255)YES NULL answer varchar(1)YES NULL fen int(11)YES NULL 表 4-3 多选题存储表 Field Type Null Key Default Extra id int(11)NO PRI NULL auto_increment kecheng_id int(11)YES NULL question varchar(255)YES NULL A varchar(255)YES NULL B varchar(255)YES NULL C varchar(255)YES NULL
43、 D varchar(255)YES NULL answer varchar(1)YES NULL fen int(11)YES NULL 表 4-4 简答题存储表 Field Type Null Key Default Extra id int(11)NO PRI NULL auto_increment kecheng_id int(11)YES NULL question varchar(255)YES NULL answer varchar(1)YES NULL fen int(11)YES NULL 表 4-5 课程类型存储表 Field Type Null Key Default E
44、xtra id int(11)NO PRI NULL auto_increment name varchar(255)YES NULL 表 4-6 判断题存储表 Field Type Null Key Default Extra id int(11)NO PRI NULL auto_increment kecheng_id int(11)YES NULL question varchar(255)YES NULL answer int(11)YES NULL fen int(11)YES NULL 表 4-7 学生考题及分数存储表 Field Type Null Key Default Ext
45、ra id int(11)NO PRI NULL auto_increment kecheng_id int(11)YES NULL name varchar(255)YES NULL dan_timu varchar(255)YES NULL dan_answer varchar(255)YES NULL dan_fen int(11)YES NULL duo_timu varchar(255)YES NULL duo_answer varchar(255)YES NULL duo_fen int(11)YES NULL pan_timu varchar(255)YES NULL pan_a
46、nswer varchar(255)YES NULL pan_fen int(11)YES NULL jian_timu varchar(255)YES NULL jian_answer text YES NULL jian_fen int(11)YES NULL flag int(11)YES NULL 表 4-8 学生考题及分数存储表 Field Type Null Key Default Extra id int(11)NO PRI NULL auto_increment kecheng_id int(11)YES NULL dan_num int(11)YES NULL duo_num
47、 int(11)YES NULL pan_num int(11)YES NULL jian_num int(11)YES NULL 表 4-9 用户信息表 Field Type Null Key Default Extra id int(11)NO PRI NULL auto_increment name varchar(20)YES NULL password varchar(50)YES NULL question varchar(255)YES NULL answer varchar(255)YES NULL flag int(11)YES NULL 4.2.3 数据表关系图 数据关系表
48、主要描述表里每个字段所描述的关系,每个表所对应的字段和字段类型。数据关系图8如下 4-12所示 图 4-12 数据表关系图 5 系统详细设计 5.1 数据库连接 Java通过 JDBC 连接 MySQL9数据,步奏如下 1.调用 Class.forName()方法加载驱动程序;2.定义数据库连接的地址,不同数据库连接地址不一样(我们这里演示的是 mysql数据库):3.调用 getConnection()方法建立连接:4.使用 createStatement方法创建 Statement 语句对象:5.执行数据库语句:Statement 提供了 executeQuery、executeUpdat
49、e 和 execute 三个方法,分别用于查询语句、插入删除修改语句和通用语句(既可查询又可增删改),这里我们只说第一个方法:6.对数据库返回的结果集 ResultSet 进行处理:7.关闭连接,这样可以释放资源:Java通过 JDBC 连接 MySQL数据,详细代码见附录 5.2 系统架构搭建 5.2.1 系统目录结构 如图 5-1 所示,本系统采用单类结构,解决方案 exam 下包含 4 个包,com.dao 包里主要是每个具体实现类的应用接口,com.model 主要写实体的属性。com.imp 主要写接口的具体实现方法,com.servlet 主要控制数据的关系和传输。具体如图 5-1
50、 所示。图 5-1 系统目录结构图 5.2.2 系统访问权限设置 1.Forms(票据)验证 本系统用户身份验证基于 Jsp 验证,本系统实现 Forms 验证方式是,通过一个登录页面验证用户的身份,如果通过了验证,则将此用户的身份信息与有效时间等发送到客户端Session 中,之后在 Session10有效时间内此用户再访问本系统 Web 站点时,就会把用户身份 Session 一起回发到服务端,服务端的授权设置再根据不同用户的访问授权对不同目录进行控制,若 Session 失效后用户向站点发送请求或者用户请示的页面,需要其他身份,则自动跳转登录页面,需要再次的登录验证。通过这方式有效实现系