SMART系统考试监控及阅卷模块的设计与开发论文.docx
《SMART系统考试监控及阅卷模块的设计与开发论文.docx》由会员分享,可在线阅读,更多相关《SMART系统考试监控及阅卷模块的设计与开发论文.docx(29页珍藏版)》请在冰豆网上搜索。
SMART系统考试监控及阅卷模块的设计与开发论文
SMART系统——
考试监控及阅卷模块的设计与开发
摘要
Smart在线考试评估系统(简称“SMART系统”),是基于Browser/Server(简称B/S)结构的数据库访问模式,采用Struts+Spring+Hibernate作为平台搭建的框架开发的一套新型智能的远程教育软件。
主要用于各中小学的学生考试和教学评估。
本论文设计作为Smart项目的一个组成部分,主要实现了考试过程监控和客观题的自动阅卷功能。
论文首先介绍了设计中所涉及到的项目背景、开发技术,并构建了系统的总体框架;其次根据中小学的实际情况和远程教育软件项目的需求,详细地进行了数据库设计和系统功能模块设计,制定了各功能模块的流程图;然后采用JAVA编程语言对本论文的设计任务进行编码,并最终实现了对考试过程的监控和对客观题的自动阅卷等功能。
通过本模块的应用,可以满足SMART系统的在线考试部分需求,对SMART系统的应用和发展起到一定的促进作用。
关键词:
Hibernate;在线考试;考试监控;阅卷
TheSMARTSystem-
DesignandImplementationTheModuleofTheExaminationControlsandPaperInspection
Abstract
Smartonlineexaminationandevaluationsystem,asSMARTSystemforshort;isakindoftheintelligentlong-distanceeducationsoftwarewhichisdevelopedbytheframeworkoftheStruts+Spring+Hibernate.Thissystemwillbeusedmainlyinthemiddleandprimaryschoolsforexaminationandevaluation.Asthepartofthesystem,ithasmainlyrealizedsomefunctions,controllingthecourseofexaminationandlookingoverthepapersautomatically.First,thethesisintroducesthebackgroundoftheprojectandthetechnologythatinvolvedintheproject,andtheconstructionofthedevelopingplatformbyaccordingtotheactualconditionsoftheelementaryschoolandmiddleschool.Second,accordingtotheactualconditionsofthemiddleschoolsandprimaryschoolsandthedemandofthelong-distanceeducationsoftwareproject,thethesisdescribesthedesignationofthedatabaseandthemoduleofsystematicfunctionindetails,andthenmakestheflowdiagramofeveryfunctionmodule;andthenbaseduponJAVAlanguagetoprogram.Atlastthesystemprovidesthefunctionoftheexaminationcontrolsandtheautomaticobjectivequestionsinspection.Bythismoduleapplying,itmaysatisfytheSmartsystemdemand,andpromotetheSmartsystemdevelopment.
Keywords:
Hibernate;onlineexamination;examinationcontrols;paperinspection
目录
论文总页数:
23页
1引言1
1.1课题背景1
1.2课题目的1
1.3课题意义1
2系统总体设计1
2.1系统构架及其相关技术介绍1
2.2开发环境及相关技术介绍5
3系统需求分析7
3.1考试监控模块需求分析7
3.2阅卷模块需求分析8
4系统数据库设计8
4.1考试监控模块数据库设计8
4.2阅卷模块数据库设计10
5系统功能设计及实现11
5.1考试监控模块设计及实现11
5.2阅卷模块设计及实现17
6系统测试19
结论20
参考文献21
致谢22
声明23
1引言
课题背景
随着计算机软硬件和互联网的发展,将传统的教育产业信息化成为可能。
但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
所以拥有一套实用、完善、高效的在线考试评估系统越来越显的重要。
这样能更好的方便学校对教学质量的管理,降低成本,提高效率。
课题目的
根据目前中小学的具体情况,设计一套符合他们的高效智能的在线考试评估系统(SMART在线考试系统),并为学校、主管部门教学评估、教学质量控制提供决策依据。
本课题主要实现该系统的部分功能——考试监控及对客观题的自动阅卷,从而减轻了老师的工作量。
把更多的精力放入到对学生的教育中。
课题意义
SMART在线考试评估系统(简称“SMART系统”)目的是为中小学提供一个公正客观的在线考试、在线评估的智能化平台。
考试监控及对客观题的自动阅卷的设计,主要是能够让老师平时繁琐的阅卷以及对整个考试过程的管理中解脱出来,把更多的精力投入到对学生的教育中来;从而大大提高工作效率。
与此同时也提高了考试的质量,从而使考试更趋于公正、客观,更加激发学生的学习兴趣。
2系统总体设计
系统构架及其相关技术介绍
2.1.1系统构架
本系统是基于Browser/Server(简称B/S)结构的数据库访问模式,在struts+spring管理的hibernate作为平台框架搭建具体的Smart在线考试评估系统。
采用strutsMVC框架主要用于将Smart的数据流和业务流分开,采用hibernate,主要用于更高效率对数据库存取效率及提高项目开发效率。
采用spring管理的hibernate主要是获得Spring对Hibernate的支持,获得更高的开发效率和更高的Hibernate操作性能。
并能获得Spring相关的事务支持。
之所以不完全用Spring框架是考虑项目组的技术水平可能不足以完全驾驭这样的框架规范。
所以本系统不属于标准的Struts+Spring+Hibernate的标准J2EE应用。
对于Hibernate的数据库IO操作,将采用DAO模式将操作封装至DAO对象中。
而将建立专门的业务层,对WEB层及其他子模块或类进行接口。
如图2-1所示:
图2-1系统框架结构图
2.1.2相关技术介绍
●三层B/S结构介绍
B/S结构是真正的三层结构,它以访问WEB数据库为中心,HTTP为传输协议,客户端通过浏览器(Browser)访问WEB服务器和与其相连的后台数据库,我们称之为B/S(Browser/Server)模式。
其三级结构组成如图2-2所示:
客户端
客户端
后台数据库
WEB服务器
图2-2B/S三层结构图
图中从左到右,分为三个层次:
第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。
在客户端向指定的Web服务器提出服务器请求,Web服务器用HTTP协议把所需文件资料传给用户,客户端接受并显示在WWW浏览器上;
第二层Web服务器是功能层,完成客户的应用功能,即Web服务器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回Web服务器,再传至客户端;
第三层数据库服务器是数据层。
数据库服务器应客户请求独立地进行各种处理。
与传统的C/S模式相比,B/S结构把处理功能全部移植到了服务器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。
而且使维护任务层次化:
管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。
由以上的分析可知,三层结构也可以理解为增加WEB服务器的C/S模式。
●Struts
Strutsis是ApacheJakarta项目的一部分,它用JavaServlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。
Struts有如下的主要功能:
1.包含一个controller servlet,能将用户的请求发送到相应的Action对象。
2.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发人员创建交互式表单应用。
3.提供了一系列实用对象:
XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。
Struts项目的目标是为创建Javaweb应用提供一个开放源代码的framework。
Strutsframework的内核是基于例如JavaServlets,JavaBeans,ResourceBundles,和XML,以及各种JakartaCommons包的标准技术的灵活的控制层。
Struts提供了它自身的控制器组件,并整合了其他技术,以提供模型和视图。
对于模型,同大多数的第三方软件包一样,如Hibernate,iBATIS,或者ObjectRelationalBridge,Struts能够和标准数据连接技术相结合,如JDBC和EJB。
对于视图,Struts与JavaServerPages协同工作,包含JSTL和JSF。
●Spring
Spring框架是一个分层架构,由7个定义良好的模块组成。
Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式,如图2-3所示:
图2-3Spring框架的7个模块图
组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。
每个模块的功能如下:
∙核心容器:
核心容器提供Spring框架的基本功能。
核心容器的主要组件是BeanFactory,它是工厂模式的实现。
BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
∙Spring上下文:
Spring上下文是一个配置文件,向Spring框架提供上下文信息。
Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。
∙SpringAOP:
通过配置管理特性,SpringAOP模块直接将面向方面的编程功能集成到了Spring框架中。
所以,可以很容易地使Spring框架管理的任何对象支持AOP。
SpringAOP模块为基于Spring的应用程序中的对象提供了事务管理服务。
通过使用SpringAOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。
∙SpringDAO:
JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。
异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。
SpringDAO的面向JDBC的异常遵从通用的DAO异常层次结构。
∙SpringORM:
Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatisSQLMap。
所有这些都遵从Spring的通用事务和DAO异常层次结构。
∙SpringWeb模块:
Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。
所以,Spring框架支持与JakartaStruts的集成。
Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
∙SpringMVC框架:
MVC框架是一个全功能的构建Web应用程序的MVC实现。
通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText和POI。
●Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
开发环境及相关技术介绍
2.1.3开发环境
本设计主要运用JSP语言、Hibernate、Struts等知识,在WindowXp的环境下,采用SQLServer2000数据库,用Eclipse3.2+MyEclipse5.0+Tomcat5.5+j2sdk1.5搭建J2EE开发环境进行开发。
2.1.4相关技术介绍
●JSP介绍
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其网址为email等等,这就是建立动态网站所需要的功能。
所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无JavaApplet,甚至无Frame。
●SQLServer2000介绍
SQLServer2000是建立在SQLServer7.0在可伸缩性、可用性、可管理性和数据仓库成功的基础上,并且引入了针对电子商务的重要新功能。
在高性能和企业级可伸缩性领域,SQLServer2000设计成利用Windows2000对更多处理器、更大的系统内存的支持,最终达到支持64位硬件平台。
在不断提升可用性的努力过程中,SQLServer2000采用Windows2000四路群集,提供了大大改进的群集支持。
SQLServer7.0已经在可管理性和易用性方面在行业内领先,SQLServer2000通过与Windows2000活动目录紧密结合进一步改进了这些功能。
而且,SQLServer2000还包含对现有管理工具和实用程序的重大改进,并引入更具自我调节和自我管理的引擎功能。
通过与OLAP服务、数据转换服务、存储库和英文查询的紧密结合,SQLServer7.0代表了行业内最全面的数据仓库和决策支持平台。
SQLServer2000继续了这种创新,在整个系统内进行了重要的改进。
特别重要的是,SQLServer2000关系引擎增加了实质化的视图,改善了在特大型数据库环境中执行复杂查询的性能。
同时,SQLServer2000引入了新的数据挖掘功能,可自动发现在大量数据之间隐藏的关系并可基于历史数据做出预测。
这些数据挖掘功能将要实施,以向最终用户隐藏这种尖端技术的复杂性,并允许开发人员将第三方的数据挖掘产品轻松集成进客户的应用程序中。
最后,在电子商务领域,SQLServer2000高度集成了对XML和通过Web访问数据库的支持。
SQLServer2000按照设计可以为部署和维护强大的、易于管理、支持商务活动的Web站点提供最好的性能,这些站点可以从事商家和商家之间或商家与客户之间的交易。
在寻求一个支持您的电子商务解决方案的数据库时,需要考虑的项目包括:
可用性、性能、可管理性和价格。
●Eclipse介绍
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++、COBOL和Eiffel等编程语言的插件已经可用,或预计会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于Eclipse的应用程序的突出例子是IBM的WebSphereStudioWorkbench,它构成了IBMJava开发工具系列的基础。
例如,WebSphereStudioApplicationDeveloper添加了对JSP、servlet、EJB、XML、Web服务和数据库访问的支持。
●MyEclipse介绍
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对Eclipse3.0IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
●Tomcat介绍
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
●j2sdk介绍
J2SDK=JDK+JRE,J2SDK(Java2SoftwareDevelopmentKit)→JAVA2软件开发工具包,包括了Java编译器和Java虚拟器。
3系统需求分析
需求分析是一切工作的基础,他告诉我们将要做什么。
只有当了解了所需要做的任务后,才能对整个系统进行设计。
本课题主要实现SMART在线考试系统的部分功能--考试过程的监控及对客观题的自动阅卷。
3.1考试监控模块需求分析
考试监控模块的设计,主要是实现对学生参加考试的整个过程的设计及老师对学生考试的监视与控制,包括查看学生信息,改变学生考试状态等。
学生要参加考试,必须根据学生的相关信息(如班级,学号,姓名等)以及当前的服务器时间,来查找该生有权限参加的考试信息并显示在页面上。
学生通过点击相应的考试,进入到该门考试的答题界面。
为了确保考试的有效性和安全性,系统必须设定一下规则:
(1).只有学生才能参加考试。
(2).学生在考试过程中,不能同时进行其他课程的考试。
(3).对学生来说,每一门考试只允许考一次;如果已经交卷,系统将会禁止其重新进行考试。
如果需要进行补考或者重考,教师可以另外设置一份考卷,让学生进行考试。
为防止相邻学生之间可能会出现作弊的情况,要求在学生答题界面生成的题目要随机排序。
并且答题页面要禁止实用复制和右键功能。
考虑到学生答题过程中有可能会出现断线、死机、电脑故障等问题或者是要返回已经做过的题目,要实现对学生做了的题目答案进行实时保存。
当学生要查看已经做过的题目时,要把题目的答案回调在页面上。
监控端主要涉及到对学生考试过程的管理。
学生登陆系统时,要判断其是迟到还是由于考试过程中异常情况而重登陆。
如果是迟到,则该生的考试时间不推迟,如果是由于考试过程中发生异常情况而造成的重登陆,则需要将学生在重登陆系统所浪费的这个时间补偿给学生。
学生登陆系统时,都要将信息提交到监控端。
监考老师可以通过监控页面直观地看出学生的状态,并且可以改变其中的一个或多个学生的考试状态(如重新考试,结束考试等),改变状态后,学生考试界面要出现相应的提示信息。
3.2阅卷模块需求分析
传统的手工改卷,工作量既繁重又低效,出错的几率比较高。
为了使学生的考试更加趋向于公平公正,本模块主要实现对客观题的自动阅卷(如判断题、多选题、单选题等),来代替传统的老师手工该卷。
在学生主动提交考卷、老师强制提交或者是考试结束时间到了自动提交后,要对学生当前的考试进行系统自动阅卷,并统计出学生的各项大题分数和总分,为后面的评估做好基础。
学生考试结束后,如果试卷的组成都是客观题,则学生可以马上查看自己的得分。
4系统数据库设计
数据库设计也是一个很重要的环节。
设计一个合理的数据库,能够让程序员在写代码的时候有很强的逻辑性,而不再为了理清数据库表间的关系浪费大量的时间和精力。
在以后的系统运行中,数据库也担当着重要的角色,不合理的数据库往往是成为一个系统的瓶颈。
考试监控模块数据库设计
此模块主要涉及到的数据库表有如下几张:
学生用户表:
表4-1学生用户表(SMART_STUDENT)
学生用户表SMART_STUDENT
字段名称
数据类型
是否是主键
是否是外键
是否可NULL
备注
Student_id
DECIMAIL(18,0)
YES
NO
NO
自增ID
Student_no
VARCHAR(50)
NO
NO
NO
学生NO
Uin
VARCHAR(20)
NO
NO
NO
UIN
student_name
VARCHAR(50)
NO
NO
NO
学生姓名
Province_no
VARCHAR(50)
NO
NO
YES
省
city_no
VARCHAR(50)
NO
NO
YES
市