在线考试系统毕业论文
毕业设计(论文)
题 目: 基于web 的在线考试系统的设计与实现
学 院: 信息工程学院
专业名称: 计算机科学与技术
班级学号:
学生姓名: 张威
指导教师: 杨词慧
二O 一三 年 六 月
学士学位论文原创性声明
本人声明,所呈交的论文是本人在导师的指导下独立完成的研究成果。除了文中特别加以标注引用的内容外,本论文不包含法律意义上已属于他人的任何形式的研究成果也不包含本人已用于其他学位申请的论文或成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本声明的法律后果由本人承担。
作者签名: 日期: 年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌航空大学科技学院可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
作者签名: 日期: 年 月 日
导师签名: 日期:
摘要
随着知识经济的到来,人类已跨入信息社会。计算机技术的发展,使得传统的纸质考试的缺点日益突显,纸质考试出题改卷耗时、印刷耗纸的缺点促使了网络考试系统的发展。然而,目前大多数高校仍然采用纸质考试的形式。因此,本课题设计了一种基于Web 的在线考试系统,以解决传统纸质考试系统存在的各种问题,促进网络考试系统的发展和普及。
本论文主要介绍了在线考试系统从需求分析到概要设计和详细设计,再到系统实现和调试的整个过程。系统采用B/S模式开发,选择JAVA 、JSP 、JavaScript 和Html 语言作为开发语言,采用Tomcat 服务器技术,后台数据库选用MYSQL ,主要开发工具是MyEclipse 。设计的在线考试系统包括系统管理、学生管理、查询考生信息、制作试卷、控制学生考试、日志登录管理等功能模块。可以实现在线出题、在线考试、在线评分等功能,从而极大地提高了出题和改卷的效率,节约了考试成本。
关键词:在线考试 B/S MyEclipse
ABSTRACT
With the advent of knowledge economy, human has entered the information society.The development of computer technology,the shortcomings of the traditional paper-based exam is highlighted,paper-based test questions change book time, the shortcomings of printing paper consumption has prompted the development of the network examination system.Most colleges and universities, however, are still in the form of physical examination.Therefore,this topic has designed a kind of online examination system based on Web to solve various problems of the traditional paper-based exam system,promoting the development and popularization of network examination system.
This paper mainly introduces the online exam system from requirement analysis to outline design and detailed design,and then to the whole process of system implementation and debugging.System adopts B/S model development,select JA V A,JSP,JavaScript,and Html language as a development language,using Tomcat server technology,choose MYSQL,backstage supporter's database is the main development tools MyEclipse.This paper mainly introduces the system from requirement analysis to outline design and detailed design,and then to the whole process of system implementation and debugging.Online examination system design including system management, student management,query exam examinee information,paper making,control functions such as login, log management module.It can realize the online, online examination questions, online scores,and other functions,thus greatly improve the efficiency of the suggestion and the change of volume, saving the cost of the exam.
Key words:online examination B/S MyEclipse
目 录
1 绪 论..................................................................................................... 1
1.1 课题的来源及研究目的 ........................................................................................... 1
1.2 国内外研究概况及发展趋势 ................................................................................... 1
1.3 研究内容 ................................................................................................................... 3
1.4 主要技术简介 ........................................................................................................... 3
1.5 预期设计目标 ........................................................................................................... 5
1.6 本文的组织结构 ....................................................................................................... 6
2 系统需求分析与设计 .......................................................................... 7
2.1 问题描述 ................................................................................................................... 7
2.2 可性行分析 ............................................................................................................... 7
2.3 性能需求 ................................................................................................................... 9
2.4 需求分析 ................................................................................................................. 10
2.5 具体处理流程和功能需求 ..................................................................................... 13
3 系统数据库设计 ................................................................................ 17
3.1 概念结构设计 ......................................................................................................... 17
3.2 逻辑结构设计 ......................................................................................................... 18
3.3 物理结构设计 ......................................................................................................... 19
4 系统详细设计与实现 ........................................................................ 21
4.1 主要界面设计 ......................................................................................................... 21
4.2 各个模块功能设计 ................................................................................................. 24
5 总结与展望 ........................................................................................ 32
参考文献................................................................................................. 33
致 谢 . .................................................................................................... 34
1 绪 论
1.1 课题的来源及研究目的
随着信息技术与网络技术的快速发展,计算机越来越多地应用到人们的实际生活当中,也扮演着越来越重要的角色。在我们教育飞速进步的今天,比较传统的纸质考试已经过时了,因为这不仅需要大量的人力物力去刻印试卷、还要去批改试卷,要花费大把大把的时间,更关键的是,在远程的教学教育中,不利于安排统一的考试,注定要被时代所淘汰。为了打破传统的考试模式,为了新形势的发展,把老师从繁重的工作中解脱出来,适应实现真正的无纸化的考试,使考试可以在任何地点进行,不受地域的限制,人们迫切要求利用计算机技术实现在线考试,以减轻教师的工作负担及提高工作效率,提高考试的质量,使考试更趋于公证。基于互联网的各种应用日益受到人们的重视,基于web 的在线考试系统在这种形势下应运而生,它是伴随着网络技术和数据库技术的应用发展而诞生,可以利用网络,随时随地地对学生进行考试,是传统考试的延伸;另外,借助它可以有效利用校园网的资源,更好地为学校的教学管理服务[1]。
其实,目前已有一些在线考试系统实现了这样的目标,如普通话考试、计算机等级考试等,都是网络考试系统的典型应用。但目前大部分高校仍采用传统的考试方式。因此,本课题拟基于B/S模式设计一个简单的在线考试系统。系统采用JSP 来开发,后台采用MySQL 作为数据库服务器,界面友好,操作简单。用户通过普通的Web 浏览器即能完成出题、考试和自动阅卷等操作,简单快捷。通过使用该系统可以大大的提高考试的效率,减少人力、物力和财力的消耗。
1.2 国内外研究概况及发展趋势
随着计算机网络应用在中国的普及,越来越多的教育单位,包括大学、成人自考、中学等,越来越重视网络系统的应用,这就需要在线考试系统做的更好、更强大,才能够适应这样的变化,同时这项技术未来的发展前景也很好。
其实,在信息爆炸的时代,传统的考试形式已经过时了,越来越多的教育单位选择网络考试。未来的高考、中考,也必将采取这种形式,这是大势所趋。因为,这种形式很灵活,更重要的是,它可以根据老师在事前的预设题库,自动生成一套试卷,而且老师可以直接在上面修改。这样考试的公平性、答案的安全性可以得到有效的保证[2]。
追本溯源,早在1996年底,国外开始出现支持网上教学的系统和平台。美国的NTU 、英国的OPEN COLLEGE 都是当时十分典型的网络教育示例。1998年后,随着国内网络教育的兴起,各高校纷纷开发了自己的网络教学平台,作为网络课程重要组成部分的在线考试系统也相继问世,例如:北京师范大学的网络教学平台、上海交通大学的网络考试平台等[3]。
目前国内外的网络考试系统非常多,适用的网络环境也很广泛,通常按照以下三种情况分类:(1)按照用途来分:专用考试系统、固定科目的考试系统、通用考试系统。(2)按照考试系统的组卷方式来分:主要是有三种,一是将试题库当做试题集,出卷时由具有丰富经验的教师抽取;二是将试题库当做试题集,将已出好的试卷存储起来,组卷时抽取其中的一份;三是具有自动组卷功能的试题集,利用按照一定组卷规则生成试卷。(3)从结构上划分:主要有两类:C/S和B/S模式。以下介绍几个典型的网络考试系统,用以说明国内外对网络考试系统的研究状况[4]。
(1) 清华泰豪网络考试系统[5] :它是一种多功能辅助教学系统,具有教学题库管理、自动试卷生成、自动成绩统计分析等多项功能。系统是全面网络化的多用户系统,试用的环境也非常广泛,资源也丰富,该系统主要的缺点是题型比较少,以选择题和填空题为主,系统使用复杂,需要安装相应的教学系统作为支撑。
(2)清正一专业网络考试系统[6]:它是一款基于web 方式的专业网络考试系统,完全免安装,可以适用于任何单位。它应用了最新的一门技术,微软公司生产的。它拥有一个庞大的数据库,清正一专业。它很可能是最好的支持英语题型的考试系统,而且完全基于web 方式。 该考试系统较适合于英语考试,不易直接用于其他科目的考试系统之上。
众所周知,国外的各类计算机考试早已经非常成熟,而且已经投入使用,当然 各类考试系统大量出现。美国心理协会特别针对这个,发布了关于如何开发,使用计算机化考试以及其他的考试,这项成果成为了考试系统开发者的标准之一。现在已经成功并投入使用的系统有很多,例如:ETS (美国教育考试中心)组织的“GRE ”,这是大家都非常熟悉的,这个系统功能有时间控制,系统的安全性方面都是世界一流的。再比如,采用美国学院(在线教育方式) 的American College 考试。还有就是日本的“信息技术人员考试”[7]。
目前,国外的很多大型测验出版机构,例如,英国Question Mark Computing ,Ltd 公司出品的Question Mark,就是一种基于项目项目反映理论的,可供广大教师使用的考试系统[8]。
把视野放眼到国内,计算机考试系统和题库的理论研究和实践应用开展年头不长,但是发展可以说相当迅猛,在这方面的研究和开发活动呈现爆发式的增长。许多国外的高等院校都有在组织力量,致力于使用考试系统的研究和开发。自然,国内都有许多网上考试,国家教务组织的全国计算机等级考试。又比如国家教育组织的NIT 、ATC 等这些知名的认证考试[9]。
由于信息化的大力发展,国内各部门各公司都在进行信息化改革,逐渐要进入到大数据时代,这就意味着在线考试系统在国内拥有数量庞大的潜在用户,各种的通用性的在线考试系统也如雨后春笋般的一般出现,许多软件公司都有成功案例,例如E 考天下网上学习考试系统等都在国内都是比较成功的案例。
本文只列举少量的几个,其他系统这里不再赘述。它们统一的共同特点是:通常用于考生自测或网络教学系统。
1.3 研究内容
本文的研究内容包括系统管理、考生管理、查询考生信息、在线制作试卷、控制学生考试等功能模块的设计。本论文主要介绍了系统的分析,设计开发的全部过程,通过对系统功能的分析、程序操作控制图设计等对系统设计过程进行详细的说明等等。本课题所研发的系统,采用软件工程的思想[10],基于多层次系统结构进行开发。数据层设计包括数据库的建立等。
本系统主要包括:
(1)系统的需求分析:需求分析主要是针对系统的目标、需求分析进行详细的分析与模块划分[11]。
(2)系统各功能模块的设计:这主要指的是系统从界面到核心代码的设计。其中,教师模块包括教师管理页面的设计、教师角色的添加、教师管理学生模块的设计、教师查看学生信息的设计等,管理员模块包括对学生和教师信息的管理,添加学生和管理教师模块的添加,学生模块包括学生的考试模块的设计、学生资料修改模块的设计。
1.4 主要技术简介
1.4.1 B/S结构模式
在线考试系统的实现技术有两种,其中一种是采用传统的客户机/服务器(C/S)
型的结构,即试题内容放在远程服务器上但是每次考试时要对机器进行安装、配置,这样一来考务工作比较烦琐,而且考试程序放在客户机上,安全性也受到一定影响。另外一种考试系统采用Web 技术实现。web 结构有着更好的安全性。在用户机上不需要安装任何应用程序,试题存放在数据库服务器上[12]。
1.4.2 JSP 技术
JSP 的全称是Java Server Pages,它是SUN 推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入JA V A 程序片段和JSP 标记,就构成了JSP 页面。JSP 具有以下的优点:
(1)将业务层与表示层分离;
(2)能够跨平台 ;
(3)一次编写,处处运行:作为JA V A 开发平台的一部分,JSP 具有JA V A 的所有优点,包括Write once ,Run everywhere。
1.4.3 Tomcat 应用服务器
在当下,Tomcat 是其中较为流行的一个Web 服务器。同时Tomcat 是一个免费的开源的Serlvet 容器,在Tomcat 中,应用程序的部署很简单,你只需将你的WAR 放到Tomcat 的webapp 目录下,Tomcat 会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp 时,通常第一次会很慢,因为Tomcat 要将Jsp 转化为Servlet 文件,然后编译。编译以后,访问将会很快。另外Tomcat 也提供了一个应用:manager ,访问这个应用需要用户名和密码,用户名和密码存储在一个xml 文件。通过这个应用,辅助于Ftp ,你可以在远程通过Web 部署和撤销应用。在本地也可以实现同样的功能。 Tomcat 也具有传统的Web 服务器的功能:处理Html 页面。但是与Apache 相比,它的处理静态Html 的能力就不如Apache 。我们可以将Tomcat 和Apache 集成到一块,让Apache 处理静态Html ,而Tomcat 处理Jsp 和Servlet 。
Tomcat 是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越收到人们的重视。
1.4.4 struts 技术
struts 的运行原理:
(1)启动Tomcat ,实例化actionServlet ,执行init 方法,读取struts-config 文件;
(2)客户端发出一个请求,以.do 结尾,ActionServlet 接管这个请求;
(3)根据请求路径,找到对应的映射信息ActionMapping ;
(4)根据请求的路径,寻找对应的FormBean ,在作用于scope 的指定的范围根据name 找到匹配的Form ,如果不存在,就创建一个formBean ,新建的form 保存在一个hash 表中,如果存在,就直接返回存在的form ;
(5)封装表单的数据到formbean 中,验证表单的数据是否正确,如果不正确,根据Action 的input 属性跳转页面。
1.4.5 Hibernate 技术
为什么用Hibernate 技术?Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用JDBC 的场合,既可以在Java 的客户端程序使用,也可以在Servlet/JSP的Web 应用中使用,最具革命意义的是,Hibernate 可以在应用EJB 的J2EE 架构中取代CMP ,完成数据持久化的重任[13]。
1.4.6 DAOFactory
为什么使用DAOFactory 技术?因为SQL 漏洞的存在,我们不得不把HQL 语句写死,这样的话,就产生了一种技术,DAO ,Data Access Objects,它实际上是一种数据接口,实现了数据的增删改查。
1.5 预期设计目标
网上考试系统提供的是一种面向较广区域的用户群系统。它需要自身能够提供给不同区域的用户进行方便的访问及以及足够的安全性以及大量的考试数据信息。用户只需要拥有一台PC 机,并能方便地接入Internet ,便可实现在线的、实时性的在线考试服务。用户登陆系统主页,就可以根据用户权限登录到不同的主页面,这样不同的用户就可以享受到不同的服务。此时,对于本系统来说,学生的功能相对简单,在线考试、资料管理、退出系统等。教师的功能相对较多,比如可以管理学生。不同用户根据自己需求,进行自己的相应的操作。此过程需要用户通过系统向数据库提交试卷,经过系统自动的修改从而得到自己所得的分数,表明考试成功。
学生在规定的时间段内可以考试,超过了时间就不能参加考试。在线考试系统最终实现的是学生参加考试、教师实现管理查看的功能。在线考试系统不仅能够提供譬如教师管理查看、学生考试等基本功能,对系统的输出要求是数据完整、详实、简捷、
快速、实时。
1.6 本文的组织结构
本文将主要从以下几个部分进行阐述:
第一章为绪论。概要介绍了基于Struts1+hibernate框架的在线考试系统的研究背景和在线考试系统的现状。
第二章中主要介绍了系统的开发环境及开发工具,以及系统开发所选用的技术框架。
第三章主要对系统的目标、需求分析进行了详细的分析与模块划分,同时进行了用例设计。
第四章主要对系统的数据库设计从概要到详细的全面设计与分析[14]。
第五章在前文的需求分析与数据库设计基础上,对系统的各个功能模块以及子功能进行了具体实现。从界面与核心编码两个方面进行了介绍。
第六章对系统进行了各个层次与方面的测试。并进行了改进。
最后是总结和展望,总结本文的工作,并提出进一步深入研究、改进的一些构想。
2 系统需求分析与设计
随着近年来,经济迅速发展,计算机水平不断提高,人们已经不满足于在纸上考试,所以寻找一种更加方便、快捷,更重要的是,它会更加环保。以下这章就是对“在线考试系统”的开发过程。
2.1 问题描述
“基于Struts1+Hibernate框架的在线考试系统”的主要功能是帮助老师能够管理和了解学生的成绩,同时学生又能够在网上考试。让一切操作都在网上进行。节省了不少的纸张,同时很客观。传统的学校教学中,进行一场考试,都需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给学校和学生带来了众多的不便。而在线考试系统,正是信息化建设的产物,它是传统考场的延伸。它可以利用互联网络和局域网,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程。因此在线考试必然是以后考试的趋势。在传统考试中,需要老师印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。那么在在线考试中,主要是实现考生在线考试、在线制作试卷、控制考试、自动评分、自动交卷、成绩查询、系统管理等功能,充分利用计算机网络技术,改变传统的考试操作方式,实现无纸化考试的模式[15]。
其功能描述如下:
(1)学生注册模块[16]。学生可以在系统进行注册,将自己的信息保存到数据库中,实现学生的注册。
(2)系统管理模块[17]。教师可以进行学生管理、试题管理、成绩管理、教师管理。
(3)登录管理模块[18]。系统自动为每一个登录的人增加一项登录的记录。 (4)学生查询考试模块[19]。学生可以自动查询考试信息。
2.2 可性行分析
2.2.1
分析目的
(1) 要求
功能:满足学生的在线进行考试、资料管理和教师后台数据维护等操作。 (2) 目标
①人力与设备费用的减少; ②试卷批改速度的提高; ③管理信息服务的改进; ④更加环保; ⑤更加安全。 (3) 权限管理 ① 教师 ② 学生 ③ 管理员 2.2.2
设计可行性
该项目的总体的设计是MVC 框架模式,由控制层、视图层、业务层构成。这种常用的开发模式,总体上来说对于一个开发者是没有难度的。这样的设计对系统的总体层次也划分的一清二楚,所以在设计上是可行的[20]。 2.2.3
技术可行性
由于本管理系统的对象单一,仅仅只有两个对象,具体说是学生,教师。因此,这个管理系统比较适合采用数据库来设计和一些简单的框架设计。在计算机硬件和软
图2.1 可行性分析图
件快速发展的今天,计算机硬件和软件已经远远满足本管理系统的要求。在数据库方面,很多优秀的数据库编程工具,如oracle ,MYSQL 都是非常好的,不仅安全,而且数据操作方便快捷[21]。
本系统属于小型系统,采用MySQL 数据库,功能强大,结构较复杂,工作量可由一到三个人完成,做为毕业论文,有足够的时间一个人完成,java 、struts1、Hibernate 、jsp ,技术难度中等。 2.2.4
操作可行性
在进行需求分析时,就对可能的用户进行了调查,针对他们的情况,设计出合理的界面,使操作方式简单明了。本系统界面清爽简单,看上去很舒服。在加上本系统并不是很复杂,所以在操作方面不应有很大的问题[22]。
2.3 性能需求
为了保证系统能够长期、安全、稳定、可靠、高效地运行,本系统应该满足以下的性能需求。
(1) 准确性和及时性
系统处理的准确性和及时性是系统的必要性能。系统应能及时而且准确的根据用户权限及所输入的信息做出响应。由于本系统的在线考试功能对于整个系统的功能和性能完成有举足轻重影响,所以需要对学生的考试数据进行准确的保存,更关键的是,对时间的控制,所以的话,本系统的准确性和及时性很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性[23]。
(2) 易用性
本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。所以必须要求系统简单易用,有良好的用户接口,有比较清爽的人机交互页面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性
[23]
。
(3) 安全性
在线考试系统中涉及到的数据是对于学校,或者是客户来说都是相当重要的信
息,系统要保证用户的权限,只有老师才享有每一个学生成绩的查询权利等;系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管理、以及系统意外崩溃时数据的恢复等工作。同时系统还要保证对数据库进行及时更新,保证数据一致性[24]。
2.4 需求分析
2.4.1
目标
在线考试系统的总目标是:在计算机网络,数据库和现有的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的在线考试系统,实现学生的在线考试和教师的在线管理。这样的话,很环保,减少了人力和物力。这必将是未来的趋势。根据可行性研究的结果和客户的要求,分析现有情况及问题,采用B/S结构,将网上考试系统划分为前台页面和后台页面。 2.4.2
系统的功能要求
根据系统的需要,系统应当包含基本的功能有:用户注册、学生登录、教师登录、教师退出等。当学生需要考试时,学生首先登入网站,然后点击在线考试,选择考试科目,最后进行考试,然后会自动出成绩[25]。具体操作过程如。 2.4.3
功能操作和角色
(1)用例清单
用例清单包括学生注册、学生登录、学生查看成绩单、学生进行考试、学生进行资料修改、学生退出,还包括教师登录、老师管理学生资料、教师管理考试科目和考试题、教师管理考试成绩、教师察看登陆日志、管理教师、教师退出[26]。具体的用例如表2.1所示。
(2)角色清单
角色清单包括已经注册的学生、教师、未注册用户、管理员。其中管理员可以管理学生和教师。具体角色清单如表2.2所示。
表2.2 角色清单
表2.1用例清单
本用例清单分为教师管理和学生操作两个模块。学生模块包括学生注册、学生资料管理、学生成绩查询。教师模块包括教师的添加、教师对学生的管理、教师对学生成绩的查询、教师对科目和试题的管理。当学生在线考试完毕后后,就可对分数进行统计,统计完成之后就要进行出入数据库操作,入库需要先提交到系统管理员审核,待审核通过后,管理员确认对产品的入库,成功后学生可以查询成绩信息;教师可以更改试题和它所对应的科目,还需要确定这个科目考试的有效时间,完成试题添加以后,学生才可以找到对应的科目进行考试。教师还可以添加其他管理员,实现对系统的管理与维护。教师还可以查看登录日志信息,其中这些登录信息包括登录失败的,也包括登录成功的。为了查询方便,管理员都能方便的查询考试的各种信息,能生成成绩表,极大的提高对学生管理的效率。
图22所示。
2.4.4 功能操作和角色
(1)用例清单
用例清单包括学生注册、学生登录、学生查看成绩单、学生进行考试、学生进行资料修改、学生退出,还包括教师登录、老师管理学生资料、教师管理考试科目和考试题、教师管理考试成绩、教师察看登陆日志、管理教师、教师退出[26]。具体的用例如表2.1所示。
(2)角色清单
角色清单包括已经注册的学生、教师、未注册用户、管理员。其中管理员可以管
理学生和教师。具体角色清单如表2.2所示。
表2.2 角色清单
表2.1用例清单
本用例清单分为教师管理和学生操作两个模块。学生模块包括学生注册、学生资料管理、学生成绩查询。教师模块包括教师的添加、教师对学生的管理、教师对学生成绩的查询、教师对科目和试题的管理。当学生在线考试完毕后后,就可对分数进行统计,统计完成之后就要进行出入数据库操作,入库需要先提交到系统管理员审核,待审核通过后,管理员确认对产品的入库,成功后学生可以查询成绩信息;教师可以
更改试题和它所对应的科目,还需要确定这个科目考试的有效时间,完成试题添加以后,学生才可以找到对应的科目进行考试。教师还可以添加其他管理员,实现对系统的管理与维护。教师还可以查看登录日志信息,其中这些登录信息包括登录失败的,也包括登录成功的。为了查询方便,管理员都能方便的查询考试的各种信息,能生成成绩表,极大的提高对学生管理的效率。
图2.2 考试流程图
2.4.5
需求规定
本系统的主要输入项很少,主要是学生的考试功能。如学生信息的合法性等各种信息,要求有详细的信息,即让使用者可以了解到的信息尽可能的详细;还有系统安全方面的考虑,要保证系统的安全性。
2.5 具体处理流程和功能需求
2.5.1
处理流程结构
系统的总体结构,包括学生的登录,教师的管理,管理员对学生和教师的管理,如图2.3所示:
图2.3 系统总体结构
(1)教师管理页面
教师管理包括对学生信息的管理、学生的添加、试题的管理、成绩的管理、登录管理、教师管理,管理员的操作流程如错误!未找到引用源。.4所示:
图2.4 教师管理功能图
(2)学生在线考试(学生)
学生登陆包括资料管理、在线考试、成绩查询,退出系统。学生的考试功能图如图2.5所示。
图2.5 学生考试功能图
(3)管理员
管理员包括可以管理教师和学生。具体如图2.6所示。
图2.6 管理员功能图
(4)学生注册页面(学生)
学生注册流程包括进入注册页面,然后进行资料填写,确定之后返回主页面。学生注册的操作流程如图2..7所示。
图2.7 学生注册流程图
2.5.2 功能需求
整个功能需求包括三个功能模块。包括学生的登录功能,教师登录功能,注册功能。具体如表2.3、表2.4,表2.5所示。其中学生登录功能的要求是学生已经注册过,并且登录过。如果用户名和密码为空的话,登录不成功,只有当用户输入正确,并且在会话有效期内,才可以进入主页面。
表2.4 教师登录功能(002)
3 系统数据库设计
3.1 概念结构设计
该系统所采用的数据库是开源的MySQL 数据库。数据表之间的关联关系没有建立,若之间有关系则是在表中建立相关字段,在页面进行输入控制。概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上
[5]
。
描述概念模型的有力工具是E-R 图。E-R 模型是一个面向问题的概念模型,即用
简单的图形方式(E-R图) 描述现实世界中的数据。这种描述不涉及数据在数据库中表示和存取方法,非常接近人的思维方式。后来又提出了扩展实体联系模型(Extend Entity-Relationship Model),简称为“EER 模型”。EER 模型目前已经成为一种使用广泛的概念模型,为面向对象的数据库设计提供了有效的工具。本文要用E-R 图来指定系统的数据库概念模型设计。
本系统数据库需要表述的信息有以下几种: (1)考试记录信息 (2)登录日志信息 (3)选项信息 (4)问题信息 (5)成绩信息 (6)科目信息 (7)学生信息 (8)老师信息
本系统的数据库的E-R 图如3.1所示。
图3.1 系统E-R 图
3.2 逻辑结构设计
概念结构设计所得的E-R 模型是对用户需求的一种抽象的表达形式,它独立于任何一种具体的数据模型,因而也不能为任何一个具体的数据库管理系统所支持。为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一数据库管理系统所
支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整和优化,形成合理的全局逻辑结构,并设计出用户子模式。这就是数据库逻辑设计所要完成的任务。
数据库逻辑结构的设计分为两个步骤:首先将概念设计所得的E-R 图转换为关系模型;然后对关系模型进行优化[10]。
本在线考试系统当中包括了以上几个ER 模型向关系模型的转换:考试记录表、 选项表、问题表、科目表、成绩表、学生表、教师表、日志表。
3.3 物理结构设计
在表中,关键字(即编号)都采用自动编号即(Increment )的数据类型;数据表的各个字段类型只采用int 类型、char 类型和varchar 类型、decimal 类型、datatime 类型。各个表之间的关系我们不采用任何关系,采用的是建立相关字段,在页面输入项时强制规定用户的输入。数据设计具体如表3.1—表3.8所示。
表3.1 考试记录表
表3.2 登录日志管理表
表3.3 选项表
表3.4 问题表
表3.5 科目表
表3.7 成绩表
表3.8 教师表
4 系统详细设计与实现
4.1 主要界面设计
在本网站中,主要设计了主登录界面、管理员页面、学生页面、学生注册页面。其中,根据页面设计的具体要求,主要使用了jsp 技术,并配合相应的代码,来实现预期的功能。而且为了界面更美观,还特地用到了美图秀秀技术在背景和相关部位插入了图片。 4.1.1
登录页面的实现
在地址栏输入http://localhost:8080/exams/index.jsp,进入网站登入界面,输入用户名与密码,并选择相应的身份进入网站。例如用户名:admin ,密码:admin ,身份:教师(用户名:admin ,密码:admin ,身份:教师) ,再输入相应的验证码,系统就会在后台根据这些信息调用相应的方法,然后进入正确的页面。
简单验证从本质上说就是在服务端来验证客户端提交的form 中的数据。这种验证只是对form 中的数据规则进行检查,如必须输入用户名,密码必须正确。在这个验证过程中,并不需要访问数据库。因此,简单验证需要在用户提交form 后,并且在服务器处理form 中的数据之前进行。在进行完简单验证后,如果form 中的数据不合法,程序就会forward 到指定的JSP 页(一般是包含form 的页面),并显示相应的错误信息。如果form 中的数据完全正确,程序就会继续执行。在这里如果不成功,就会跳到登录页面,重新登录。
登录页面如图4.1所示。 4.1.2
管理员页面的实现
登录进教师的页面后,可以进行相应的操作。jsp 发出请求提交给ActionServlet ,ActionServlet 把用户请求交给模块控制器RequestProcessor ,模块控制器RequestProcessor 把request 请求的数据封装成ActionForm ,调用对应的 Action ,执行它的execute 方法,execute 方法调用业务逻辑进行处理,处理完返回一个ActionForward 对象,最后把响应结果通过jsp 展现给客户。jsp 页面中用户通过填写数据库,再提交到不同actionForm 中,actionForm 提交到总的控制器ActionServlet ,然后再提交到不同的Action ,通过配置文件struts-config.xml 以及Hibernate 的配置文件与数据库中的数据进行实时的更新。
管理员页面如图4.2所示。
图4.1 登录页面
图4.2 管理员主页面
4.1.3 学生页面的实现
学生登录后,根据相应的角色登录进来以后,可以查看资料、修改资料、在线考试、也可以进行相应的成绩查询。最后可以进行注销。
在JSP 项目中,我们经常需要进行一些JSP 页面跳转,常用方法是
跳转或者直接超链接,但是如果我们在Struts 项目中使用这样的做法则在一定程度上违背了Struts 框架,因为在Struts 框架中要求每一个请求都通过中央控制器统一处理,以上两种方法则绕过了控制器直接进行网页间交互,在Struts 框架中为统一符合Struts 规范,提出了ActionForward 类,客户端发送跳转请求通过控制器跳转[27]。
学生页面如图4.3所示。
图4.3 学生页面
4.1.4 注册页面的实现
当学生选择注册页面时,会进入到注册页面。注册页面内容有用户名、姓名、密码、性别、地址、Email 。当用户输入相应的信息之后,用户会根据用户的填写进行对表单的验证,验证成功之后证明没有ActionError 之后,数据是validate 的之后,这些数据会通过ActionForm 处理,通过Action ,dao 等与数据库进行连接。从而实现对数据的持久化操作。[28]如果验证不成功,就会跳到本页面进行重新填写。注册页面如图4.4所示。
图4.4 学生注册主页面
4.2 各个模块功能设计
4.2.1 学生考试模块的实现
(1)学生管理模块
在教师输入用户名和密码,再输入验证码后,系统进行验证合法性,允许或拒绝登录,可以与学生在同一个界面上进行。系统验证用户名、密码的合法性,若合法则进入教师子系统,否则拒绝登录并提示教师拒绝登录的原因。每次登陆请求(输入的用户名,IP ,老师或学生,是否登陆成功,时间,均保存在登录信息日志中,便于查看是否有人非法攻击。教师登录成功后,在浏览其他有权查看的页面时,不用再次输入用户名号和密码。禁止未登录的教师查看登录页面以外的其他功能页面[29]。
学生管理模块包括对学生信息的查询、学生的增加、学生的修改、学生的删除。当然这个必须要教师登录成功的情况下才能用。学生管理页面如图4.5所示。
图4.5 学生管理模块
教师可以按照姓名来模糊查询,这时候用到的是HQL 语句来查询,这个可以在控制台上看到这个语句,同时,教师也可以修改或是删除学生记录,这时候,先通过jsp 页面填写相应的信息,同时要提交到相应的ActionForm ,然后通过ActionServlet 调用ActionForm ,再通过配置文件struts-config.xml 的配置文件。
如上图所示就是增加学生的action ,执行它的execute 方法,execute 方法调用业务逻辑进行处理,处理完返回一个ActionForward 对象,最后把响应结果通过jsp 展现给教师。当教师要删除某学生时,系统会问是否真要删除这个学生。如果已经删除了,那么数据库保存的数据也将不复存在。同时显示页面还使用了分页技术[30]。
(2)试题管理模块
试题管理模块的jsp 页面显示如图4.6所示。
图4.6 试题管理图
教师可以查看当前已有的试题,可以增加试题,可以删除试题,当然这一切都是在相应的科目里完成的。首先后台根据页面操作,接收到的默认参数,选择相应的action 类(SubjectAction ),调用相应的操作方法,得到该用户正确的信息。 然后后台会根据前台页面传过来的subjectid ,调用相应的方法,(ActionForward后面紧跟的方法) ,对数据库中相应的用户进行修改状态参数,修改成功后调用query 方法,跳转前台页面。页面利用Struts1标签读取后台的结果集,显示在页面上。
当然科目里面的内容可以设置成中文,这功能模块的核心代码是:
jdbc:mysql://127.0.0.1:3306/mysql1?useUnicode=true&characterEncoding=utf-8
这属于一种强制类型转换,换句话说,就是强制将页面上的内容转换成中文。
(3) 成绩管理模块
成绩管理模块的页面显示为如图4.7所示。
图4.7 成绩管理页面
在该模块中,教师实现对成绩的查询操作。比如教师选择科目是数学,选择用户名是xiaoli ,后台会自动的调出来查询后的页面进行显示。某一用户的页面如图4.8所示。
图4.8 成绩管理图
Jsp 页面利用表单向后台提交数据,将相应的数据封装成对应的实体类对象,该请求通过struts 进行转发,简单方便。显示结果的话,可以按照科目、用户名、姓名、考试日期、考试成绩排序。
教师点击察看详细信息,察看该次,这个考生答题历史纪录,包括题目id ,所答答案,正确答案,是否正确,教师还可以删除,修改学生成绩。
(4) 登录管理模块
登录管理模块的页面实现如图4.8所示。
图4.9 登录管理图
登录管理其实是一种日志管理,那么日志管理是显示一些用户或者管理员的操作行为,每当学生或者是教师进行某项操作时,系统就会自动进行记录,保存为一条记录。
后台接收到页面请求,调用Dao 查询数据库,利用Hibernate 技术,获得数据结果集。页面将后台返回来的结果集以表格的形式显示在页面中,利用了struts 标签、EL 表达式。
教师可以根据开始日期到结束日期进行查询,还可以根据学生或是老师进行不同角色的查询操作。当然也可以显示全部的登录日志。显示内容包括:显示输入的用户名,IP ,老师或学生,是否登陆成功,时间。
如何实现的?首先必须要建立一张登录日志表,然后需要建立一个javabean 类,与数据库表的对应起来。然后再建一个接口ILogService ,这个接口有四个待实现的方法,分别是teacherlogin 、studentlogin 、addlog 、findLog 、findLognum 。再写一个接口的实现类(LogServiceImp):。为了增加分页功能,还必须写一个ILoginlogDAO ,来实现IDAO ,从而实现分页功能。
(5) 教师管理模块
教师管理模块的页面如图4.10所示。
图4.10 教师管理图
这个页这个页面主要实现对教师进行查看和增删改的功能。当然首先的条件是教师用户才有这个权限。
用户先在jsp 页面进行相应的操作,然后通过本页面的checkteacherform(this)提交到teacherForm ,然后找到相应的Action (/teacher/admin/adddo),将根据接收到的参数调用相应的方法(add ),然后调用相应的Dao 来实现功能。实现数据的入库。最后返回教师管理页面。同理:删除教师也是同样的道理。但是前提条件是有两个用户 及以上,不然会报错。
(6) 退出系统模块:
这个模块主要负责教师退出整个系统。前提条件是:已经登录的老师。后台通过jsp 页面得到用户点击“退出系统”,通过struts 找到相应的action 类(TeacherLogoutAction)。
4.2.2 学生考试模块的实现
(1)资料管理模块
资料管理模块的页面显示为如图4.11所示。
图4.11 学生资料管理图
学生在输入用户名和密码,系统进行验证合法性,允许或拒绝登录后,若合法则 进入学生子系统并记录用户登录信息,否则拒绝登录并提示拒绝登录的原因。每次登陆请(输入的用户名,IP ,老师或学生,是否登陆成功,时间),均保存在登录信息日志中。
学生登录成功后,在浏览其他有权查看的页面时,不用再次输入用户名和密码。学生在登陆成功后选择资料管理后,可以进行资料的修改,包括密码等在控制台可以看到相应的HQL 语句。比如:
Hibernate: update STUDENT set USERNAME=?, NAME=?, PASSWORD=?, ADDRESS=?, SEX=?, EMAIL=? where STUDENTID=?
这样就可以看出Hibernate 的好处,他实现对数据的封装查询。很简洁方便。
(2)在线考试模块
在线考试模块的页面显示如图4.12所示。
图4.12 在线考试图
点开始考试,参加完然后再点交卷,会弹出一个对话框:点确定之后,再弹出一个对话框最后交卷成功后。交卷成功如图4.13所示。
图4.13 交卷成功图
以上就是整个在线考试的整个页面流程。
学生选择未考科目进行考试,系统显示试题,并进行计时,时间到自动交卷,自动计算成绩,显示成绩单。题目包括单项选择和多项选择题。
学生可以请求参加考试,显示可以考试的科目列表,已经参加过和关闭的试卷不能参加考试;学员选择未考且已开放考试的科目,请求考试。系统提示学生是否确认要参加该科目考试。学生确认进行考试,申请开始。系统显示试题和总时间,开始计时。
学生通过index.jsp 页面后,对学生的用户信息进行验证后,如果通过则并进入考生考试exam.jsp 页面,显示所有可考的科目信息,点击进去之后,会公布一些考场规则,点击“开始考试”按钮进入试卷获取exam2.jsp 页面,系统自动进行计时,时间一到,将自动交试卷并进入评分,当然也可以自己主动在答题之前交卷,通过result.jsp 页面进行评分处理后,把该科目的成绩存入到数据库表中。这样就完成了一次考试。
该学生具体操作步骤如下:
① 输入用户名(准考证号) ,密码(默认准考证号) ,验证码验证。
② 系统显示该学生的基本信息,即可以考的科目选择信息。
③ 学生点击相应科目进入考试,点开始考试之后,系统并进入倒计时。
④ 学生进行答题,答题完毕点击“交卷”,不可重复交卷两次。
⑤ 交卷后,考生可即时看到自己的成绩单。
(3)成绩查询模块
成绩查询模块的页面显示如图4.14所示。
图4.14 成绩查询图
点详细情况的话,会出现一个页面,具体如图4.15所示。
图4.15 详细情况图
学生可以查看已经考过的科目分数(科目名称、说明、题数、总时间、总分、考试日期,考试时间、得分情况等)。考试成绩单,包括姓名、科目编号、名称、题数、总时间、总分、参加考试日期(yyyy-mm-dd ),起止时间(hh24:mi:ss) 、本人得分。
(4) 退出考试模块:
退出考试这个模块主要负责学生退出整个系统。
。后台通过jsp 页面得到用户点击“退出系统”,通过struts 找到相应的action 类(StudentLogoutAction)。
4.2.3 学生注册模块的实现
学生注册模块的页面显示为如图4.16所示。
图4.16 学生注册图
相应的HQL 语句为:
Hibernate: insert into STUDENT (USERNAME, NAME, PASSWORD, ADDRESS, SEX, EMAIL, STUDENTID) values (?,?,?,?,?,?,?)
5 总结与展望
本系统在Windows7 + MyEclipse8 + Tomcat6 + MySQL 平台下开放完成,同时在Windows7 + IE 8.0 、Firefox19.0 、Chrome 22.0下测试成功。
至此,本人的论文已经结束,这其中包括了本人所参与项目设计过程中的对系统的了解、设计方向、实现过程以及过程中遇到的问题和处理方法。
在这几个月时间里,本人经历了系统技术学习、资料整理、框架构造、数据库建设和功能实现等过程,终于实现了基于web 的在线考试系统的设计。虽然期间遇到了很多困难,也有过被一个难题卡住不能向前时候的纠结,但是在指导老师和同学的帮助下,难关一个个被攻破,那种解决难题后的喜悦,是一种收获,是一种满足。
在整个系统设计和论文撰写过程中,本人深刻领悟到理论和实践结合的重要性。以前的学习,很多都局限于理论掌握,可事实证明,真正把理论知识运用到实际的操作中,问题接踵而至。所以,要做好一件事情,必须自己全面思考,坚持、耐心的顾及好每一个步骤,懂得用自己充足的资源不断充实自己。
由于时间和自身能力的约束,本人设计的网上考试系统还存在一些不足和功能上的不完整,比如:密码的加密问题,从外部导入试卷,试卷更好的分类等等。希望老师能给予批评指正,在以后的设计中,一定会不断加强和改善,力求最大限度的体现系统的完整性和强大的功能性,使系统更完美。
参考文献
[1]耿小波, 在线考试系统的现状与对策研究[J].中国对外贸易(英文版),2010,1(11):23-26
[2]董芙斌,竹翠. 基于网络的新型计算机考试系统[M].北京:电子工业出版社,2010
[3]范云之. 基于Web 数据库在线考试系统的设计与实现研究[J].商丘师范报,2008,1(12):25-45
[4]马荣飞. 基于B/S结构的网络考试系统[D].西安:西安电子科技大学,2003
[5]崔嵬. 在线考试系统的可行性分析介绍[M].北京:清华大学出版社,2004
[6](美) 舒尔第.Java2-Thecompletereference[M].北京:高等教育出版社,2007:20-100
[7]高寅. 系统分析之路[M].北京. 电子工业出版社,2008,:30-200
[8]郝刚,JAVA 开发指南[M].武汉:人民邮电出版社,2006
[9]布洛克,Effective Java英文版(第2版)[M].甘肃:机械工业出版社,2009
[10]孙卫琴,JAVA 面向对象编程[M].北京:电子工业出版社,2013
[11]徐迎晓.java 编程实例[M].北京:清华大学出版社,2013
[12]夏先波.JavaJDK 实例宝典[M].北京:电子工业出版社,2012
[13]李相国.JAVA 实例精通[M].北京:机械工业出版社,2010
[14]Chu M ,Haussecker H ,Zhao F.Design and Realization of Equipment ’s Archives Management
System Based on Strusts2 and Hibernate.In:2010 Second International Conference.Washington ,2010:466-469
[15]Yao Y,Gehrke J,Rabaey J.The design of E-commerce system architecture based on
Struts2.In:2010 2nd International Conference.Texas,2010,3251-3254
[16]Michael kofler. MySQL 5权威指南[M]. 北京: 人民邮电出版社, 2006
[17]萨师煊、王珊.数据库系统概论[M].北京:高等教育出版社,2009
[18]闫建红.基于UML 的在线考试系统的开发研究[M].北京:电子教育出版社,2010
[19]何伟. 数据库系统设计[M].北京:高等教育出版社,2013
[20]Michael J.Young. 轻松搞定XML(林嘉胜译)[M] ,上海:人民邮电出版社,2001
[21](美)鲍格斯坦(Bergsten ,H. )著,林琪,朱涛江译.JSP 设计(第三版)[M].北京:中国
电力出版社,2004
[22](美)CayS. Horstmann;Gary Cornell.Jave核心技术[M]. 北京:机械工业出版社,2008
[23]Tzafestas,S. G.ed. Walsh Functions in Signal and Systems Analysis and Design. New
York:VanNostrand Reihold Co,1985
[24]Rao,K. R. ed. Discrete Transforms and Their Applications. New York:Van Nostrand
Reihold Co.,1985
[25]Venkataraman,S. ,etal.Discrete Transforms via the Walsh-Hadamard Transform. Proc.
2 6thMidwest Symposium on Circuits and Systems,Puebla ,Mexico,1983
[26]Ahmed,N.,RaoK.R..Orthogonal Transforms for Digital Signal Processing.
Berlin:Springer,1975
[27]D.F.Elliott,and K.Rao.Fast Transforms:Algorothms,Analysas ,Applications.New
York:Academkic Prdss.1982
[28]陈传波,唐咸峰. 领域框架的设计[J].计算机工程与科学,2002.19(13):3-11
[29]闫斐、王亚弟、继红. 基于Struts 架构的J2EE 应用软件的设计与开发[M].北京:清华大学
出版社,2006
[30]官全龙、姚国祥. 基于Struts 的应用架构的研究[M].北京:清华大学出版社,2005
致 谢
毕业论文接近尾声。在此,衷心的感谢杨词慧老师在大四一年的实习设计和毕业设计中给予我的悉心指导和热心帮助,不仅帮助我解决了具体问题,同时也教会了我一种解决问题的方法和思路。在论文的撰写和时间的安排上,老师的有利建议和有效的帮助,使我的系统开发与论文撰写得以顺利完成。感谢杨词慧老师!再次衷心的表示感谢!
感谢大学四年过程中所有的任课老师的教导,特别感谢张胜、王志华、叶水生老师,你们的敦厚的专业知识、严谨的求学作风、不拘一格的风格都对我今后的人生产生积极的影响,感谢你们!
感谢我的同学们和朋友们,感谢你们一直以来的陪伴,求学的过程当中,有失败,有压力,是你们的支持和鼓励,一直陪伴我,让我克服烦躁的情绪。毕业设计的过程中,大家互相鼓励、互相支持,一直深深的存在于我的记忆当中。以后的日子,我们一起奋斗,与你们共勉!
最后,我要感谢我的父母,每当我迷失方向,感到困惑迷茫的时候,你们激励关切的话语,总能让我重新振作,我爱你们!
感谢我生命中的每一个人!