java论文系统-考试监控及阅卷模块的设计与开发_第1页
java论文系统-考试监控及阅卷模块的设计与开发_第2页
java论文系统-考试监控及阅卷模块的设计与开发_第3页
java论文系统-考试监控及阅卷模块的设计与开发_第4页
java论文系统-考试监控及阅卷模块的设计与开发_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SMART系统考试监控及阅卷模块的设计与开发SMART系统考试监控及阅卷模块的设计与开发摘要SMART在线考试评估系统简称“SMART系统”,是基于BROWSER/SERVER(简称B/S)结构的数据库访问模式,采用STRUTSSPRINGHIBERNATE作为平台搭建的框架开发的一套新型智能的远程教育软件。主要用于各中小学的学生考试和教学评估。本论文设计作为SMART项目的一个组成部分,主要实现了考试过程监控和客观题的自动阅卷功能。论文首先介绍了设计中所涉及到的项目背景、开发技术,并构建了系统的总体框架;其次根据中小学的实际情况和远程教育软件项目的需求,详细地进行了数据库设计和系统功能模块设计,制定了各功能模块的流程图;然后采用JAVA编程语言对本论文的设计任务进行编码,并最终实现了对考试过程的监控和对客观题的自动阅卷等功能。通过本模块的应用,可以满足SMART系统的在线考试部分需求,对SMART系统的应用和发展起到一定的促进作用。关键词HIBERNATE;在线考试;考试监控;阅卷THESMARTSYSTEMDESIGNANDIMPLEMENTATIONTHEMODULEOFTHEEXAMINATIONCONTROLSANDPAPERINSPECTIONABSTRACTSMARTONLINEEXAMINATIONANDEVALUATIONSYSTEM,ASSMARTSYSTEMFORSHORTISAKINDOFTHEINTELLIGENTLONGDISTANCEEDUCATIONSOFTWAREWHICHISDEVELOPEDBYTHEFRAMEWORKOFTHESTRUTSSPRINGHIBERNATETHISSYSTEMWILLBEUSEDMAINLYINTHEMIDDLEANDPRIMARYSCHOOLSFOREXAMINATIONANDEVALUATIONASTHEPARTOFTHESYSTEM,ITHASMAINLYREALIZEDSOMEFUNCTIONS,CONTROLLINGTHECOURSEOFEXAMINATIONANDLOOKINGOVERTHEPAPERSAUTOMATICALLYFIRST,THETHESISINTRODUCESTHEBACKGROUNDOFTHEPROJECTANDTHETECHNOLOGYTHATINVOLVEDINTHEPROJECT,ANDTHECONSTRUCTIONOFTHEDEVELOPINGPLATFORMBYACCORDINGTOTHEACTUALCONDITIONSOFTHEELEMENTARYSCHOOLANDMIDDLESCHOOLSECOND,ACCORDINGTOTHEACTUALCONDITIONSOFTHEMIDDLESCHOOLSANDPRIMARYSCHOOLSANDTHEDEMANDOFTHELONGDISTANCEEDUCATIONSOFTWAREPROJECT,THETHESISDESCRIBESTHEDESIGNATIONOFTHEDATABASEANDTHEMODULEOFSYSTEMATICFUNCTIONINDETAILS,ANDTHENMAKESTHEFLOWDIAGRAMOFEVERYFUNCTIONMODULEANDTHENBASEDUPONJAVALANGUAGETOPROGRAMATLASTTHESYSTEMPROVIDESTHEFUNCTIONOFTHEEXAMINATIONCONTROLSANDTHEAUTOMATICOBJECTIVEQUESTIONSINSPECTIONBYTHISMODULEAPPLYING,ITMAYSATISFYTHESMARTSYSTEMDEMAND,ANDPROMOTETHESMARTSYSTEMDEVELOPMENTKEYWORDSHIBERNATEONLINEEXAMINATIONEXAMINATIONCONTROLSPAPERINSPECTION目录论文总页数23页1引言111课题背景112课题目的113课题意义12系统总体设计121系统构架及其相关技术介绍122开发环境及相关技术介绍53系统需求分析731考试监控模块需求分析732阅卷模块需求分析84系统数据库设计841考试监控模块数据库设计842阅卷模块数据库设计105系统功能设计及实现1151考试监控模块设计及实现1152阅卷模块设计及实现176系统测试19结论20参考文献21致谢22声明231引言11课题背景随着计算机软硬件和互联网的发展,将传统的教育产业信息化成为可能。但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。所以拥有一套实用、完善、高效的在线考试评估系统越来越显的重要。这样能更好的方便学校对教学质量的管理,降低成本,提高效率。12课题目的根据目前中小学的具体情况,设计一套符合他们的高效智能的在线考试评估系统(SMART在线考试系统),并为学校、主管部门教学评估、教学质量控制提供决策依据。本课题主要实现该系统的部分功能考试监控及对客观题的自动阅卷,从而减轻了老师的工作量。把更多的精力放入到对学生的教育中。13课题意义SMART在线考试评估系统(简称“SMART系统”)目的是为中小学提供一个公正客观的在线考试、在线评估的智能化平台。考试监控及对客观题的自动阅卷的设计,主要是能够让老师平时繁琐的阅卷以及对整个考试过程的管理中解脱出来,把更多的精力投入到对学生的教育中来;从而大大提高工作效率。与此同时也提高了考试的质量,从而使考试更趋于公正、客观,更加激发学生的学习兴趣。2系统总体设计21系统构架及其相关技术介绍211系统构架本系统是基于BROWSER/SERVER(简称B/S)结构的数据库访问模式,在STRUTSSPRING管理的HIBERNATE作为平台框架搭建具体的SMART在线考试评估系统。采用STRUTSMVC框架主要用于将SMART的数据流和业务流分开,采用HIBERNATE,主要用于更高效率对数据库存取效率及提高项目开发效率。采用SPRING管理的HIBERNATE主要是获得SPRING对HIBERNATE的支持,获得更高的开发效率和更高的HIBERNATE操作性能。并能获得SPRING相关的事务支持。之所以不完全用SPRING框架是考虑项目组的技术水平可能不足以完全驾驭这样的框架规范。所以本系统不属于标准的STRUTSSPRINGHIBERNATE的标准J2EE应用。对于HIBERNATE的数据库IO操作,将采用DAO模式将操作封装至DAO对象中。而将建立专门的业务层,对WEB层及其他子模块或类进行接口。如图21所示图21系统框架结构图212相关技术介绍三层B/S结构介绍B/S结构是真正的三层结构,它以访问WEB数据库为中心,HTTP为传输协议,客户端通过浏览器BROWSER访问WEB服务器和与其相连的后台数据库,我们称之为B/S(BROWSER/SERVER)模式。其三级结构组成如图22所示图22B/S三层结构图图中从左到右,分为三个层次第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。在客户端向指定的WEB服务器提出服务器请求,WEB服务器用HTTP协议把所需文件资料传给用户,客户端接受并显示在WWW浏览器上;第二层WEB服务器是功能层,完成客户的应用功能,即WEB服务器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回WEB服务器,再传至客户端;第三层数据库服务器是数据层。数据库服务器应客户请求独立地进行各种处理。与传统的C/S模式相比,B/S结构把处理功能全部移植到了服务器端,用客户端WEB服务器后台数据库客户端户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。而且使维护任务层次化管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。由以上的分析可知,三层结构也可以理解为增加WEB服务器的C/S模式。STRUTSSTRUTSIS是APACHEJAKARTA项目的一部分,它用JAVASERVLET/JAVASERVERPAGES技术,开发WEB应用程序的开放源码的FRAMEWORK。STRUTS有如下的主要功能1包含一个CONTROLLERSERVLET,能将用户的请求发送到相应的ACTION对象。2JSP自由TAG库,并且在CONTROLLERSERVLET中提供关联支持,帮助开发人员创建交互式表单应用。3提供了一系列实用对象XML处理、通过JAVAREFLECTIONAPIS自动处理JAVABEANS属性、国际化的提示和消息。STRUTS项目的目标是为创建JAVAWEB应用提供一个开放源代码的FRAMEWORK。STRUTSFRAMEWORK的内核是基于例如JAVASERVLETS,JAVABEANS,RESOURCEBUNDLES,和XML,以及各种JAKARTACOMMONS包的标准技术的灵活的控制层。STRUTS提供了它自身的控制器组件,并整合了其他技术,以提供模型和视图。对于模型,同大多数的第三方软件包一样,如HIBERNATE,IBATIS,或者OBJECTRELATIONALBRIDGE,STRUTS能够和标准数据连接技术相结合,如JDBC和EJB。对于视图,STRUTS与JAVASERVERPAGES协同工作,包含JSTL和JSF。SPRINGSPRING框架是一个分层架构,由7个定义良好的模块组成。SPRING模块构建在核心容器之上,核心容器定义了创建、配置和管理BEAN的方式,如图23所示图23SPRING框架的7个模块图组成SPRING框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下核心容器核心容器提供SPRING框架的基本功能。核心容器的主要组件是BEANFACTORY,它是工厂模式的实现。BEANFACTORY使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。SPRING上下文SPRING上下文是一个配置文件,向SPRING框架提供上下文信息。SPRING上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。SPRINGAOP通过配置管理特性,SPRINGAOP模块直接将面向方面的编程功能集成到了SPRING框架中。所以,可以很容易地使SPRING框架管理的任何对象支持AOP。SPRINGAOP模块为基于SPRING的应用程序中的对象提供了事务管理服务。通过使用SPRINGAOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。SPRINGDAOJDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。SPRINGDAO的面向JDBC的异常遵从通用的DAO异常层次结构。SPRINGORMSPRING框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、HIBERNATE和IBATISSQLMAP。所有这些都遵从SPRING的通用事务和DAO异常层次结构。SPRINGWEB模块WEB上下文模块建立在应用程序上下文模块之上,为基于WEB的应用程序提供了上下文。所以,SPRING框架支持与JAKARTASTRUTS的集成。WEB模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。SPRINGMVC框架MVC框架是一个全功能的构建WEB应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、VELOCITY、TILES、ITEXT和POI。HIBERNATEHIBERNATE是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得JAVA程序员可以随心所欲的使用对象编程思维来操纵数据库。HIBERNATE可以应用在任何使用JDBC的场合,既可以在JAVA的客户端程序实用,也可以在SERVLET/JSP的WEB应用中使用,最具革命意义的是,HIBERNATE可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。22开发环境及相关技术介绍221开发环境本设计主要运用JSP语言、HIBERNATE、STRUTS等知识,在WINDOWXP的环境下,采用SQLSERVER2000数据库,用ECLIPSE32MYECLIPSE50TOMCAT55J2SDK15搭建J2EE开发环境进行开发。222相关技术介绍JSP介绍JSPJAVASERVERPAGES是由SUNMICROSYSTEMS公司倡导、许多公司参与一起建立的一种动态网页技术标准,其网址为HTTP/WWWJAVASOFTCOM/PRODUCTS/JSP。在传统的网页HTML文件HTM,HTML中加入JAVA程序片段SCRIPTLET和JSP标记TAG,就构成了JSP网页JSP。WEB服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送EMAIL等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无PLUGIN,无ACTIVEX,无JAVAAPPLET,甚至无FRAME。SQLSERVER2000介绍SQLSERVER2000是建立在SQLSERVER70在可伸缩性、可用性、可管理性和数据仓库成功的基础上,并且引入了针对电子商务的重要新功能。在高性能和企业级可伸缩性领域,SQLSERVER2000设计成利用WINDOWS2000对更多处理器、更大的系统内存的支持,最终达到支持64位硬件平台。在不断提升可用性的努力过程中,SQLSERVER2000采用WINDOWS2000四路群集,提供了大大改进的群集支持。SQLSERVER70已经在可管理性和易用性方面在行业内领先,SQLSERVER2000通过与WINDOWS2000活动目录紧密结合进一步改进了这些功能。而且,SQLSERVER2000还包含对现有管理工具和实用程序的重大改进,并引入更具自我调节和自我管理的引擎功能。通过与OLAP服务、数据转换服务、存储库和英文查询的紧密结合,SQLSERVER70代表了行业内最全面的数据仓库和决策支持平台。SQLSERVER2000继续了这种创新,在整个系统内进行了重要的改进。特别重要的是,SQLSERVER2000关系引擎增加了实质化的视图,改善了在特大型数据库环境中执行复杂查询的性能。同时,SQLSERVER2000引入了新的数据挖掘功能,可自动发现在大量数据之间隐藏的关系并可基于历史数据做出预测。这些数据挖掘功能将要实施,以向最终用户隐藏这种尖端技术的复杂性,并允许开发人员将第三方的数据挖掘产品轻松集成进客户的应用程序中。最后,在电子商务领域,SQLSERVER2000高度集成了对XML和通过WEB访问数据库的支持。SQLSERVER2000按照设计可以为部署和维护强大的、易于管理、支持商务活动的WEB站点提供最好的性能,这些站点可以从事商家和商家之间或商家与客户之间的交易。在寻求一个支持您的电子商务解决方案的数据库时,需要考虑的项目包括可用性、性能、可管理性和价格。ECLIPSE介绍ECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTTOOLS,JDT)。虽然大多数用户很乐于将ECLIPSE当作JAVAIDE来使用,但ECLIPSE的目标不仅限于此。ECLIPSE还包括插件开发环境(PLUGINDEVELOPMENTENVIRONMENT,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)是对ECLIPSE30IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。TOMCAT介绍TOMCAT是一个免费的开源的SERLVET容器,它是APACHE基金会的JAKARTA项目中的一个核心项目,由APACHE,SUN和其它一些公司及个人共同开发而成。由于有了SUN的参与和支持,最新的SERVLET和JSP规范总能在TOMCAT中得到体现。J2SDK介绍J2SDKJDKJRE,J2SDKJAVA2SOFTWAREDEVELOPMENTKITJAVA2软件开发工具包,包括了JAVA编译器和JAVA虚拟器。3系统需求分析需求分析是一切工作的基础,他告诉我们将要做什么。只有当了解了所需要做的任务后,才能对整个系统进行设计。本课题主要实现SMART在线考试系统的部分功能考试过程的监控及对客观题的自动阅卷。31考试监控模块需求分析考试监控模块的设计,主要是实现对学生参加考试的整个过程的设计及老师对学生考试的监视与控制,包括查看学生信息,改变学生考试状态等。学生要参加考试,必须根据学生的相关信息如班级,学号,姓名等以及当前的服务器时间,来查找该生有权限参加的考试信息并显示在页面上。学生通过点击相应的考试,进入到该门考试的答题界面。为了确保考试的有效性和安全性,系统必须设定一下规则1只有学生才能参加考试。2学生在考试过程中,不能同时进行其他课程的考试。3对学生来说,每一门考试只允许考一次;如果已经交卷,系统将会禁止其重新进行考试。如果需要进行补考或者重考,教师可以另外设置一份考卷,让学生进行考试。为防止相邻学生之间可能会出现作弊的情况,要求在学生答题界面生成的题目要随机排序。并且答题页面要禁止实用复制和右键功能。考虑到学生答题过程中有可能会出现断线、死机、电脑故障等问题或者是要返回已经做过的题目,要实现对学生做了的题目答案进行实时保存。当学生要查看已经做过的题目时,要把题目的答案回调在页面上。监控端主要涉及到对学生考试过程的管理。学生登陆系统时,要判断其是迟到还是由于考试过程中异常情况而重登陆。如果是迟到,则该生的考试时间不推迟,如果是由于考试过程中发生异常情况而造成的重登陆,则需要将学生在重登陆系统所浪费的这个时间补偿给学生。学生登陆系统时,都要将信息提交到监控端。监考老师可以通过监控页面直观地看出学生的状态,并且可以改变其中的一个或多个学生的考试状态如重新考试,结束考试等,改变状态后,学生考试界面要出现相应的提示信息。32阅卷模块需求分析传统的手工改卷,工作量既繁重又低效,出错的几率比较高。为了使学生的考试更加趋向于公平公正,本模块主要实现对客观题的自动阅卷(如判断题、多选题、单选题等),来代替传统的老师手工该卷。在学生主动提交考卷、老师强制提交或者是考试结束时间到了自动提交后,要对学生当前的考试进行系统自动阅卷,并统计出学生的各项大题分数和总分,为后面的评估做好基础。学生考试结束后,如果试卷的组成都是客观题,则学生可以马上查看自己的得分。4系统数据库设计数据库设计也是一个很重要的环节。设计一个合理的数据库,能够让程序员在写代码的时候有很强的逻辑性,而不再为了理清数据库表间的关系浪费大量的时间和精力。在以后的系统运行中,数据库也担当着重要的角色,不合理的数据库往往是成为一个系统的瓶颈。41考试监控模块数据库设计此模块主要涉及到的数据库表有如下几张学生用户表表41学生用户表SMART_STUDENT学生用户表SMART_STUDENT字段名称数据类型是否是主键是否是外键是否可NULL备注STUDENT_IDDECIMAIL18,0YESNONO自增IDSTUDENT_NOVARCHAR50NONONO学生NOUINVARCHAR20NONONOUINSTUDENT_NAMEVARCHAR50NONONO学生姓名PROVINCE_NOVARCHAR50NONOYES省CITY_NOVARCHAR50NONOYES市COUNTY_NOVARCHAR50NONOYES区/县REF_SCHOOL_NOVARCHAR50NONOYES学校REF_GRADE_NOVARCHAR50NONOYES年级REF_CLASS_NOVARCHAR50NONOYES班级REGISTER_IDBIGINTNONOYES注册时的用户IDTELVARCHAR20NONOYES联系电话E_MAILVARCHAR50NONOYESE_MAIL地址ADDRESSVARCHAR100NONOYES地址信息REGISTER_DATEDATETIMENONOYES注册时间RECORD_NUMBERINTEGERNONONO版本控制REMARKVARCHAR100NONOYES备注班级表表42班级表SMART_CLASS班级表SMART_CLASS字段名称数据类型是否是主键是否是外键是否可NULL备注CLASS_IDUNIQUEIDENTIFIERYESNONO全球唯一码CLASS_NAMEVARCHAR50NONONO班级名字CLASS_NOVARCHAR50NONONO班级编号CLASS_NOVARCHAR2500NONOYES班级描述LENGTHINTEGERNONOYES编号长度LASTCLASS_NOVARCHAR50NONOYES上一级别编号RULECLASS_NAMEVARCHAR50NONOYES设置的名称LASTNAMEVARCHAR50NONOYES上级别名称NEXTNAMEVARCHAR50NONOYES下级别名称RECORD_NUMBERINTEGERNONONO版本控制REMARKVARCHAR100NONOYES备注考试监控表表43考试监控表SMART_EXAM_CONTROL考试监控表SMART_EXAM_CONTROL字段名称数据类型是否是主键是否是外键是否可NULL备注CONTROL_IDUNIQUEIDENTIFIERYESNONO全球唯一码EXAM_NAMEVARCHAR1000NONONO考试名称STUDENT_NOVARCHAR50NONONO学生NOSTUDENT_NAMEVARCHAR20NONONO学生姓名CLASS_NOVARCHAR50NONONO学生所在班级号IPVARCHAR50NONOYES登陆IPSTUDENT_STATEVARCHAR20NONONO学生状态NOW_TIMEDARETIMENONONO写入时间START_TIMEDARETIMENONONO考试开始时间END_TIMEDARETIMENONONO考试结束时间EXAM_DELAYDARETIMENONONO考试时长LANDING_TIMEDARETIMENONONO登陆考试时间SUBMIT_TIMEDARETIMENONONO提交考试时间EXAM_TATEVARCHAR50NONONO考试状态RECORD_NUMBERINTEGERNONONO版本控制REMARKVARCHAR100NONOYES备注42阅卷模块数据库设计此模块主要涉及到的数据库表有考试临时表表44考试临时表TEMP_SMART_EXAM考试临时表TEMP_SMART_EXAM字段名称数据类型是否是主键是否是外键是否可NULL备注EXAM_TEMP_IDUNIQUEIDENTIFIERYESNONO全球唯一码EXAM_PAPER_NOUNIQUEIDENTIFIERNONONO试卷号EXAM_PAPER_QUESTION_NOVARCHAR50NONONO试题号EXAM_NAMEVARCHAR50NONONO考试名称STUDENT_NOVARCHAR50NONONO学生NOSTUDENT_NAMEVARCHAR20NONONO学生姓名ANSWERVARCHAR50NONOYES试题答案RECORD_NUMBERINTEGERNONONO版本控制REMARKVARCHAR100NONOYES备注考试结果表表45考试结果表SMART_EXAM_RESULT考试结果表SMART_EXAM_RESULT字段名称数据类型是否是主键是否是外键是否可NULL备注SMART_EXAM_RESULT_IDUNIQUEIDENTIFIERYESNONO全球唯一码EXAM_PAPER_NOUNIQUEIDENTIFIERNOYESNO试卷号EXAM_PAPER_QUESTION_NOUNIQUEIDENTIFIERNOYESNO试题号EXAM_NAMEVARCHAR50NONONO考试名称STUDENT_NOUNIQUEIDENTIFIERNOYESNO学生NOSTUDENT_NAMEVARCHAR20NONONO学生姓名ANSWERVARCHAR50NONOYES试题答案IS_RIGHTINTEGERNONOYES是否正确SCOREFLOATNONOYES试题得分RECORD_NUMBERINTEGERNONONO版本控制REMARKVARCHAR100NONOYES备注考试结果统计表表46考试结果统计表SMART_EXAM_STAT_RESULT考试结果统计表SMART_EXAM_STAT_RESULT字段名称数据类型是否是主键是否是外键是否可NULL备注SMART_EXAM_STAT_RESULT_IDUNIQUEIDENTIFIERYESNONO全球唯一码EXAM_PAPER_NOUNIQUEIDENTIFIERNOYESNO试卷号EXAM_NAMEVARCHAR50NONONO考试名称STUDENT_NOUNIQUEIDENTIFIERNOYESNO学生NOSTUDENT_NAMEVARCHAR20NONONO学生姓名SINGLE_CHOICE_SCOREFLOATNONOYES单选题得分MULTI_CHOICE_SCOREFLOATNONOYES多选题得分JUDGEMENT_SCOREFLOATNONOYES判断题得分SCORE_TOTALFLOATNONOYES总分RECORD_NUMBERINTEGERNONONO版本控制REMARKVARCHAR100NONOYES备注5系统功能设计及实现51考试监控模块设计及实现考试监控模块的设计,是指对整个考试过程及考试过程中发生的一些事件进行监视和控制。总体流程如下1学生在点击参加考试后,通过对学生所在的班级NO的判断,查找出所有该班有权限参加的考试,再通过发卷时间与服务器当前时间的比对,在页面上显示出符合该生的考试信息。图51学生考试信息图主要实现代码通过用户登陆时写入SESSION的用户类型,判断是否是学生用户。如果是,则通过用户ID查找到该用户对应的班级NO,再通过班级NO查找对应的符合该班级的考试信息。/得到用户登陆是存在SESSION中的用户类型及用户IDAUTHORIZATIONUSERAUTHORIZATIONREQUESTGETSESSIONGETATTRIBUTECONSTANTSUSER_KEY/用户IDLONGUSERIDUSERGETLOGININFOGETUSERID/用户类型STRINGUSERTYPEUSERGETLOGININFOGETTYPEMAPPARAMSNEWHASHMAPSMARTSTUDENTENTITYNULL/判断该用户如果是学生类型,则将USERID传到后台,通过SMARTSTUDENT试题得到相关学生信息IFUSERTYPEEQUALSUSERTYPESTUDENTPARAMSPUT“STUID“,USERIDENTITYSMARTSTUDENTTHISCALLNEWCARRIERPARAMS,BUSINESSCONSTANTSPCM_USER_BUSINESS,“LOADSTUDENT“/得到学生所在班级NOSTRINGCLASSNOENTITYGETCLASSNOPARAMSNEWHASHMAP/通过班级NO查找符合该班的考试信息PARAMSPUT“CLASSNO“,CLASSNOLISTRESULTLISTTHISCALLNEWCARRIERPARAMS,BUSINESSCONSTANTSEXAM_OPTION_BUSINESS,“SEARCHEXAM“比对服务器时间与考试发卷时间及考试结束时间,如果服务器时间早于发卷时间或者迟于考试结束时间,则不显示该门的考试信息。/调用DATETIMEGAPSTRINGHEADDATETIME,STRINGTAILDATETIME函数,返回两个日期时/间字符串之间的差,日期尾减日期头,以秒为单位。如果值为负数,说明日期头大于日/期尾,返回的格式为“LONG”。SMARTEXAMSMARTEXAMSMARTEXAMRESULTGETI/得到考试发卷时间STRINGSENDTIMESMARTEXAMGETSENDTIMETOSTRING/得到考试结束时间STRINGENDTIMESMARTEXAMGETENDTIMETOSTRING/格式化时间DATEFORMATTIMENEWSIMPLEDATEFORMAT“YYYYMMDDHHMMSS“/获取服务器当前时间STRINGNOWTIMETIMEFORMATNEWDATEHEADDATETIME日期头格式为19991010121212TAILDATETIME日期尾格式为19991010121212/将当前时间与考试发卷时间比较LONGSENDDATEUTILGETDATETIMEGAPSENDTIMETOSTRING,NOWTIMETOSTRING/将当前时间与考试结束时间比较LONGENDDATEUTILGETDATETIMEGAPENDTIMETOSTRING,NOWTIMETOSTRINGIFSEND0ELSE/如果当前时间在发卷时间和考试结束时间内,则将SMARTEXAM内的元素写入到RESULTLISTRESULTLISTADDSMARTEXAM/写入SESSIONREQUESTGETSESSIONSETATTRIBUTE“RESULTLIST“,RESULTLIST2学生通过点击对应的考试进入考试界面(此时将学生的信息,如姓名、学号、登陆时间、登陆IP等写入监控表),进行答题。图52学生考试答题图学生考试过程中要定时的获取服务器时间比如10秒,再将该时间写入监控表,服务器端也要每隔一段时间去读取监控表内的该时间,如果该时间很久没有刷新,则说明此时考试端可能出现了异常情况(如掉线、死机等)。这样就方便管理员去管理学生考试。流程图如下用户考试端获取服务器时间并写监控表流程图用户考试端是否在考试时间内读取服务器时间YESNO考试结束开始考试写入监控表图53用户考试端获取并写监控表流程图用户监控端读取监控表流程图用户监控端读取监控表是否在考试时间内YESNO考试结束开始监控返回处理结果图54用户监控端读取监控表流程图3监控端监考老师可以选择一个或多个班级进行监控。通过选择班级后,将这些班级的所有参加当前考试的学生信息罗列出来,监考老师可以对学生进行相应的操作。具体实现监考老师可以直接选择要监控的班级,或者也可以通过年级查询先过滤一些年级再进行操作。点击确定后跳到对应班级的所有学生的监控页面。图55用户监控端班级列表图监考老师可以实时获得各个学生的考试状态。也可以对某个或多个学生进行对应的考试操作,如让他们重新考试或者是结束考试等。图56用户监控端监控页面图用户监控端改变考试状态流程图用户监控端是否在考试时间内YESYESNO是否改变学生考试状态NO考试结束写入监控表开始监控图57用户监控端改变考试状态流程图用户考试端获取考试状态流程图用户考试端读取监控表是否在考试时间内YESNO状态是否改变YESNO返回处理结果考试结束开始考试图58用户考试端获取考试状态流程图具体实现方法/创建XMLHTTPREQUEST类VARXMLHTTPFUNCTIONCREATEXMLHTTPREQUESTOBJECTIFWINDOWACTIVEXOBJECTXMLHTTPNEWACTIVEXOBJECT“MICROSOFTXMLHTTP“ELSEIFWINDOWXMLHTTPREQUESTXMLHTTPNEWXMLHTTPREQUEST/向服务器发送请求FUNCTIONSTARTREQUESTURL,FUNCTIONNAME/URL为要执行的在ACTION中的更新方法VARURL“/EXAMPAGEACTIONDOACTIONUPDATE“CREATEXMLHTTPREQUESTOBJECT/发送请求后的回调函数/GETEXAMSTATE为我要调用的JAVASCRIPT函数名(主要实现对各种状态的处理)XMLHTTPONREADYSTATECHANGEGETEXAMSTATEXMLHTTPOPEN“GET“,URL,TRUE/发送请求并异步执行XMLHTTPSENDNULL/实现的JAVASCRIPT代码FUNCTIONGETEXAMSTATEIFXMLHTTPREADYSTATE4VARSTATEEXAMSTATE0FIRSTCHILDNODEVALUE/对不同的状态进行不同的操作IFSTATEKAOSHIZHONGIFSTATEKAOSHIHOUIFSTATEKAOSHIQIAN/定时调用该函数,时间单位为毫秒WINDOWSETINTERVAL“STARTREQUEST“,10000如老师禁止学生考试,则在学生考试端显示相关的信息。学生确认消息后则自动退出当前考试。图59用户考试端状态被改变后的答题页面52阅卷模块设计及实现在学生主动提交考卷、老师强制提交或者是考试时间到了自动提交后,对存在考试临时表内的学生试题信息进行判断,并将结果存入到考试结果表中。最后将分数进行统计存到考试结果统计表中。其中涉及到的表主要有3张考试临时表,考试结果表和考试结果统计表。关系如图510所示图510阅卷相关表与其他表间的关系图自动阅卷流程如图511所示考试结果统计表考试结果表考试临时表自动阅卷分数统计开始阅卷结束阅卷图511阅卷流程图具体实现/构造实体类PUBLICCLASSSMARTEXAMTEMPEXTENDSPERSISTENCEOBJECTIMPLEMENTSAUDIT,JAVAIOSERIALIZABLE/接口PUBLICCLASSSMARTEXAMTEMPIMPLEXTENDSABSTRACTDAOIMPLEMENTSSMARTEXAMTEMPDAOPUBLICLISTSEARCHSTRINGNO/在BUSINESS中调用PUBLICCLASSSMARTEXAMTEMPBUSINESSEXTENDSBASEBUSINESSPUBLICOBJECTPROCESSSEARCHCARRIERVO/在ACTION中调用PUBLICCLASSEXAMCONTROLACTIONEXTENDSBASEACTIONPUBLICACTIONFORWARDSAVEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONTHISCALLNEWCARRIERMAP2,BUSINESSCONSTANTSPAPER_CHECK_BUSINESS,“SAVEPAPERRESULT“6系统测试依据上述分析和设计资料,经过多次测试,已完成系统所需的功能。系统截图参考上面系统功能设计部分。单元测试在开发系统的过程中,对所有代码的正确性和逻辑行得到一定的检验,暂时看来不存在大的错误。单元测试就是指为了确保我们的软件在运行过程中的正确无误。单元测试任务包括模块接口测试、数据库连接测试等。本系统的单元测试中,使用了ECLIPSE作为测试工具。在测试过程中,我们要对每一个类实现的方法编写一个相应的测试方法。例如下面一个简单方法的用例。PUBLICCLASSEXAMOPTIONIMPLEXTENDSABSTRACTDAOIMPLEMENTSEXAMOPTIONDAO/通过班级NO查找对应的考试PUBLICOBJECTLOADEXAMSTRINGNORETURNTHISLOADSMARTEXAMCLASS,NOPUBLICSTATICVOIDMAINSTRINGARGSEXAMOPTIONIMPLDAONEWEXAMOPTIONIMPLSTRINGNO“18E0F279050C4EB39D575C4385CD0365“/强制转换成LIST类型LISTLIST1LISTDAOLOADEXAMNOITERATORITLIST1ITERATORWHILEITHASNEXTSMARTEXAMSESMARTEXAMITNEXTSTRINGNAMESEGETEXAMNAMEDATESTARTTIMESEGETSTARTTIMEDATEENDTIMESEGETENDTIMESTRINGEXAMDELAYSEGETEXAMDELAYLONGSDATEUTILGETDATETIMEGAP“200705120920001233“,STARTTIMETOSTRING/打印结果,看测试是否成功SYSTEMOUTPRINTLNNAMESYSTEMOUTPRINTLNSTARTTIMESYSTEMOUTPRINTLNENDTIMESYSTEMOUTPRINTLNEXAMDELAYSYSTEMOUTPRINTLNS“分钟“SYSTEMOUTPRINTLNNEWDATEDATEFORMATDATENEWSIMPLEDATEFORMAT“YYYYMMDDHHMMS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论