1、 存档日期: 存档编号: 本科生毕业设计(论文) 论 文 题 目: 基于 Java 的在线考试系统 Java-Based Online Examination System 姓 名: 系 别 : 专 业: 年 级 、 学 号: 指 导 教 师: 大学印制 大 学毕 业 设 计 论 文 I 基于 Java 的在线考试系统 摘 要: 为了帮助学生更好地掌握 所学的知识 。 本 人 设计了一套 在线考试 系统。 本系统所设计的用户有管理员教师,参加练习或 考试的学生和对考试进行打分的评分老师 这三种身份。本系统可以根据管理员教师的意愿进行科目,试题以及试卷的管理。本系统的开发模式为 B/S 模式。开
2、发平台为 MyEclipse8.5,所用的数据库是 MySQL 数据库,服务器是 Tomcat6.0。所用到的主要开发语言是 Java, HTMl,与 JavaScript。 本系统的主要特点是:操作容易 , 结构简单 。 学生 利用 本 系统, 能够 更加 及时的进行练习和考试。教师利用本系统可免去统计成绩,录入考试分数等繁琐的工作提 高 了工作效率。 关键词 :在线考试 B/S MyEclipse8.5 MySQL Tomcat6.0 Java Java-Based Online Examination System Abstract: In order to help students
3、to better understand what they have learned. I designed a set of online examination system. This system is designed for users with three roles include administrators; students who want to participate in exercises or join in examinations and the rating teachers. The system can edit the curriculums,te
4、sts and papers according to the administrators wishes. This system uses the B / S development model.And the development platform is MyEclipse8.5, the database is MySQL and the server uses Tomcat6.0. The main development language used by the Java, HTMl, and JavaScript. Easy to operate and simple stru
5、cture are the main feature of this system Students can do exercises and exam more timely with this system. This system can improve the efficiency of teachers and they do not have to worry about statistical results, entry test scores anymore. Keywords: Online exam B/S MyEclipse MySQL Tomcat6.0 Java 大
6、 学毕 业 设 计 论 文 目 录 1 绪论 . 1 1.1 引言 . 1 1.2 选题背景 . 1 1.3 国内外发展情况 . 1 1.4 系统开发方法 . 2 2 系统开发相关技术与工具简介 . 3 2.1 JSP 技术简介 . 3 2.2 JSP 工作原理 . 3 2.3 MYSQL 数据库简介 . 4 2.4 JDBC 技术与系统数据库的连接 . 4 2.5 NAVICAT FOR MYSQL 简介 . 6 2.6 WEB 服务器与超文本标记语言 . 6 3 系统分析及其基本功能 . 7 3.1 可行性分析 . 7 3.2 系统需要解决的主要问题 . 7 3.3 系统基本功能 . 8
7、3.4 系统总体结构设计 . 8 4 系统主要模块详细设计 . 10 4.1 系统数据结构设计 . 10 4.2 系统登录模块的设计 . 11 4.3 管理员教师模块的设计 . 13 4.4 考生模块的设计 . 23 4.5 评分教师模块的设计 . 27 5 系统功能测试 . 30 6 总结 . 33 致 谢 . 34 参 考 文 献 . 35 附录 1 本设计所包含的其他数据表 . 36 附录 2 本设计所提到的代码 . 38 大 学毕 业 设 计 论 文 1 1 绪论 1.1 引言 考试在教学中是必不可少的,可以检验学生对知识的掌握程度和学习能力的高低 。对学生 来讲 , 适当的测试压力有
8、助于 巩固 所学的 知识,训练基本技能,开发智力, 发散 思维, 提升学生分析问题解决问题的能力 。 然而考试的形式有很多种除了我们传统的 纸质习题外,我们 也 应该 顺应时代的发展开发出一种更加方便快捷和容易操作的系统 在线考试 系统 。这个设计不仅学生和老师的学习和工作带来了方便还能够节省教学资源,节约了传统考试所需纸张的问题也能为环保事业做出一些贡献。本设计需要 对网络编程和 相关数据库 的技术有所了解。 还需会使用 一些 相关的 应用软件 和 开发工具。 1.2 选题背景 新世纪的到来和科学技术的快速发展将我们带入了信息时代 , 在当今这个高速发展的时代里计算机日趋成为我们生产生活中必
9、不可少的工具。然而对于学生来说计算机 技术的发展将给我们的学习方式和教育方法带来翻天覆地的变化 。 因此计算机网络技术的发展对教学和考试的方式方法起到了导向性的作用 。这些技术可以极 大的推动教育的发展,创新教学模式推进教学改革。为教育的升级 创造必要的条件。本设计主要为了探索一种基于计算机网络技术的教学模式。在本次设计中学生用户可以突破纸质学习资料的局限性使用计算机进行在线测试与考试,能够更加及时的巩固新知识从而增强学习效果提高教学的质量。 1.3 国内外发展情况 网络技术的发展使得考试的形式发生了革命性的变化。因特网强大的计算能力与其开放性,分布性的特点将考试的工作变的方便而有效率,解放了
10、部分人力和物力。因此基于网络的考试系统越来越受国内外教育机构的重视。在一些发达国家基于网络的教育已进入更加深入的阶段。教育机构将网络技术与课程的巧妙结合使得网络技术在教学中的作用更加明显也让学生们的学习变的轻松快乐。一些发达国家电脑 已 普及,远程教育的参加人数正日益递增。在中国,网络的教育 大 学毕 业 设 计 论 文 2 刚刚兴起,还在摸索着前进。能够将计算机网络技术与教学结合很好的教育机构还比较少 。我们平时在学校中 接触最多的是基于小型局域网的教学教室。相比于有一些发达国家我国在网络教学方面相对落后,还处于较为初级的阶段。 1.4 系统开发方法 目前 C/S 模式 (客户端 /服务器模
11、式)和 B/S 模式 (浏览器 /服务器模式)是应用软件运行的主要的模式 。 C/S 模式的响应速度快处理事务的能力强但兼容性差开发成本较高。而 B/S 模式 是伴随 因特网 迅速发展 而兴起的一种技术,它的 客户端是一个标准的浏览器,服务器端 方面 是 WebServer , 然 而 B/S 模式能被广泛应用是因为 WebSever 与应用服务器和数据库的紧密结合。 B/S 模式的主要优点就是 方便扩充应用和升级维护。因此,本系统采用 B/S 模式进行设计。 本次设计 结合 当前计算机的价格走势 ,应用 JSP 技术,基于 B/S 模式 开发了在线考试 系统。它 使 用 简单 、 容易操作
12、, 界面友好,非常实用 。 虽然现阶段还有许多不成熟的地方 ,但 是 已具有用户管理、 科目管理 、试卷管理、 试题 管理、 在线考试 等 功能。基本 实现了真正的无纸化习题 练习与考试的作用。能够 满足任何经过 授权的考生随时随地 练习并迅速获得成绩。 大 学毕 业 设 计 论 文 3 2 系统开发相关技术与工具简介 2.1 JSP 技术简介 在互联网普及和发展的最初阶段, Web 应用全部是静态的 HTML 页面。这种静态页面不具有有用户交互的能力和动态显示功能。 Rasmus Lerdorf 在 1994 年发明了专门用于 WEB 服务器端编程的 PHP 语言。 PHP 语言将 HTML
13、 和 PHP 指相结合成为完整的服务器端动态页面,从而使开发者更加简便快捷的方式实现动态交互技术。直到 1996年,微软公司参照 PHP 的思想开发出了 ASP( Active Server Page,意为“动态服务器页面”)成为新一代 WEB 交互技术。当 ASP 技术作为动态 网络 开发技术快速成为 Windows 系统下的 WEB 服务端的主流开发技术时,由 SUN 公司带领的 Java 团队 1997 年发布 Servlet 技术; 1998 年, SUN 公司发布 JSP 标准。 JSP 和 ASP 两者都是动态 WEB 编程技术,都可以嵌入 HTML 中 ,但是他们的运行机制不同,
14、这主要是因为 ASP 使用 VBScript 作为脚本语言,无需编译;而 JSP 则使用 Java 作为脚本语言, JSP 必须编译成 Servlet,才可以执行 JSP 页面。 JSP 和 Servlet, JavaBean 技术的组合,大大提高了编译运行的执行效率,并逐渐发展成为 J2EE 平台的核心技术之一。 2.2 JSP 工作 原理 JSP 页面 是由 HTML 代码和嵌入其中的 Java 所组成的 。 当页面被客户端请求访问 , 则 服务器 就开始处理这些 Java 代码然后 将生成的 HTML 页面返回给客户端浏览器。 JSP 不仅具备了 Java 技术的方便快捷和完全面向对象等
15、特点,而且具有平台无关性和安全可靠性。 JSP 是服务器端技术,在服务器端, JSP 引擎解释并执行 JSP 页面的代码,然后将执行结果以 HTML 或 XML 页面的形式发送给客户端,而在客户端却看不到 JSP 页面本身的代码,只能看到 JSP 页面执行后的输出结果。 大 学毕 业 设 计 论 文 4 2.3 MySQL 数据库简介 MySQL 是一个多用户、多线程 的 SQL 数据库服务器。 SQL 即结构化查询语言 是当今使用广泛 的和标准化的数据库语言。 MySQL 通过 一个 C/S 结构 来 实现 并由 一个服务器守护程序 mysql 与一些 不同的客户程序和库组成。 MySQL
16、的 开发者 是来自 瑞典的 MySQLAB 公司。 如今 互联网上有很多 中小型网站 在使用 MySQL 数据库 。 MySQL 吸引开发者的原因有很多。第一, MySQL 运行速度很快。 据 开发者声称 MySQL 数据库的运算速度可能是在目前数据库中最快的 。第二,使用 方便 。 MySQL 性能很强大而又相对简单 , 相比于其他更大系统的设置与管理 ,其复杂程度较低。第三, 经济实惠 。 MySQL 对于 一般的内部使用通常是免费的。第四,支持查询语言。 MySQL 可以利用所有现代数据库系统都选用的语言 即 SQL 语言 。也可以利用支持 ODBC(开放式数据库连接)的应用程序 。第五
17、,功能强大 。 服务器可以被多个客户及同时连接还能 同时使用多个数据库。第六,连接性和安全性 较高 。 MySQL 数据库是完全网络化的,它能 在 互联网 上的任何地方 进行访问,可以同任意 地方的任何人共享数据库。而且 MySQL 还能进行访问控制,可以 有选择的规定访问人员有效的保护隐私 。第七,可移植性。 MySQL 能够在各种版本的 UNIX 和其他非 UNIX 的系统上运行。 2.4 JDBC 技术与 系统数据库的连接 JDBC( Java DataBase Connectivity)是 Java 数据库连接技术的简称,是 Java与一些数据库之间连接的一种标准,此种连接独立于数据库
18、。一组 Java 类与接口可以组成 JDBC。 JDBC 是 Java 程序和数据库系统通信的标准 API,通过调用这些 Java 类和接口所提供的方法,能够连接不同的数据库,并且对数据库进行操作 。使用 JDBC 一 般可以完成一下事情。 1, 加载 JDBC 驱动程序; 2,建立一个数据库连接; 3,向数据库发送 SQL 语句; 4,处理数据库返回的结果; 5,关闭相关链接。 一般来讲,使用 JDBC 开发数据库应用可以分为:装载 JDBC 驱动程序,建立与数据库的连接,执行 SQL 语句,处理结果和关闭数据库连接这几步。下面进行详细介绍: 对于数据库操作首先要加载所需数据库的驱动程序然而
19、这些驱动程序的装载 大 学毕 业 设 计 论 文 5 操作是非常简单的,只需要代码即可完成即调用 Class 类中的静态方法 forName()方法,其格式为: Class.forName(“ DriverName” ); 其中, DriverName 为要加载的数据库名称。如果该方法不能够找出指定的驱动程序类名,则会弹出 ClassNotFoundException 异常,这就需要我们捕获这个异常。如加载 JDBC-MySQL 数据库驱动程序代码如下: try Class.forName(“org.gjt.mm.mysql.Driver”); catch(ClassNotFoundExcep
20、tion e) e.printStackTrace(); 装载 JDBC 驱动程序类后可建立数据库的连接。数据库的连接方法可通过调用驱动程序管理器 DriverManager 对象的 getConnection()方法,返回 Connection对象来完成数据库的连接。 1代码如下所示: Connection conn=DriverManager.getConnection(url); 其中,字符串 url 作为参数,为 JDBC 的 url,如果可以建立连接,就能返回一个 Connection 对象,该对象表示与数据库的会话过程。 建立数据库连接后,可以通过 JDBC 提供的 Stateme
21、nt 接口向数据库传送 SQL语句并执行。而 Statement 对象可以通过 Connection 接口中的 createStatement()方法来创建,也可已使用 Java.sql.PrepareStatement 接口来实现上述的功能,此接口的功能包含了 Java.Sql.Statement 接口,并且效率要比 Statement接口高。因为 PrepareStatement 类的对象将会传入的 SQL 命令事先编好并等待使用。因此使用 PrepareStatement 更好。创建 Statement 对象的代码如下: Statement sql; sql=conn.createSta
22、tement(); 可以通过 Statement 对象来调用相应的方法对数据库完成增,删,查,改等操作。 通过 SQL 语句返回从数据库中检索到的符合条件的记录,然后可以使用Statement 接口 executeQuery 方法返回的结果集 ResultSet 接口类型的对象来获取并处理该结果。当访问完整数据库后,应关闭数据库连接,并释放与链接有 大 学毕 业 设 计 论 文 6 关的资源,用户创建的 ResultSet 或 Statement 对象将自动关闭,只需调用Connection 接口的 close()方法 即可。例如关闭结果集对象,关闭语句对象,关闭连接的代码如下: rs.clo
23、se(); stmt.close(); conn.close(); 2.5 Navicat for MySQL 简介 Navicat for MySQL 是 MySQL 数据库的管理和开发工具它不仅为软件开发者提供了很多尖端的工具,而且对于初学者学习还是很容易的。此软件基于 Window平台并为 MySQL 量身订做,提供类似于 MySQL 的用户管理工具。 Navicat for MySQL 的出现将节省程序员以及数据库设计人员的开发时间和精力, 降低了软件开发的成本,大大提升软件开发的效率。此软件界面友好,实用性强,上手容易。 2.6 WEB 服务器与超文本标记语言 在本次设计中,选择使用
24、的是 Tomcat6.0 服务器。 Tomcat 是一个实现 JAVAEE标准的最小 WEB 服务器。 Tomcat 服务器是 Apache 组织开发的能够从网络上直接下载。 超文本标记语言( HTML)是一种简单标记语言用来制作超文本文档,而 HTML中的元素是 HTML 语言的基本部分。这些元素总是成对出现的,每一对元素一般都有一个开始的标记(如 ),也有一个结束的标记(如: )。元素的标记要用一对尖括号括起来,并且结束的标记总是在开始的标记前加上一个斜杠。 1 大 学毕 业 设 计 论 文 7 3 系统分析及其基本功能 3.1 可行性分析 可行性分析主要是在系统调查的基础上对要开发的系统
25、进行全面的评估。从开的技术、开发经费、系统的实用性等方面对新系统进行分析和研究。考察新系统的开发是否有意义和可能性,来避免投资失败,并保证新系统的开发能够成功。可行性研究的目的就是以尽可能小的代价和尽量短的时间内来分析将要开发的项目会遇到困难并评估这些困难能否被克服。本设计的可行性分析包括如下方面: (1) 系统是否经济:作者认为本系统开发经费较小在经济上完全可以接受,而且本设计在投入使用以后可以节省一些人力物力,提高教学工作与学习的效率。所以本设计在经济上是可行的。 (2) 本系统技术上是否可行:本次设计使用的是 B/S 开发模式运用 JSP 开发技术和 MySql 数据库。如今这些技术的发展已经比较成熟因此能够大大的增加本设计开发成功的几率。可以说本次设计在技术上也是可行的。 通过以上分析,本次设计已经有了明确的开发目标而且在技术和经济等方面都是切实可行的,投入少、见效快。因此在线考试系统完全可行。 3.2 系统需要 解决的主要问题 首先,因为在线考试是面向特定的某些对象的,所以本次设计的用户角色会分为管理员教师,考生,以及评分教师这三种。不同角色的使用权限也会有所不同。本设计需要 解决 管理员教师 对人员 , 课程 ,题目 还有 试卷的管理 问题 ;考生能够进行自我测验,在线考试并且查询考试的成绩;评分教师完成对考生提交过的试卷进行评分等问题。