已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江西先锋软件学院专科毕业论文(计算机专业)在线考试系统论文独创性声明本人声明,所呈交的学位论文系在导师指导下独立完成的研究成果。文中合法应用他人的成果,均已做出明确标注或得到许可。论文内容未包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他证书/学位申请的论文或成果。本文如违反上述声明,愿意承担以下责任后后果:1交回学校授予的毕业证书;2学校可在相关媒体上对本人的行为进行通报;3本文按照学校规定的方式,对因不当取得证书给学校造成的名誉损害,进行公开道歉;4本人负责因论文成果不实产生的法律纠纷。论文作者签名: 日期: 年 月 日江西先锋软件学院外包分院目录摘 要随着教育思想的更新和科学技术的进步,以纸和笔为主要工具的传统考试方式的诸多弊端显露得越来越突出,传统的人工出题、考生考试、人工阅卷、成绩统计评估及试卷分析的考试形式已经不能适应现代考试的需要。在线考试系统的开发与应用正是在这样的背景下出现的。利用在线考试系统,能够实现考试自动化、网络化、以减轻管理人员的负担、提高工作效率、提高考试质量,从而使考试趋于公正、客观。本在线考试系统采用b/s结构模式,基于j2ee平台的多层模型,采用开源框架struts、hibernate以及spring来实现,并在表现层使用jquery类库和extjs框架,使用mysql数据库。本系统主要实现课程管理、题库管理、在线制作试卷、试卷管理、试卷自动评分(客观题部分)、自动交卷、考生管理、成绩管理、权限管理、留言板等功能, 充分利用计算机科学与技术,改变传统的考试操作方式,实现无纸化考试的模式。【关键词】在线考试,j2ee,试卷管理,自动评分abstractwith the educational thinking and scientific and technological progress update to the traditional pen and paper as the main tool for examinations revealed many shortcomings become increasingly prominent, the traditional manual out of question, candidates test, artificial grading, performance assessment and paper statistics analysis of the test format has been unable to meet the needs of modern examinations. online examination system development and application of it is in this context appears. use of online examination system, to achieve test online automation, and to reduce management burden, improve efficiency, improve test quality, so that the test tends to fair and objective.the online examination system using b / s structure mode, multi-layer model based on j2ee platform, using open-source framework struts, hibernate and spring to implement, and in the view layer using the jquery library and the extjs framework, using the mysql database.the system implementation course management, exam management, production-line paper, paper management, paper automatic scores (objective questions in part), automatic carry out an assignment, the candidate management, performance management, rights management, message boards and other functions, full use of computer science and technology, test operation to change the traditional way to achieve paperless examination pattern.【key words】online examination;j2ee;paper management; automatic scoring;ii目录摘 要iabstracti绪 论11 系统概述11.1开发结构11.1.1b/s结构11.1.2b/s的优势11.2主要应用技术11.2.1struts11.2.2hibernate11.2.3spring11.2.4ajax11.2.5jquery11.2.6extjs11.3系统需求分析11.3.1系统功能结构图11.3.2系统功能需求11.3.3系统的故障处理11.4本章小结12 系统设计12.1数据库设计12.1.1mysql数据库概述12.1.2数据库结构设计12.2系统流程设计12.2.1随机抽题12.2.2考试流程13 系统实现13.1数据库相关配置13.1.1数据库连接配置13.1.2spring声明式事物管理配置13.2web前台实现13.2.1定时保存考生答案13.2.2采用extjs设计后台13.3服务器端实现13.3.1采用rbac验证管理员权限13.3.2随机抽题的实现13.3.3客观题自动评分的实现14 系统测试14.1系统运行14.1.1后台管理14.1.2前台应用1结 论1致 谢1参考文献1江西先锋软件学院外包分院error! no text of specified style in document.绪 论随着internet的迅速发展和广泛普及,网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。远程教育成为现代教育技术未来发展的重要方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。internet技术的发展使得考试的技术手段和载体发生了革命性的变化,internet的开放性、分布性的特点和基于internet的巨大的计算能力使得考试突破了时间和空间的限制。与传统考试模式相比,在线考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。对于一些课程来说,随着考生数量的增加,教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。通过internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师的工作强度。传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。在线考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上web数据库技术的利用,大大简化了传统考试的过程。1 系统概述1.1开发结构目前比较流行的两种开发模式分别是c/s结构与b/s结构,本系统采用的是b/s结构。1.1.1b/s结构b/s结构(browser/server结构)结构即浏览器和服务器结构。它是随着internet技术的兴起,对c/s结构的 一种变化或者改进的结构。在这种结构下,用户工作界面是通过www浏览器来实现,极少部分事务逻辑在前端(browser)实现,但是主要事务逻辑在服务器端(server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。以目前的技术看,局域网建立b/s结构的网络应用,并通过internet/intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如lan, wan, internet/intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在java这样的跨平台语言出现之后,b/s架构管理软件更是方便、速度快、效果优。1.1.2b/s的优势目前,软件系统的改进和升级越来越频繁,c/s系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。b/s与c/s处理模式相比,大大简化了客户端,b/s结构只需客户端机器通过操作系统内置的浏览器上网即可,而c/s则需要提供软件安装文件,客户端机器必须安装软件才能运行系统。对于b/s而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么b/s架构的产品优势明显所有的升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如本在线考试系统就需要采用b/s模式,因为其客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。1.2主要应用技术1.2.1strutsstruts最早是作为apache jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高javaserver pages(jsp) 、servlet、标签库以及面向对象的技术水准。mvc即model-view-controller的缩写,是一种常用的设计模式。mvc 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。struts 是mvc的一种实现,它将 servlet和 jsp 标记(属于 j2ee 规范)用作实现的一部分。struts继承了mvc的各项特性,并根据j2ee的特点,做了相应的变化与扩展。采用struts进行开发的好处是系统一定符合mvc设计模式,遵循struts的规则开发,会将系统的表现层、业务逻辑层和dao(data access object)层进行分离,最大限度地降低系统的耦合度。1.2.2hibernatehibernate是一个开放源代码的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库。对象/关系型数据库映射(object/relational mapping,orm)这个术语表示一种技术,用来把对象模型表示的对象映射到基于 sql 的关系模型数据结构中去。hibernate 不仅管理 java 类到数据库表的映射(包括 java 数据类型到 sql 数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时对人工使用 sql 和 jdbc 处理数据的时间。hibernate 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的 95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,hibernate 可能不是最好的解决方案;对于那些在基于 java 的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,hibernate 是最有用的,会大大提高开发效率。在本在线考试系统中,每位考生都有其系别信息及专业信息,若采用传统的面向过程编程,即用sql来检索数据,则需要编写较为复杂的连接查询语句,语句如下:select 学生姓名, d.dept_name 系别, m.major_name 专业 from t_student s inner join t_department d on s.department_id = d.id inner join t_major m on m.department_id = d.id而采用hibernate进行正确的对象-关系映射后,获得相同结果的代码仅仅需要一行:select ,s.departmentname,s.major.majorname from student s所以采用hibernate不仅能够允许代码以面向对象的思想来访问数据库,不再使用复杂的select等sql语句来操作,还能大大提高开发效率。1.2.3springspring是一个轻量级的控制反转(ioc)和面向切面(aop)的容器框架。它是为了解决企业应用开发的复杂性而创建的。并且spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何java应用都可以从spring中受益。spring的主要两个概念如下:l lioc:控制反转spring通过一种称作控制反转(inversion of control)的技术促进了松耦合。ioc的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。其原理是基于oo设计原则的the hollywood principle:dont call us, well call you(别找我,我会来找你的)。也就是说,所有的组件都是被动的(passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。简单的来讲,ioc就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。l laop:面向切面编程aop(aop的全称),是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。aop 的核心构造是切面,它将那些影响多个类的行为封装到可重用的模块中。本系统在进行声明式事务管理时应用到了aop,其优点在本文第三章有简要概述。1.2.4ajaxajax即“asynchronous javascript and xml”(异步javascript和xml) ,是指一种创建交互式网页应用的网页开发技术,可以采用javascript来编写或者使用更方便的类库。传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前后两个页面中的大部分html代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的 响应时间。这导致了用户界面的响应比本地应用慢得多。 与此不同,ajax应用可以仅向服务器发送并取回必需的数据,并在客户端采用javascript处理来自服务器的响应。因此在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以web服务器的处理时间也减少了。 使用ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。本系统中的定时保存答案的功能,就是依靠ajax的此特点,在不刷新考试页面的情况下,将所有已答题的答案保存进数据库中,来应对考试进行时可能会出现意外而导致答案丢失的情况。随着ajax的成熟,一些简化ajax使用方法的类库也相继问世,如接下来要介绍本系统采用的jquery和extjs。1.2.5jqueryjavascript曾经长期被严谨的web开发者当做“玩具”语言,然而在过去数年间,随着人们对ria(rich internet application,富因特网应用)和ajax技术重新燃起兴趣,javascript重获威望。这门语言不得不快速成长,因为客户端开发者已经抛弃剪切和粘贴javascript的方式,转而采用方便快捷、功能完备的javascript库。这些库一次性地解决了跨浏览器的难度,并提供新颖的web开发方式。jquery使得开发人员充分利用了css(cascading style sheet,层叠样式表单)、xhtml(extensible hypertext markup language,可扩展超文本标记语言)及普通javascript知识,去直接操作页面元素,实现更快速的开发。在本在线考试系统中,考生在进行考试时或交卷时,需要提交已答题的所有答案,这就需要对浏览器的dom(document object model)对象进行频繁的操作,所以会出现很多重复代码,而采用jquery后,借助其对javascript优秀的封装,采用“$“符号来代替频繁的document.getelementbyid()操作,并且jquery也对ajax进行了封装,在本系统进行ajax编程时,只需使用$.ajax()等方法即能轻松地建立对服务器的异步访问,即兼顾了javascript对浏览器的兼容问题又极大地简化了程序的编写。1.2.6extjsextjs可以用来开发ria也即富客户端的ajax应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端 ajax框架。因此,可以把extjs用在.net、java、php等各种开发语言开发的应用中。extjs最开始基于yui(yahoo! user interface)技术,由开发人员 jack slocum开发,通过参考java swing等机制来组织可视化组件,无论从ui(user interface)界面上css样式的应用,到数据解析上的异常处理,都可算是一款不可多得的javascript客户端技术的精品。本在线考试系统的后台采用extjs构建,因为其特点是让程序员不用再考虑美工的工作,只需用javascript构建相应的组件即可创建出美观的界面,减轻了开发量,提高开发效率。并且extjs能够和后台服务器无缝结合,可采用json(javascript object notation,一种轻量级的数据交换格式)与服务器进行交换,开发出用户体验较高的ria系统。1.3系统需求分析1.3.1系统功能结构图图:1-1 系统功能结构图1.3.2系统功能需求课程管理:系统应具备对课程进行增删改查的功能,并且此模块能为每个课程设置该课程的知识点,以保证生成的试卷中知识点的平均分配。系统还可设置重点知识点,以确保系统会首先从以上重点知识点来随机抽题。此模块还应允许系统管理员输入本课程的考试时间,考试管理模块可根据设置的时间对考生进行时间约束。考生管理:在系统管理员输入考生的基本信息以及考生需要参加的考试科目(即课程表中的数据),系统应为每个考生自动生成密码,考生能够使用生成的密码登陆考试系统。在考生进行完应考的科目并成功交卷后,系统应能具备对客观题自动评分的功能,且具有一定权限的系统用户能够对试卷中的主观题进行评分,评分结束后系统要将分数保存到考生的信息中,并且能生成一些表格或图像以便考生或教师观看考生的学习情况(如:曲线图,饼图,柱状图)。具有一定权限的系统用户(阅卷教师)应具备对考生的基本信息进行查看、修改和删除等功能。权限管理:为了保护系统数据的完整性,防止一些不具备某些操作权限的用户破坏数据的完整性,系统应具备权限管理。题库管理:系统应具备对单个试题的增、删、改、查的功能,可对题库进行数据备份和数据还原。系统应使管理员能够针对不同题型、不同应用范围及不同科目分别进行维护,并且在自动生成试卷时,能够均匀地分配试题,保证试卷的出题质量。试卷管理:在此模块中,拥有一定权限的系统用户(教师)能进行试卷的生成,系统应具备两种方式来生成试卷:由系统自动生成试卷或由系统用户手动选择题库内的试题来生成试卷。在系统自动生成试卷的功能中,系统用户输入各题型的个数、分数比例和难度比例,如:在操作系统科目的试卷中,选择题10道,占总分的20%,难度比例5:3:2(容易,中等,较难),系统应先从已经设置好的重点知识点中抽取,并最终生成10道选择题,其中5道难度为容易,3道难度为中等,2道难度为较难,每题分值为2分,以保证每份试卷中的每个题型都难易兼顾,并且系统默认重点知识点占试卷的80%,以此确保试卷的质量,提高教师的工作效率。留言管理:考生在用系统进行考试后,可能会有一些对考试系统积极的建议,根据考生的此种需求,系统应具备留言功能,并且教师可以对考生的留言进行回复以及删除无用的留言。考试管理:此模块是对考生在进行考试时的管理,考生可能会在考试时由于紧张或考试注意力过度集中,会忘记考试时间,此系统应该在考试时间结束前若干分钟给予考生提示,考试时间到时为其自动交卷。考生在考试时会有一些误操作,如:未做完题目而点击交卷或直接点击关闭考试系统窗口,系统应该给予考生未完成的提示,并询问考生是否要继续做题或是确认交卷。1.3.3系统的故障处理l 在考试时运行的硬件环境可能会突然断电或网络出现异常,系统应对考生已经回答完毕的题目答案进行备份或存档,确保考生能在环境正常后,能够快速重新进行考试。l 考生在未完成试卷的情况下因操作失误退出考试,系统应及时弹出对话窗口向考生询问是否继续做题或确认交卷。l 在考生考试结束并且考试评分完毕,成绩信息已记入进数据库中,教师不能对考生的成绩信息进行修改或删除,只可对一些基本信息进行修改。1.4本章小结本章主要介绍了本在线考试系统所采用b/s结构,以及本系统使用到的技术:struts,hibernate,spring,jquery,extjs,并把系统的详细需求、软件功能结构图和系统的已知故障处理需求列出,为下面一章系统设计作为参考。2 系统设计2.1数据库设计2.1.1mysql数据库概述mysql名字的来历mysql是一个小型关系型数据库管理系统,开发者为瑞典mysqlab公司,在2008年1月16号被sun公司收购。mysql 被广泛地应用在internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库。2.1.2数据库结构设计表:2-1 系别表(t_department)序号字段名类型字段解释1idint唯一标识2dept_namevarchar(20)系别名称表:2-2 专业表(t_major)序号字段名类型字段解释1idint唯一标识2major_namevarchar(20)专业名称3department_idint所属系别id表:2-3 课程表(t_course)序号字段名类型字段解释1idint唯一标识2course_namevarchar(20)课程名称3paper_countint试卷份数4major_idint所属专业id表:2-4 知识点表(t_key_point)序号字段名类型字段解释1idint唯一标识2key_point_namevarchar(20)知识点名称3descrvarchar(255)知识点描述4is_importantvarchar(1)是否为重点5course_idint所属课程id表:2-5 考生表(t_student)序号字段名类型字段解释1idint唯一标识2namevarchar(10)姓名3student_novarchar(15)学号4passwordvarchar(32)密码5sexvarchar(1)性别6department_idint所属系别id7major_idint所属专业id8last_message_datedatetime上次留言时间9last_exam_scorefloat上次考试分数10last_exam_namevarchar(40)上次考试名称表:2-6 权限表(t_permission)序号字段名类型字段解释1idint唯一标识2permission_namevarchar(30)权限名称3descrvarchar(100)权限描述4permission_actionvarchar(30)授权的action名称5group_idint所属权限组id6is_groupvarchar(1)是否为权限组7group_namevarchar(30)权限组名称表:2-7 角色表(t_role)序号字段名类型字段解释1idint唯一标识2role_namevarchar(20)角色名称3descrvarchar(100)角色描述表:2-8 角色-权限信息表(t_role_permission)序号字段名类型字段解释1idint唯一标识2role_idint所属角色id3permission_idint权限id表:2-9 试题表(t_question)序号字段名类型字段解释1idint唯一标识2contenttext题目内容3selectionavarchar(100)选项a内容4selectionbvarchar(100)选项b内容5selectioncvarchar(100)选项c内容6selectiondvarchar(100)选项d内容7answertext答案8typeint试题类型9difficultyint难度10key_point_idint所属知识点id11course_idint所属课程id表:2-10 试卷表(t_paper)序号字段名类型字段解释1idint唯一标识2paper_namevarchar(40)试卷名称3full_scoreint总分值4exam_timeint考试时间5singlechoice_question_infovarchar(10)单选题个数及分值6multiplechoice_question_infovarchar(10)多选题个数及分值7truefalse_question_infovarchar(10)判断题个数及分值8blank_question_infovarchar(10)填空题个数及分值9briefanswer_question_infovarchar(10)简答题个数及分值10question_typesvarchar(20)所有试题类型11key_point_idint组卷方式12create_timedatetime出卷时间13creator_idint出卷人编号14course_idint所属课程id表:2-11 试题-试卷信息表(t_question_paper)序号字段名类型字段解释1idint唯一标识2paper_idint试卷id3question_idint试题id4order_in_typeint题号表:2-12 管理员表(t_admin)序号字段名类型字段解释1idint唯一标识2real_namevarchar(10)真实姓名3usernamevarchar(20)用户名表:2-13 考生-考试信息表(t_exam_info)序号字段名类型字段解释1idint唯一标识2student_idint考生id3paper_idint试卷id4course_idint课程id5scorefloat分数6subjective_answervarchar(255)客观题答案7objective_answerlongtext主观题答案8time_costint考试所用时间9is_examvarchar(1)考试状态表:2-14 留言表(t_message)序号字段名类型字段解释1idint唯一标识2titlevarchar(10)留言标题3contentvarchar(20)留言内容4leave_datevarchar(32)留言时间5is_leafint是否回复6parent_idint回复留言的id7student_idint留言的考生id8reply_admin_idint回复的管理员id412.2系统流程设计2.2.1随机抽题图:2-1 随机抽题流程图2.2.2考试流程图:2-2 考试流程图3 系统实现3.1数据库相关配置3.1.1数据库连接配置在项目同时使用hibernate和spring两个开源框架时,要把对数据库的配置写入spring的xml配置文件中,这样spring的容器会在项目运行时创建数据源对象,并把它封装成一个sessionfactory,而在sessionfactory中hibernate封装了很多方便的数据库操作方法,如:save(object object);delete(obejct object),使程序员可以摒弃操作sql常规方式,以面向对象的思想来对数据库进行操作。数据源具体配置如下:com.ncsxy.exam.modelhibernate.dialect=org.hibernate.dialect.mysqldialecthibernate.hbm2ddl.auto=updatehibernate.format_sql=truehibernate.show_sql=falsehibernate.current_session_context_class=thread 3.1.2spring声明式事物管理配置事务管理是在程序中非常重要的一部分。在系统中,为了某个功能的实现程序会对数据库进行操作,这就会产生一个事物,而这个事物可能会破坏数据库的安全性和完整性。所以在进行项目开发时,对每一个数据库操作都必须显式地定义事物处理,如:begin transactioncommitrollbackspring声明式事务管理是基于spring的aop的,它能给开发者提供自动的事务处理机制。只需使用spring自带的aop特性,在xml配置文件中进行一些简单的配置,就能方便地对整个系统对数据库的读写操作进行事务管理。本系统采用了spring的声明式事务管理,配置如下:以上配置代表告诉spring为系统中com.ncsxy.exam.dao.impl包中所有类的所有方法进行事物管理。这样spring将会自动在每个事物开始时begin transaction,事物成功后commit,事物出现故障自动rollback。3.2web前台实现3.2.1定时保存考生答案为了应对在考试时运行的硬件环境可能会突然断电或网络出现异常,让考生能在环境正常后,快速重新进行考试,系统采用ajax每30秒向服务器传送考生即时的答案,在服务器端保存进数据库。若出现上诉情况,可以及时地从数据库中读取考生的答案数据,显示在页面上,最大地保证了考生答题的一致性。主要代码如下:/* * 利用ajax定时刷,把答案传给服务器 * getobjectiveanswer() : 获得客观题答案* getsubjectiveanswer() : 获得主观题答案*/function saveanswers() var objectiveanswerstr = ;var subjectiveanswerstr = ;if(getobjectivecount() = 0) objectiveanswerstr = getobjectiveanswer();if($(.briefanswerquestion :input).length != 0) subjectiveanswerstr = getsubjectiveanswer();var lefttimestr = $(#remaintime).text() - 1; $.post(saveanswers, objectiveanswer : objectiveanswerstr, subjectiveanswer : subjectiveanswerstr, lefttime : lefttimestr);系统采用了jquery封装的$.post()方法,第一个参数为访问的url,第二个参数为一个javascript的object对象,里面有客观题答案、主观题答案和剩余考试时间,其中客观题和主观题采用字符串组合,将所有考生已答题的题号和答案组合在一起,如:“1!a 2!b 3!c 7!填空题答案”,再通过程序将它们存入数据库中,来为意外故障情况作考试现场恢复。3.2.2采用extjs设计后台extjs是基于javascript的一个ajax框架,它提供了丰富的web组建来供开发者进行页面开发,并且能让开发者以面向对象的方式来编程。本系统采用extjs开发后台界面,充分发挥了ajax的无需刷新页面的优点,与服务器端无缝结合,提高了用户的体验。在extjs中提供一个formpanel组件,用于展示表单页面,可以根据extjs提供的配置属性(config properties)进行开发。本系统大量采用了面向对象的编程方式,使用extjs提供的继承功能,创建了适应系统的表单面板。举系统中用户角色模块中的表单面板为例,具体代码如下:/ 继承ext.from.formpanelexam.roleform = ext.extend(ext.form.formpanel, constructor : function(config) config = ext.apply(frame : true,style : padding : 10px,labelwidth : 60,basecls : x-plain,items : xtype : textfield,id : rolename,name : rolename,anchor : 93%,fieldlabel : 角色名称,allowblank : false,blanktext : 角色名称不能为空, xtype : textarea,id : descr,name : descr,anchor : 93% 80%,fieldlabel : 角色描述,allowblank : false,blanktext : 角色描述不能为空,buttons : text : 增加,handler : function(_this, e) addrole(_this);, text : 取消,handler : function(_this, e) _this.ownerct.ownerct.ownerct.hide();,buttonalign : center, config);exam.roleform.superclass.constructor.call(this, config););最终效果如图:图:3-1 角色增加窗口上图所示的表单能够自动判断输入栏是否为空,如果为空则会显示如图的错误提示。所以采用extjs开发界面不仅节省大量的页面美化工作,而且其效果不亚于美工制作的效果,大量减少了开发时间。3.3服务器端实现3.3.1采用rbac验证管理员权限rabc即基于角色的访问控制(role-based access control),在rbac中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年质量检测工程师招聘面试参考题库及答案
- 2025年项目管理人员招聘面试参考题库及答案
- 2025年猎头招聘顾问招聘面试参考题库及答案
- 国考消防笔试题库及答案
- 2025年电源工程师招聘面试参考题库及答案
- 2025年图形设计师招聘面试参考题库及答案
- 2025年直播内容策划招聘面试题库及参考答案
- 2025年研究与开发主管招聘面试题库及参考答案
- 2025年社区卫生服务管理员招聘面试参考题库及答案
- 2025年创建老师招聘面试题库及参考答案
- 2025-2030年中国智能熔断器(Pyro Fuse)行业市场全景评估及发展趋向研判
- 生态系统的物质循环课件-高二上学期生物人教版选择性必修24
- 《关节镜小知识》课件
- 新能源行业人力资源规划与招聘
- 蛇串疮的健康宣教
- 《股骨远端骨折》课件
- 药企地区经理胜任力
- 直线和圆的方程 直线与圆的位置关系 教学设计
- 《中华人民共和国学前教育法》专题培训
- 《自然的色彩》课件 2024-2025学年人美版(2024)初中美术七年级上册
- 中止、恢复、终止施工安全监督申请书及告知书
评论
0/150
提交评论