第1章 绪论
1.1在线考试系统的研究背景
近年来,随着互联网几乎已经普及到每个家庭,勇士科技智能也飞速发展,推进了科技化信息化教育的发展,在线考试的优势逐渐显现出来,受到了广大教育工作者的青睐,教育的网络化和信息化已经大势所趋,在线教育已然在现代化教育中占有重要的一席之地,是教育改革的重点目标和方向[1]。
考试是目前为止选拔人才的最可靠、公正、有效的方式、方法,也是考察学生学习状况最有效的办法。传统教学考试中,需要经过出卷、组织考试、学生进行考试、阅卷、统计成绩,公布成绩等步骤[2-3]。其中出卷工作十分复杂,需要组织一个十分专业的具有多年经验的命题组,命题组根据自己多年的对知识点的了解,非常严格的针对各学科的教学大纲和考试大纲,反复斟酌试卷的每一个题目,既要包含需要考察的各个知识点,又需要通过这些试题体现学生的真实学习水平,拉开考试成绩的差距,并且不能与过往的试卷、试题出现相同或者相似,试卷的难易程度极大的受到了人为因素的影响。而且传统的考试需要大量印刷试卷,需要大量的耗材,还存在泄题的风险,从而影响考试的公平公正性。在考试之前,还需要学校对各科考试进行排期,布置考场,对学生的座次进行排列,组织老师进行监考。考试结束后,还需要收取试卷,封卷,老师一遍一遍的进行重复性对所有的试卷进行评阅,工作量大,整个过程耗费了许多人的大量的时间和精力,同时也存在人为阅卷出现错误的情况,影响学生的成绩[4]。当今教育中,为了及时掌握学生的学习状况,大大小小的考试层出不穷,月考、周考、期中、期末,每次考试都需要这样繁复的过程,费时费力,不利于整个教育进步的发展。
利用计算机技术,在线考试系统不仅能够实现无纸化考试,而且能够自动生成试卷,节省人工设计试卷的出题时间,消除人为出卷的影响,不断地积累试题,完善试题库。同时可以对学生做完的试卷进行评阅,对成绩进行记录、分析以及统计,实现信息化智能化的完整的考试流程,大幅度降低老师的工作量,使得考试工作变得简单、高效,也使得考试更加公平公正[5-6]。在线考试系统还可以使得教师可以随时了解学生在学习上的进展情况,对学生的成绩变化进行追踪,有助于学生的全方面的学习和发展,大幅度的提高教学效率和教学质量,打破了传统教学模式的时间和空间的局限性[7]。学生也可以在在线考试系统中随时掌握了解最新的考试动态,查看自己的考试成绩和考试试卷,及时发现自己学习中的弱项,积极改善。
由于现代化的计算机和网路技术的发展,出现了许多在线考试系统,这些系统功能多样,得到了广泛的应用,并且在实践中均表现了良好的使用效果,例如,迈达威通用试题库系统、全美测评软件系统有限公司开发的E考通、科教2010网络考试系统、布卢姆理论试题库、QuestionMark Perception、NATURE 试题库管理系统等等[8-9]。我国对网络教育信息化的标准建设的工作也十分重视,提出了较为完整的远程教育体系结构,制定了相关的教学应用系统的标准,对促进无纸化在线考试系统的发展起到了非常重要的意义[10]。
1.2 在线考试系统的研究意义
在线考试,大幅度的提高教学效率和教学质量,打破了传统考试模式的时间和空间的局限性,使考试的形式变得更加方便和灵活。当今社会计算机的普及度已经非常高,几乎家家都拥有笔记本或者台式机,学生完全有能力通过网络平台进行考试,而且可以在任意地点选择合适的时间进行考试,节约了花费在路上的时间[11-12]。同时,在线考试系统避免了学生在考场上的压力和焦虑情绪,更能体现学生的真实水平。
为了保证考试的公平性,在线考试系统,可以随机从特定的试题库中抽取题目,完成试卷出题,并且不断地更新试题库中的考题,杜绝学生抄袭。题库的存在,也减少了教师不断设计试卷的工作,题库的更新,也增加了考试的不同难度,适用于不同阶段的学生,促进了学生的进步循序渐进的学习,也使得考试更加规范化、流程化。在线考试系统可以直接对试卷进行评阅,减少了教师判卷的工作量,还可以自动计算成绩,学生和教师都可以看到考试成绩,更全面地反映实际教学质量效果,促进提高教学质量,避免了传统纸质考试过程的缓慢,和信息不够公开的缺点,削减了考试的人力、物力和时间成本,具有很高的实用性。同时,教师通过系统中的成绩分析功能分析学生的考试成绩,可以更有目的性、针对性的安排学生的下一阶段的学习计划,认真备课,准备教学内容,及时改变教学方法[13]。在线考试系统,非常适用于学生不集中的远程教育,在当下疫情当前的重要关口,在线考试和在线教育更加突出了他们对现代教育的重要性和意义。
1.3 本论文的主要工作
本文立足于教学、教育和学校教师学生的基本需求,结合信息化教育的发展和对在线考试的功能需求,设计了在线考试系统。
第一章,绪论部分分析了该在线考试系统课题的研究背景和意义,并且对本文的章节内容进行总结,详细阐述了本文的主要工作。
第二章,分析了本系统的需求,对在线考试系统进行了可行性分析、功能性分析以及基本设计。
第三章,详细描述了本系统的设计方案和设计细节、系统流程图等,同时对数据库进行设计。
第四章,对设计的在线考试系统的不同功能模块,编码进行实现。
第五章,系统测试,确保本在线考试系统能够被正确实现,并且确保这个系统的功能完整性。
第六章,结论总结了本文的主要工作。
第2章 系统需求分析
2.1 可行性分析
在设计无纸化在线考试系统的过程中,本文非常严谨严格地遵循了软件工程开发的方法,根据分阶段的生命周期计划进行严格的项目管理,确保系统按时完成,以及系统的可行性和正确性[25]。
2.1.1 技术可行性
技术可行性的目的是确保系统的可开发性,所采用的技术必须在技术实施人员所掌握的技术能力范围内,尽量采用已经很成熟且经过验证的技术,谨慎使用比较先进的技术,需全方面考虑系统开发过程中的所可能使用的所有的技术手段和技术问题,避免由于技术问题导致系统不能完成[12]。
为了保证系统地技术可行性,本课题主要采用java语言技术,基于B/S结构,Mysql数据库,均为经过时间验证的、成熟稳定的技术和平台。对于在线考试系统应用的开发,要求具有完整的在线考试系统功能,并且使用起来简单高效、节省时间等特点,为此还需建立一个数据完整、便于修改、安全稳定的数据库。本设计开发人员已经修过相关课程,有一定的开发经验、掌握了相应的开发技术,因而本系统的研发具有技术可行性[13]。
2.1.2 操作可行性
本系统的开发是计划在四个月的时间内完成的。为了按时完成本系统的开发,系统开发前期主要是学习相关的开发技术,如数据库设计,并且收集资料,对在线考试系统进行调研,接下来就是对系统进行详细的分析,设计合理的数据库,系统外观界面,以及中间的连接。在线考试系统的登录界面简单易于操作,采用常见的网页界面窗口来登录界面,通过电脑终端进行具体操作,使用人员只要平时使用过电脑都能进行访问操作。此系统的开发采用java语言开发,基于B/S结构,这些开发环境和技术使系统功能完善、交互稳定。本系统具有易操作、易管理、交互性好等特点,操作简单[14]。因此本系统操作可行性比较高。
2.1.3 经济可行性
经济可行性主要是对项目的经济效益进行评价。目前已经具备了运行网络平台基础,而且开发本系统均采用开源的代码和数据库,以及编程语言,即经济上是可行的。在线考试系统采用Mysql数据库储存数据,所要求的硬件和软件环境,购买成本较低,程序开发主要是管理系统的开发和维护,所以程序在开发人力、财力上要求不高,而且此系统相对简单,开发周期短,本系统实现后,有利于现代化教育,在经济方面具有可行性[15]。
2.1.4 法律可行性
此在线考试系统是自己设计和开发的系统,其开发软件、平台、数据库,均采用用的是正版、开源软件系统,因而这个系统的研制和设计,不会侵害他人的合法权益,不会存在侵权问题,在法律上完全具有可行性[15]。
综上所述,在线考试评价系统在各个方面都具有很高的可行性,完全可以进行全面开发。
2.2 技术需求分析
Spring+Struts2 +Hibernate集成框架简称SSH,是较流行的web开发框架,分为三层:表示层、业务逻辑层、数据持久层,通过Spring做整体管理,Struts2框架实现对业务逻辑层的控制,Hibernate框架支持数据持久层,能够在短时间内开发出可复用性高、整体结构清晰简洁、维护容易的应用程序。SSH实现的具体流程是:根据功能需求分析设计相应的在线考试系统模型,将这些模型转变为Java的对象,再通过DAO(Data Access Objects)的基本接口和Hibernate的DAO具体实现, DAO类的存在实现了数据库和Java类之间的交互,最后通过Spring实现对系统整体业务的管理以及整体的管理框架[16]。
Spring框架中使用了IOC和AOP思想,提供了注入容器,实现了对DAO和ORM的支持。Struts2实际上是一个mvc的应用框架,通过Struts2d的配置文件可以分离视图和模型,使得系统的逻辑设计清晰、简单。Hibernate是一个“对象和关系映射”的持久化框架,实现数据瞬时态与持久态间的相互转换,减少了系统开发工作量,实现了JDBC的轻量级的封装[17]。
2.3系统需求分析
本系统的设计和开发,需要充分分析了不同用户的使用需求,考虑不同用户的使用需求,设计了不同的操作流程,同时兼顾用户的计算机使用水平和未来持续开发的需求,为系统开发提供技术方向和开发路线。系统设计需要全面兼顾系统功能、通用性、安全性、可靠性、可扩展性等等,运用成熟的计算机技术,设计了人性化、简单直观的界面,处理速度快,安全性高和保密性强,满足了不同用户的需求,同时防止非法用户的登录,且便于后期维护。
2.3.1 学生模块
1,参加考试,还可以通过查询关键字参加考试。
2,能够看见自己各科的分数。
3,能够查看相关的考试信息。
2.3.2 教师模块
1,能够对题库进行管理,实现增加试题、修改试题等操作。
2,对已经批阅过的学生考试进行成绩分析。
3,实现教师自动生成考卷的功能,同时也可以管理试卷。
4,实现批阅试卷,成绩保存功能,减轻教师工作量。
2.3.3 管理员模块
1,发布考试、考务信息,通知考试时间,考试安排。
2,维护教师和学生的基本信息,对这些基本信息进行修改、增删。
3,管理管理员基本信息。
第3章 系统设计
3.1 开发工具及技术
3.1.1 Java语言和MyEclipse
为了保证安全性,以及功能的完整性和可扩展性,采用java语言。由于开源这一特点,Java语言逐渐受到了众多公司和编程人员的喜爱,已成为计算机编程语言中使用非常多,并且影响巨大的语言之一,广泛地应用在各种各样的系统开发中[18]。
MyEclipse是一款基于eclipse的Java开发工具,对各种开源工具均提供良好的支持,功能强大,模块化设计,通过添加合适的插件,实现各种系统需要的功能。通过MyEclipse可以和Tomcat等web容器相联合,直接与数据库进行交互,这极大的方便了系统的开发、部署、调试等等,从而提高程序员的工作效率。MyEclipse还能隔离后续插件的安装和功能的扩展,不影响系统其他功能的扩展,带来系统的巨大变化[20-23]。
3.1.2 Mysql和Navicat
数据库使用开源的Mysql,Mysql由瑞典AB公司开发,是最流行的关系型数据库管理系统之一,是一个多用户、多线程数据库服务器,拥有强大的功能、操作简单、管理方便、运行较快、多线程、可靠安全、完全网络化、跨平台性、稳定性高等特点,适合Web站点和应用软件的数据库后端的开发和使用。其底层采用C/ C++语言进行编写,并为Java等语言的API,保证了源代码的可移植性。由于Mysql数据库开放源代码,使用它的总体开发成本极低,且开发人员可以同时参加Mysql的开发,同时使用Mysql关系数据库[27]。为了使数据库系统能够正常运行,相关人员进行的管理工作,可以建立数据表,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性,增加了数据库的处理速度,同时提高了使用灵活性[31]。
Navicat for mysql是一款常用的Mysql图形化数据库工具,实现了数据库的可视化管理、报告以及监控等等功能。通过Navicat软件,可以方便简单的管理后台数据库,如数据的修改,数据表的管理、数据的存储、甚至包括视图等,还可以连接到其他数据库。此外该软件简洁明了的图形化可视化界面工具降低了数据库管理和使用的难度,提高管理效率,极大的节约了软件开发成本[31]。
3.1.3 Tomcat和JSP
Tomcat是一款开源的软件项目,属于轻量级服务器。Tomcat 支持Servlet 和JSP 规范,可以利用它响应HTML的请求,为HTML提供页面服务,具有性能稳定,技术先进、设计规范、免费等优点,受到许多Java开发者的钟爱,也获得了许多软件开发商的认同,成为目前比较流行的Web 应用服务器。本系统使用的服务器为tomcat,具有良好的维护性和使用性[32]。
JSP全称为Java Server Pages,是一种动态网页技术,由sun公司和许多公司一起建立的一种动态网页技术。由此技术开发的web应用程序可以在不同系统上使用,具有跨平台性,并且面向对象,具有简单易用,安全可靠等特点[32]。
3.2 系统架构
Mvc(Model+View+Controller)设计模式将系统抽象成:表现层、业务逻辑层、数据持久层,实现动态的开发应用程序,使程序后续的维护容易,提高代码的重复率,具有良好的跨平台性,该设计模式优化了程序的复杂度,使得系统结构直观明了,各个部分具有其对应的不同功能[19]。
图3.1 mvc设计模式图
如上图所示,模型(Model)能够与数据库之间进行交互,即不依赖“表现层”,也不依赖“控制器”;表现层(View)将数据库的内容直观地展现给用户,此层与程序的逻辑设计无关;控制器(Controller)的作用是用来控制不同层面之间关系,并且对事件进行响应[19]。
根据系统的设计分析和功能需求,和MVC设计模式,设计了系统的基本体系框架结构,从逻辑上划分,该系统可以分为三层:数据库服务层,功能模块层、用户使用界面层。其中用户使用界面层位于客户机端,则功能模块层和数据库服务层位于远端的服务器[27]。
图3.2 总体系统设计
一,用户使用界面层是用户直接与系统进行交互的界面,建立了用户和应用系统之间的直接交互关系,用户可以通过符合条件的任意的浏览器进行操作,完成用户和系统之间的基本操作,实现数据信息的输入和输出,本层的设计主要是进行用户的界面设计。
二、功能模块层是本系统的核心,简单的在逻辑上讲系统分成了登录模块、学生模块、教师模块和管理员模块,每个模块具体在实际过程中交互,此层实现了系统功能的具体处理。
三、数据库服务层,主要存储了用户的个人信息,班级情况,教师信息,试题库,试卷库,考务公告信息等等信息,为系统和用户之间提供了数据交互的平台。
3.3 系统模块设计
系统操作流程为:打开系统相应的网址,进入系统登录界面;通过验证后,根据用户类型进入不同的操作界面,执行相应的功能。在本节,根据系统功能分析,对各模块进行设计。
3.3.1管理员模块
通过登录界面输入正确的管理员账号和密码,完成登录后,成功进入管理员界面。在管理员功能界面的导航栏的功能菜单中,实现管理员的功能,主要包括考试公告、基本信息管理、系统管理。考试公告管理主要实现考试公告信息的添加,修改,删除等操作;基本信息管理,实现教师信息,学生信息和试题类型等信息的管理;系统管理,实现对管理员信息的管理和系统帮助,例如密码的修改。功能结构图如下:
图3.3 管理员功能图
3.3.2教师模块
通过登录界面输入正确的教师账号和密码,完成登录后,成功进入对应的教师界面。在教师功能界面的导航栏的功能菜单中,实现阅卷管理功能,题库管理功能,试卷管理功能和成绩分析功能。在阅卷功能模块中,实现了对学生试卷的评阅功能,教师可以对学生的考试试卷和考试成绩进行管理;题库管理功能模块,可以对已存在的试题进行管理,例如对试题的答案进行修改,还可以增加试题;试卷管理功能模块,可以实现试卷的自动生成和手动生成两种方式的试卷添加,同时可以规定考试时间,此外还可以添加需要参加考试的对象(学生或者班级),此模块还可以管理已生成的试卷,通过此功能可以令教师查看已有试卷中的试题;成绩分析功能模块,可以将学生的成绩形成图表,更直观的分析学生的学习状况。其功能结构图如下:
图3.4 教师功能图
3.3.3学生模块
通过登录界面输入正确的学生账号和密码,学生登陆成功后,进入相应的学生功能的界面,具有参加考试,成绩查询,公告查看三个主要功能。在参加考试模块中,学生能够查看自己考试的科目,选择考试,跳转到该考试的试卷界面,进行作答,该页面实现了考试计时,显示试题数量、试题分值等信息,做答完题或者到达考试时间,学生可以主动或被动提交试卷。完成考试以后,学生可以查询到已完成的考试,还可以查看自己的试卷,和考试成绩。学生还可以查看考试公告,及时掌握考试安排。
图3.5 学生考试时序图
在线考试系统中,学生参加考试的时序图表示了学生参加考试的流程,通过上图可以看出学生参加考试,需要先通过考试界面请求考试、发送考试,后台考试管理接受考试请求,实时返回并在考试界面显示试卷,学生开始在考试界面作答,并且开始考试倒计时,考试界面和数据库后台交互发送答案到后台考试管理,后台考试管理实时保存学生的答案,同时将考试答案保存到服务器中,直到学生完成整个考试的作答,或者考试时间用尽系统自动交卷。如果学生考试的考试过程中断,下次学生登录时,系统会进行判断,获取上次考试的试卷继续作答。学生还可以通过系统下载试卷,查看自己的考试试卷。
3.3.4登陆模块
本系统包含管理员,老师和学生三种用户。在登录界面,不同用户需要选择对应的用户,输入账号和密码,此时系统通过对数据库中用户表和角色表的查询,根据系统查询结果,跳转到不同的用户界面。如果查询数据库失败,则会出现用户名或密码错误的提示。登陆界面的验证功能,保证了在线考试系统的安全性,防止非法登陆,是系统保护的重要手段。用户登陆顺序图如下:
图3.6 用户登陆时序图
用户登陆时序是用户填写登录信息,登录主界面验证用户信息,与后台数据库交互,判别用户类型,最终登陆用户相对应的界面。
3.4 数据库设计
3.4.1逻辑结构设计
数据库在系统起到直观重要的作用,数据库存储了所有的信息,数据库的频繁存取,要求数据库设计必须安全、稳定且并发性高,为此设计了如下数据结构。
1,用户表,用于存储用户的id、用户名、密码、真实姓名、角色id等信息,管理员、教师、学生的基本信息均存储在此表中,通过角色id进行身份信息的确认,其逻辑结构如图:
源码获取 q1494893846