网络课程论文-基于网络的《?VFP?程序设计》?课程考试系统_第1页
网络课程论文-基于网络的《?VFP?程序设计》?课程考试系统_第2页
网络课程论文-基于网络的《?VFP?程序设计》?课程考试系统_第3页
网络课程论文-基于网络的《?VFP?程序设计》?课程考试系统_第4页
网络课程论文-基于网络的《?VFP?程序设计》?课程考试系统_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

PAGE0PAGE12JISHOUUNIVERSITY专业课课程论文题目:基于网络的《VFP程序设计》课程考试系统作者:学号:所属学院:信息科学与工程学院专业年级:总评分:完成时间:吉首大学信息科学与工程学院基于网络的《VFP程序设计》课程考试系统(吉首大学信息科学与工程学院,湖南吉首416000)摘要《VisualFoxPro程序设计》是高等学校非计算机专业的公共课,在培养学生的综合能力、提高学生的信息素养方面有着重要的作用。本文针对该课程教学的实际情况,结合全国计算机等级考试二级的特点和要求,分析与设计了一个基于网络的考试系统。通过使用统一的标准,科学、合理、公正地对学生进行考核,以降低教师工作量,增强学生的知识应用能力。本文重点介绍了JAVAEE多层体系结构和MVC设计模式。通过对Struts、Spring、Hibernate这三种框架技术整合的研究,提出用Struts构建系统的表示层、Spring构建业务逻辑层、Hibernate构建数据持久层,形成一个统一的架构进行W亡b开发。采用基于struts/spring/Hibernate的SSH框架来开发,降低了层与层之间的祸合性,增强了系统的灵活性,减少了系统的开发和维护成本。

本文深入分析了基于网络的VFP考试系统的功能需求、数据需求和性能需求,进行系统的总体结构设计、功能设计和数据库设计。其中,对组卷管理模块和在线考试模块重点进行了研究和设计。

在线考试子系统中,运用了JAVA网络启动协议(JNLP)启动应用程序,客户端无需安装软件,考生只需单击网页上的JNLP链接即可启动程序参加考试。作为高校的日常课程考试,试题数量并不庞大。通过对现有的几种组卷算法的优、缺点进行分析,本系统采用算法结构简单的随机抽取法来实现试题库的自动组卷。试题按题型特点分类编号存储,充分运用好各种技术,设计相应的题库管理子系统。考题有概念类,也有操作类,相应地自动阅卷技术成为了研究的重点。对于操作类考题的自动阅卷问题,提出了一种静态分析和自动测试相结合的方法。考试过程实现自动化,从组卷、考试、阅卷到成绩管理,全部交由系统自动完成。【关键词】:VFP;在线考试;SSH框架;自动阅卷BasedonthenetworkofVFPprogramdesigncourseexaminationsystemdongdan(CollegeofInformationScienceandEngineering,JishouUniversity,Jishou,Abstract《VisualFoxProProgramming》isacommoncourseofnoncomputermajorinhighereducationinstitutions,anditisveryimportantinimprovingthegeneralabilityandinformationalattainmentforstudents,Accordingtothepracticalteachingofthecourse,andthecharacteristicsofNCRERank2(NationalComputerRankExaminationRank2),aweb-basedexaminationsystemisanalyzedanddesignedinthisthesis.Studentsareexaminedscientificallyaswellasfairly,byusingunifiedstandard,asforreducingtheworkloadoftheteacher-sandintensifyingtheapplicationofthestudents.

ThisthesisintroducesthemultilayerarchitecturebasedonJAVAEEandtheMVCdesignpattern.Throughstudyingtheintegrationofstruts,springandhibernate,anewmethodinwebdevelopmentispresented,Itdealswithhowtousestrutstobuildtheexpressionlayer,howtousespringtobuildthebusinesslogiclayer,andhowtousehibernatetobuildthedatapersistencelayer.ThesystemusesSSHframeworkwhichisbasedonstruts,springandhibernate,inordertorecedethecouplingbetweenlayers,toenhancetheflexibilityofsystemandreducethecostofdevelopingandmaintainingthesystem.

Thefunctionrequirement,thedatarequirement,andtheperformancerequirementoftheweb-basedVFPexaminationsystemareanalyzed.Then,theoveral1structuredesign,functionaldesignanddatabasedesignofthesystemispresentedindetail.Andtheprinciple,thecomposingtestpapersmanagementmoduleandtheonlineexaminationmodulearealsopresented.ThissystemstartstheonlineexaminationmodulebyJNLP(JavaNetworkLaunchingProtocol).TheclientscanbestartedandusedintheexaminationwhenstudentsclicktheJNLPconnection,andthere15noneedtoinstallanysoftwareinthem.Inthedailyexamination,thenumberofthequestions

KeyWords:VFP;OnlineExamination;SSHFramework;AutoTestPaperCorrecting网络程序设计的课程论文PAGE17目录第一章 引言 31.1课题背景及意义 31.2课题研究现状 41.2.1国内VFP上机考试系统现状 41.3研究内容 51.4论文组织方式 6第二章 关键技术 72.1操作编程题的评判 72.1.1静态分析方法 72.1.2自动测试方法 72.2JAVAEE简介 82.3MVC设计模式 92.4SSH框架技术 10第三章 需求分析 113.1功能需求 113.1.1管理员模块 113.1.2教师模块 123.1.3学生模块 133.2性能要求 133.2.1安全需求分析 133.2.2性能需求分析 143.2.3运行环境需求分析 14第四章 概要设计 154.1体系总体设计 154.2体系架构设计 154.3系统功能设计 164.3.1管理员模块 174.3.2教师模块 194.3.3学生模块 204.4数据库设计 254.4.1数据库设计概念 254.4.2数据库的逻辑设计 28第五章 详细设计 365.1SSH框架的应用 365.1.1视图层的实现 365.1.2业务逻辑层的实现 375.1.3数据持久层的实现 375.2JAVAWEBSTART技术分析 385.3系统的组卷方案分析 395.3.1组卷算法简介 395.3.2抽题组卷算法的设计 395.4VFP操作及编程题评判技术的研究 405.4.1VFP文件系统简介 415.4.2静态评判技术 43第六章 测试及实现结果 466.1测试过程 466.2结果显示 476.2.1登录界面 476.2.2管理员考场监控界面 486.2.3教师组卷管理界面 486.2.4学生在线考试界面 49结束语 50参考文献 51第一章 引言1.1课题背景及意义在信息化高速发展的今天,计算机的应用已经渗透到了社会的各个领域,而在社会的各部门中对计算机应用水平的要求也在逐渐提高。在一定程度上计算机应用能力的高低已成为衡量个人适应现代化社会能力强弱的标准,同时也是衡量在校学生综合素质的重要指标之一。近年来,学生对计算机应用课程的重视程度得到了普遍提高,全国计算机等级考试的参考人数也在逐年增加。根据教育部对高校学生计算机应用水平的要求,强化计算机应用能力的培养已成为各高校的共识。国家“面向21世纪教育振兴行动计划”的实施为进一步改革教学方法和教学手段提供了良好的机遇,为提高计算机基础课程的教学质量提供了良好的氛围。高等学校非计算机专业计算机基础课程体系在培养学生的综合能力、提高学生的信息技术素养方面有重要作用,课程的上机实践教学非常重要。近年来,“以人为本、以学生为主体、教师为主导”的现代教学理念已经渗透到计算机基础教学中,“精讲多练”的教学模式被广泛应用,在知识传授过程中注重学生能力和素质的培养。《visualFoxPro程序设计》是该课程体系中的重要内容,属于第二阶段的教学。目前,该课程教学效果的评估主要还是以书面考试为主,这就势必造成教学效果评估的偏差―考试成绩很好,但动手能力差。计算机语言的教学不仅要加强书面知识的讲授,更应该注重上机实践这一环节。另外,由于学生数量众多,教学考试工作量巨大,教学质量的考评缺乏统一的标准,特别是期末考试时,班级众多,阅卷工作量大,分数统计、上报复杂。本文主要针对以上存在的问题,并且与全国计算机等级考试挂钩,设计一个基于网络的考试与评价系统(包括题库管理、在线测试、自动评阅和教务管理等工作),使用统一的标准,科学、合理、公正地对学生进行考核,以降低教师工作量,增强学生的知识应用能力,避免出现高分低能的现象,从总体上提高学生的素质。同时,从学校的角度来看,如何有效地进行考试的组织管理,对考试系统提出了很多不单是技术上的问题,也是一种管理思路和管理方法的变革。对于考试环节中的许多重要因素,比如考试的公平性、有效性、保密性和易于管理,考试结果的全面分析,为以后的教学改进提出准确详实的指导性报告等,都是学校的重要需求。另外,该考试形式不一定局限于此课程,可以扩展到任何门类。1.2课题研究现状国内计算机考试侧重知识认证,即测试应考者计算机相关基础知识是否具备。下面列举几个较有影响的考试:(1)全国计算机等级考试(NationalComputerRankExamination,简称NCRE)该考试是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,主要面向非计算机专业的学生,同时也面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试体系。其目的在于以考促学,向社会推广和普及计算机知识。同时也为用人部门提供一个客观、公正、统一和科学的标准,测试结论供用人部门录用和考核工作人员时参考。每年组织两次考试,上半年和下半年各组织一次。采取笔试、上机操作考试两种方式。笔试和上机考试分别进行。由教育部考试中心负责命题、组织考试和颁发证书。该考试共分为四个级别,四级最高。其中,一级考核微型计算机基础知识和使用办公软件及因特网(Internet)的基本技能,二级考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。要求在校本科学生应达到二级水平。(2)全国计算机技术与软件专业技术资格(水平)考试(简称计算机与软件考试)该考试是由国家人力资源和社会保障部、工业和信息化部联合组织领导的国家级考试,目的是科学、公仆地对全国计算机与软件专业技术人员进行专业技术资格、职业资格认定和专业技术水平测试。计算机与软件考试在全国范围内己经实施了十多年,累计参加考试的人数超过200万人次。由于其权威性和严肃性,得到社会及用人单位的广泛认同,被称为中国专业技术职务任职资格和IT考试第一品牌。该考试既是职业资格考试,又是职称资格考试。我国软件考试已与部分国家签订了相互认证的备忘录,正逐步走向世界。另外,还有国家劳动和社会保障部组织的“全国计算机信息高新技术考试”、国家教委从剑桥大学引入的“剑桥信息技术(CIT)证书考试”、“全国信息应用技术证书(NIT)考试”等。1.2.1国内VFP上机考试系统现状(l)全国计算机等级考试(简称NCRE)_二级VFP上机考试系统全国计算机等级二级考试主要是考核使用一种高级计算机语一言编写程序以及上机调试的基本技能,其上机考试系统由教育部考试中心针对NCRE考试所研制。该考试对全国高等学校计算机基础语言课的教学工作具有一定的指导意义,并已成为事实上的指挥棒。考试科目有:语言程序设计(C、C++、Java、visualBasic、Delphi)、数据库程序设训(VI5uolFoxPro、Access)共七个。其中,VFP语言的参考人数最多。虽然,VFP考试系统中编程和操作题的评判,对于其它的考试系统有一定的借鉴价值,但也存在不足,就是对程序的评判依赖运行结果,甚至会有0分或满分的极端现象存在。(2)VFP6.0上机考试系统由浙江大学计算机中心庄代波研制,开发语言为VB,后台数据库为MSSQLSERVER。该系统可以考的题型有:选择题、填空题、库表操作题、查询设计、报表设计、表单设计以及程序设计等,对于编程和操作题采用读取考生操作后保存文件的方法。采用这种方法评判考生的操作结果,对操作题的评判准确性较高,但对于编程题的评判算法略显简单。(3)基于visualFoxPro环境下的考试系统该系统由辽宁省物质学校韩光伟开发,考试题型为:选择题、判断题和操作题,开发工具为VisualFoxPro,数据库也选择了VFP数据库。运行环境为单机运行,考试题型较少,数据的更新及成绩收集较麻烦卿。1.3研究内容该系统结合高校课程日常教学的特点,为高校课程考试的科学化、高效化提供实用的平台。具有显著的经济效益和社会意义。1.该系统充分考虑高校考试的管理要求,从题库管理、试卷库管理等工作,提出了数字化管理模式。2.该系统显著地提高考试信息的处理能力,整个考试过程实现自动化处理,教师及其它相关人员的工作效率明显提高,人力、物力成本得以降低,实现了“无纸化”考试,更加有利于环保。3.该系统不但可以进行网络考试、单元练习和模拟考试,同时还提供了如在线交流等平台,增进了师生间的交流和互动,极利于提升教学效果。4.虽然该系统是《VFP程序设计》课程的专用考试系统,但为其他计算机基础课程,如VB、C语言等,以及其他学科考试系统的开发提供了参考,各科目可结合自身的课程特点和需求,构建相应的考试管理平台。若要构建通用的考试管理平台,在此基础上,也可达到事半功倍的效果。此外,该系统的推广应用将为各院校建设具有本校特色的考试系统提供了基础,具有深远的社会意义。目前,高校课程的考试形式仍旧以传统“课堂式”为主,而各高校都在不断地进行教学改革,所以考试改革必然成为教学改革中的重要内容。此外,许多高校己经具备校园网络的基础,因此,该考试系统具有广阔的应用前景。1.4论文组织方式第一章主要回顾已有的不同模式的考试系统,说明课题背景及其主要研究内容,讨论课题研究的目的和意义。第二章提出并讨论本文中所使用到的基本理论及关键技术JAVAEE、MVC设计模式和SSH框架等相关知识。第三章对考试系统的需求分析,里面有功能需求、数据需求、安全性需求、性能需求以及用例等进行深入分析。第四章给出系统的概要设计、各子模块的功能设计和数据库设计等。第五章详细设计,里面重点介绍了Struts、Hibernate和Spring这三个框架如何应用到系统开发中。第六章就是测试和实现结果,分析总结本系统,并指出将来的拓展方向。网络程序设计的课程论文第二章 关键技术2.1操作编程题的评判操作编程题在上机考试中所占比重较大,对这类题型的评判直接影响了考试系统对考生成绩评判的准确度,其评判技术也直接决定了考试系统的成功与否。操作编程题的评判技术主要分为静态分析和自动测试两类。2.1.1静态分析方法对于操作类试题最朴素的思想是查看考生的操作结果,比如:文件及文件夹的操作、计算机的设置、office的操作、可视化程序设计中的界面设计、编程题等采用静态分析技术。教师在出题时给出一个标准答案,并针对其中的知识点给出关键词(每个关键词都有自己的权值),系统以此为依据,考试结束时对考生的操作结果进行比对,若答案中有某一关键词,则在考生的分数中累加上该题的分值与权值的乘积。静态分析的过程中会用到关键词的模式匹配算法。2.1.2自动测试方法静态分析方法有其独特的应用领域,通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、未定义的变量、不适当的分支嵌套或循环嵌套、死循环等,可以发现一半左右的逻辑设计和编码错误。但是对于编程题静态分析方法不能准确地预测程序的执行结果,也不能发现程序中隐藏的逻辑错误。因此,必须对程序进行动态测试,测试其能否正确运行。本考试系统采用黑盒测试的方法,把考生编写的程序看作黑盒,为其提供输入并观察输出,以测试它是否达到预期的功能。如果采用人工的方法对成千上万的答卷逐一进行批阅,显然是不现实的。因此,考试系统采用了自动测试的方法,山计算机自动完成测试,而不需要人工干预,最后形成测试报告。当然,并不是所有的情形都适合于自动测试,能够用于自动测试的情况主要有以下两种: (1)对重复性测试内容可以进行自动测试。测试过程中经常重复出现的内容,以编制自动化测试软件和脚本,由计算机自动完成测试。(2)对稳定的测试内容进行自动化测试。自动化测试首先要考虑测试内容的稳定性,如果测试内容不够稳定,经常发生变化,这时就不适合做自动测试闭。自动化测试有多种方法,比较典型的就是基于GUI的自动化测试。基于GUI自动化测试在测试者测试软件的同时,捕获测试过程中的键盘操作、鼠标点击等操作,生成测试用输入数据和控制脚本文件,这个脚本文件在今后的测试工作中可以进行“回放”,即按照前期录入的动作重新执行,而不再使用键盘和鼠标操作,从而实现自动运行和测试。但是,这种测试方式有它的局限性,对于软件的输出和错误信息无法进行捕捉。在实际的测试过程中,往往把多种方法结合在一起,配合着测试。根据测试需求进行必要的修改,选择不同的测试数据。自动测试的关键是测试用例的选择和使用。测试用例包括测试用的输入数据和相应的预期输出数据。输入数据可以根据考题要求和程序的功能,使用边界值分析法给出。最后根据比对预期输出结果和实际输出结果是否相符,来获得结论。2.2JAVAEE简介当今,作为基于B/S的多层web体系结构已成为主流,web服务(webServices)面向的是广大的用户群,而且更加通用,更加松散,同时它是分布式计算机体系的种跃进,它强调的是不同组件协同工作,来为用户提供服务。Java既是在2004年中国软件技术大会上将JZEE改名的一个新的名称,因为与会者一致认为需要一个跨JZSE/WEB/EJB的微容器,保护他们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本闹。JAVAEE是SUN公司制定的一个依赖Java语言实现的web开发平台规范。JAVAEE具有“一次编写、随处运行”的跨平台特性。JAVASERVLET、JavaBean、JSP、以及XMIJ技术是JAVAER中的核心技术,同时也是进行.JAVAWEB应用开发的基础。SERVLET是一种动态加载的模块,可为服务器接受的请求提供服务,完全运行在Java虚拟机上,由于SERVLET在服务器端运行,所以并不依赖于浏览器的兼容性。JAVABEAN是用Java语言描述的软件组件,实际上就是一个类。这些类遵循一定的接口格式,这样在开发中就可以把这些类看作标准的JAVABEAN组件进行构造和应用。采用JSP技术和JAVABEAN的结合能解决SERVLET显示与业务逻辑不能分离的问题。在国内外,基于J2EE十EJB的Web应用升发技术在近年来广泛得到应用,但同时EJB部署困难、代码复杂、维护困难、资源消耗大且运行效率低等缺点已日益明显。在轻量级的JAVAEE实现中,将struts、spring、Hibernate。集成起来使用是一个很好的方法圈。集成这一新的框架技术应用在大型web应用开发中将是Web应用开发中的新的主流技术,它不仅能简化开发过程、节省大量的成本,而且维护、更新更加方便。2.3MVC设计模式MVC不是JAVA语言所特有的设计思想,也不是Web应用所特有的思想,而是所有面向对象程序设计语言都应该遵守的规范。MVC思想将一个应用分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),它们的动态协作关系如图2.1所示。这三个部分相互独立,改变其中一个不会影响其他两个,他们以最少的藕合协同工作,从而提高应用的可扩展性及可维护性。MVC是一个著名的Application开发的设计模式,至今己被广泛使用间。Model(模型)是应用程序的核心,表示业务数据和业务逻辑。一个模型能为多个视图提供业务数据。一旦正确地实现了模型,视图就会正确地显示结果。View(视图)是用户接口,用来格式化并呈现用户感兴趣的业务数据,并能接收用户的输入数据,但不进行任何实际的业务处理。视图可以查询,但不改变模型中的业务数据。视图还能接收模型发出的业务数据更新事件,从而对用户界面进行同步更新。Controller(控制器)接收用户的请求,并选择适当的模型进行业务逻辑处理,然后调用相应的视图以图形和文本的形式将处理结果呈现给用户,从而提高了应用程序的灵活性和可配置性。方法调用事件方法调用事件调整数据更新状态查询用户请求业务处理选择视图(控制器)接受用户请求调用模型响用户请求选择视图显示响应(视图)

显示模型状态接受数据更新请求把用户输入数据传给控制器(模型)代表应用程序状态响应状态查询处理业务流程通知视图业务状态更新图2.12.4SSH框架技术在设计模式中,框架就是一组紧密关联、协同工作的模块或者类,为特定类型的软件构筑了一个可重用的设计。Struts、Spring、Hibernate(简称SSH)是基于JAVAEE应用开发中比较优秀的开源框架,根据Web应用的功能层次,可以将这三个框架分别应用到表示层、业务层和数据持久层,如图2.2所示。Struts框架在表示层可以响应用户请求,借助控制器调用业务逻辑,并向用户显示处理结果。Spring框架在业务逻辑层可以执行相应的业务程序来实现业务服务。Hibernate框架在持久层可以采用面向对象的方法存储、更新、删除数据库记录,以及查询数据库存信息。另外,该架构中的数据层主要指一些数据库系统,如:SQLServer、Oracle等,用来存放业务数据,供上层调用。将SSH框架集成起来,可以极大地简化开发过程,降低开发成本,并且为维护、扩展、移植程序提供了方便图2.2第三章 需求分析3.1功能需求计算机考试与传统卷面考试在考试特点和试题的组织上都有很多不同。传统考试中考生可以自主判断和灵活处理考试相关问题及应急事件,而计算机考试则要求对考试中可能出现的情况预先作出充分的分析。对系统进行功能需求分析,可以获得该系统中存在的角色及其相关的操作用例,并为下一步的设计工作做好准备。根据系统的基本要求,经过分析,系统中主要的角色可以确定为以下三类:管理员(可以是教师兼)、教师和学生。角色不同,任务不同,完成的操作也不同,根据角色可以建立相应的用例。3.1.1管理员模块1.需求描述

管理用户的基本信息,负责考试系统的日常维护。2.主要用例

●学生管理;建立考生信息,注册考生考试。●教师管理:编辑教师的基本信息。●课程管理:编辑课程的基本信息。●考试管理:对考试过程进行维护和管理●成绩管理:对学生成绩进行维护和管理。●考卷管理:收集存储服务器中的所有试卷和答卷。●信息查询:查看考试计划、考生名单、考试成绩等基本信息。●系统初始化:清空整个系统的数据,以便重新使用系统。根据以上角色用例分析,管理员用例图如图3.1所示。图教师模块1.需求描述

维护和管理题库,设置组卷方案。系统授权后,教师也可以以管理员的身份登录考试系统。2.主要用例

●题库管理:教师按照本学科的知识结构来组织创建题库,对一试题进行编辑。●组卷管理:根据教师输入的试卷参数,系统自动生成试卷。●成绩录入:教师可以上网人工录入学生的平时成绩。●作业管理:便于教师在线布置、批改、保存作业等。根据以上角色用例分析,教师用例图如图3.2所示。图学生模块1.需求描述

为学生提供在线考试、在线作业等服务。2.主要用例

●在线考试:学生成功登录本模块后,先阅读考生须知,单击“开始考试”按钮后自动下载考卷,系统显示题目内容并开始倒计时。考试过程中系统实时保存答案、遇到异常情况可恢复己完成的考题。考生提交试卷后系统自动评判答案等。●考试信息查询:学生可以查询考试的时间、地点和考试成绩等信息。●在线作业:学生可上网查看作业题目,完成后上传给教师,以达到网络在线学习的目的。根据以上角色用例分析,学生用例图如图3.3所示。图3.33.2性能要求3.2.1安全需求分析系统安全是网络考试系统中一个非常重要的问题,系统要保证安全畅通,否则会影响正常的考试秩序。系统中的主要数据,如试题、试卷、答卷、成绩等,必须确保安全,必须防止被窃取或恶意修改、删除。考生必须进行身份验证,考试过程中防止试题被考生拷贝和下载。考试相关数据采用集中式管理,并且提供异地备份功能。此外,机器或者网络故障也有可能导致考试意外中断,所以系统必须拥有安全、有效的事故处理措施,比如,合理的考试时间和考生答案的存储方式,以及考试恢复策略等。3.2.2性能需求分析要求能够通过Intranet/Internet启动本系统,在100M带宽条件下,用户等待启动的时间不能超过3分钟。作为网络考试系统要求具有一定的并发响应能力,若要集中考试,系统应该允许:300个以上的考生同时连接到系统,并足够快地对考生的行为做出响应,保证考生可以顺利地参加考试,保证考试过程中系统运行稳定,所以系统设计时应尽可能地降低网络阻塞发生的可能性。在随机生成试卷的过程中,要求抽题组卷应该在较短的时间内完成;在考试期间,系统应该能定期自动保存考生做过的客观题的答案,能够响应几十个考生的并发请求。在考试结束时,要求对考生的答案能在较短的时间内(小于2分钟)做出较为正确的评判,给出公正的分数。该考试系统运行在一个应用服务器和web服务器上,考虑将来可以将其扩展为通用的Internet一般性考试系统,而系统需要的服务器也可以扩充为多个分布式服务系统,位置透明、事务处理透明、多个server间系统均衡,成为真正意义上的集群分布式系统。因此,基于以上考虑,系统采用了分布式、事务处理透明、有良好扩展性的JAVAEE体系的技术来实现。3.2.3运行环境需求分析本系统的运行环境要求是:不仅服务器端而且客户端都要求具有跨平台性:对客户端的环境没有特殊要求,普通环境既可运行。考生做编程和操作题时,系统应能操纵VFP以便做出正确的评判。第四章 概要设计4.1体系总体设计1.实用性、稳定性原则系统必须满足功能需求,具有一定的并发响应能力。系统应当大大降低对使用的技术要求,实现简单易用的特点。系统使用者在图形用户界面的引导下,即可轻松使用,而无需进行其它复杂的配置、安装和管理等操作。2.安全性原则系统安全性设计是网络考试系统一个非常重要的部分,考试是一件非常严肃的事情,为了保证考试的公平性,决不允许发生试题泄露等事件。系统应具有身份检验、权限设置、防止非法用户的攻击和窃取等功能。3.灵活性和扩展性原则考虑到系统的升级功能,必须在设计时保持系统的良好的可扩展性。同时提供与其他系统的接口,以便继承其他功能,降低系统开发的费用。4.信息处理的高效性4.2体系架构设计本系统包括了题库管理、自动组卷、在线考试及自动评卷等主要功能,为了具备良好的易用性、扩展性和维护性,系统采用了B/S休系结构。考试系统只需安装于服务器端,而客户端的学生考试用机无需安装任何额外的软件,即实现“零安装”的目标,从而将组考工作量降到最低。此外,由于客户端只跟Web服务器交换数据,所以系统的数据安全性较高。整个系统从逻辑上可划分为三层,其总体架构如图4.1所示。图4.11.数据层

数据层位于整个考试系统的最底层,是系统实现的基础,主要山DB和XML构成。用户信息、试题、答案以及成绩等以DB形式存储,而试卷则以XML形式存储。这样综合了集中式存储和分布式存储各自的优势,为系统提供丁史好的性能。2.应用层应用层是整个考试系统的核心,主要运用后台编码技术实现用户请求与数据库的信息交流,实现表示层与数据层之间的通信,处理系统中绝大多数的事务。功能上,它在考试前要负责管理试题,生成试卷:考试中要实时监控考试状态;考试后则要进行自动阅卷以及成绩统计。结构上,它是连接数据层和表示层的纽带,响应表示层的请求,从数据层提取数据发送给表示层。3.表示层 表示层即用户界面系统,位于整个结构的最上层,直接与用户交互,是用户和后台系统互操作的接口。学生通过该层登录、在线考试、提交试卷以及查询成绩等;教师通过该层管理题库、设置组卷方案、统计分析成绩等;管理员通过该层管理用户、课程、成绩、答卷等信息,以及登录考试监控界面。4.3系统功能设计参照之前需求分析阶段获得的三类系统用户,将系统的功能结构相应地设计为三个主要模块,即:管理员模块、教师模块和学生模块,其总体功能结构如图4.2所示。考试系统的任何用户只有在成功登录系统后才允许访问相关页面。登录时必须输入用户名和密码、选择身份,单击“登录”按钮后,服务器对其进行身份验证。如果输入正确,则登录成功,系统会根据用户的身份跳转到下一个相应的操作页面;否则,系统给出提示,要求重新登录。图管理员模块管理员模块的主要功能包括:为系统建立和分配角色、角色授权、更改用户口令,系统数据库管理,以及考试管理等。1.学生管理学生管理主要是对考生的基本信息进行维护,包括添加、查询、更新和删除等。设置和管理学生日常的登录密码,注册学生参加正式考试的准考证号以及考试的日期时间等。由管理员负责将教务管理部门提供的学生名册导入本系统。数据的导入功能可以使用P01组件,主要通过EXCEL表格大批量导入数据,这种方式使用起来非常方便。添加学生信息时,学号要求是唯一的,如果信息添加成功,则给出相应提示;否则,返回添加页面并在不成功项后作说明。另外,管理员也可以通过手工设置,生成有规律的连续号码作为考生的准考证号。系统规定考生只能在指定的时段内参加考试。2.教师管理教师管理主要是对教师的基本信息进行维护,包括添加、查询、更新和删除等。设置和管理教师的登录密码,以及教师授课班级的信息等。3.课程管理课程管理主要是对考试科目进行维护和管理,包括课程基本信息的添加、查询、更新、删除。课程和教师信息、学生考试信息相关联,要保证教师命题和学生参与考试的课程一致。4.考试管理对考试过程进行维护和管理,包括考试系统的设置、启动、关闭,考场监控,当前在线考生浏览,延长考试时间,更换考试用机等。当考生在考试过程中遇到死机等意外情况(即无法进行正常考试时),管理员可以输入二次登录密码,让考生继续考试。管理员要对考试过程中出现的异常情况及时进行处理,保证考试顺利进行。该模块是管理员在考试的时候了解考生状况的一个实用工具,该模块采用非阻塞模式设计和考试模块的通信能力,极大地提高了系统的效率,使系统不会因为考生的增加而降低监考效率。考试管理模块实现考生登录数据库的时序管理,考试系统用于集中考试时,有可能会出现几百个考生同时连接数据库的情况,并发量有可能严重超过数据库的承受范围。考试管理模块把准备连接数据库的考生排成队列,按顺序连接数据库,从而有效地减轻数据库的负担。5.成绩管理对学生成绩进行维护和管理。主要包括按班级生成期末试卷评分报告,其中含有每份答卷每个大题具体的得分情况,及相应的统计结果;自动汇总平时、期中、期末成绩,计算出每个学生的总评成绩,并按班级进行统计分析,形成成绩册;提供数据导入、导出的接口。数据的导入导出功能可以使用p0I组件,主要通过EXCEL表格大批量导入导出数据,这种方式使用起来非常方便。6.考卷管理在考试结束后,收集服务器中存储的所有试卷以及所有考生的答卷,一并保存到本地硬盘,以便之后查阅。7.信息查询查看考试计划表;根据准考证号或者学号查询个别学生的基本信息,及其参加考试的科目、时间等相关信息;按考试日期时间、班级等分类查询考生名单;按考试成绩的分数段查询考生名单;按缓考、重修、免修、缺考、作弊、不准考试、无成绩、补考、补考缺考、合格、不合格等考核结果分类查询考生名单;按个人或班级查询学生的成绩信息。8.系统初始化对整个系统的数据进行清空,以便重新使用系统,输入新的数据。9.公告管理管理员可以及时发布、更新、删除有关的公告和通知信息。10.在线交流木模块以聊天室的形式出现。管理员可在聊天室里在线发布信息,与学生进行交流,以及在线答疑。11.个人信息维护管理员可以修改个人信息,包括用户名和口令。4.3.2教师模块教师模块是对考试进行维护、管理的应用平台之一。系统授权后,教师也可以管理员的身份登录考试系统。教师模块的主要功能包括:1.题库管理题库用于储存考试课程的试题信息,任课教师按照本学科的知识结构来组织、创建题库。题库管理模块是抽题组卷的基础,组卷算法根据这里所给出的各种参数采用随机的方法抽取试题,所以试卷的产生需要题库的支持。建立题库时要尽可能多地添加试题,题量越大,不同试卷中试题的重复率就越小。此外,题库中还应包含多种类型、多种难度等级的试题,以满足不同层次考核的需要。2.组卷管理教师登录组卷管理模块后,根据教学目标和测试要求拟定相应的参数,如:考试科目名、试卷标题、总时间、总分值、试题类型、每种题型的题量和分值、共抽取多少套题、是否显示成绩、二次登录密码等。其中,考生只能在规定的日期和时间内参加考试,并在一段时间内完成考试。教师还需要在该模块中设置知识点的分布情况,以及每个知识点中各类题型的抽取数量。当教师选择某一章节时,系统自动计算题库中这一章节各种题型的数量,供教师出题时做参考,也就是说教师出题时,不能超出题库中这类题的总量。教师设置完各章节的各类题型数量后,保存设置的参数。试卷参数设置在生效前需要进行输入域完整性检验,具体内容包括:判断总分值、考试的时间,题目数量等基本选择项是否为空;判断每种题型的题量和相应的每题分值是否全部为空;判断是否存在某一题型的题量不空,而分值空,或者分值不空,而题量空的情况:判断试卷总分值是否等于100。这些参数通过验证后,才能保存到数据库。试卷参数是生成一份完整试卷的主要依据。系统根据参数的设置规则,使用随机算法从题库中抽取出满足规则的试题,为将要参加考试的学生自动生成互不相同的试卷,并保存在Web服务器相应的目录下。试卷生成后,教师还可以在该模块中预览自动生成的试卷,并人工对其进行检查调整,最后注册试卷。自动组卷流程如图4.3所示。图4.33.成绩录入教师可在线录入学生平时成绩,并自动汇总期中、期末成绩,计算出每个学生的总评成绩。4.作业管理作业管理主要给教师提供在线布置作业、上传原始数据文件供学生下载,作业批改、保存作业及登记成绩等。5.公告管理教师可以及时发布、更新、删除有关的公告和通知信息。6.在线交流主要是为教师和学生提供一个便于相互交流的平台,本系统以聊天室的形式处理该功能。7.个人信息维护教师可以修改个人信息,包括用户名和口令。4.3.3学生模块学生模块主要负责学生的在线考试、在线作业等,其具体功能如下:1.在线考试在线考试子模块是整个系统中最为重要的功能模块,主要负责考生从开始考试到考试结束的整个过程。在考试过程中向每位同学发送试卷是否相同,具有有效的备份和恢复机制,防止试卷失密,防止学生考试作弊,自动计时、强制退出以及考试监控等是本模块需要完成的主要功能。学生在线考试过程流程如图4.4所示。图4.4其主要步骤的功能描述如下:(l)考生登录考生访问考试模块,输入已注册的准考证号,在数据库中检查准考证号的合法性、考生状态和系统状态,若准考证号合法、考生状态为待考状态、系统为考试状态,则显示考生信息及考试注意事项供考生阅读:考生在核对本人信息正确后选择“开始考试”,系统按照事先制定的规则从试卷库中随机抽取一份己注册的试卷,并在加载考生信息后,下载试卷到学生考试用机。试卷载入流程如图4.5所示。图5.5(2)自动计时进入考试界面时,计时器由预先设定的考试时间开始倒计时,并在答题界面中显示剩余的考试时问。考试用时实时记录到数据库中,提前5分钟自动报警来提醒考生应及时存盘。当考试时间用完,计时器显示时间为零时,系统提示“考试时间已到,停止答卷!",强行收卷,并自动锁定计算机,考生将不能继续进行考试。(3)显示试题考试模块以目录树为核心,增加节点对应一个题目。当考生单击目录树节点时,右边的试题显示区会显示相应的试题内容。这种技术使JAVA语言编制的GUI界面具有windows平台中常见的MDI风格。考生操作起来方便且容易上手。考生做完一题后,目录树上相应节点的颜色就发生变化,以标示此题已经做过。客观题部分,考生完成的答案将实时保存到数据库中,可以通过定义一个“答案写入”过程来实现。当考生从一个试题切换到另一试题作答时,程序自动调用“答案写入”过程,将前一刻刚完成的试题答案实时保存到数据库中。而对于操作题,答题在相应的应用程序窗口中完成,操作结果暂时保存在学生考试用机上,提交试卷时,自动将操作结果上传到服务器。答题流程如图4.6所示。图4.6(4)考试恢复网络在线考试很难避免人为误操作或者机器硬件、网络堵塞等因素造成考试意外中断,而当这种情况发生时,系统是否已经保存学生当前的状态信息,成为考试恢复机制实现的关键。本系统中,考生开始答卷后,考生己完成的试题答案及剩余考试时间都会实时保存到服务器中。在监考教师允许的情况下,考生可二次登录,系统继续计时,同时从数据库中取回考生考试记录并恢复到出现意外之前的状态。另外,系统为考生分别设置了“在考”、“己考”、“未考”和“超时”四种考试状态。考生注册后其考试状态自动为“未考’,;开始考试后,其状态自动转换为“在考”;提前交卷后,其状态自动转换为“已考’;系统强行收卷后,其状态自动转换为“超时”。管理员有权对考试状态进行设置。(5)提交试卷学生完成考试内容后,按下“交卷”按钮可提前主动交卷,系统自动将考生的操作结果上传到考试用服务器并生成完整的答卷,同时显示“考试完毕!”信息。交卷后,学生考试用机上不能保留有关考试内容,学生不能继续做题。(6)自动评卷系统针对不同的题型采用不同的方法自动进行评判,并将分数汇总存入数据库,同时为每个考生保存每一题型的得分,以便之后对考试成绩进行统计分析。考生提交试卷后,系统立即根据标准答案和分值对客观题的答题结果进行评判,客观题自动评阅流程如图4.7所示。而主观题部分,系统则采用静态分析与自动测试相结合的方法进行评判,具体方法在后边的章节中介绍。图4.72.单元练习根据学习进度,有针对性地完成相应的单元测试练习,以便及时掌握所学知识。3.模拟测试登录考试系统后,学生不需要进行身份验证,即可以直接访问该模块。自主选择模拟套题进行测试。测试结束系统自动评卷,并当场显示考生成绩。与此同时,自动记录学生答错的试题并形成错题本,供学生查看。模拟测试产生的数据,如填写的答案、操作结果、测试成绩等不会保存到后台数据库中。4.考试信息查询学生可以根据学号(身份证号)查询己注册的准考证号、考试科目、考试的日期、时间、地点等信息;考试结束后,可根据准考证号查询考试成绩,成绩以表格的形式显示。

准考证号码是考生参加正式考试,验证其合法身份的唯一关键信息。为了避免考生因为忘记准考证号而影响考试的情况的发生,所以在这里提供了准考证号的查询功能。考试成绩查询是为了方便学生二次查询而设计的。考生提交试卷后,系统便会自动评卷,给出考试成绩并存储在数据库中。5.在线作业学生可上网查看教师布置的作业题目,并下载相关的原始数据文件,完成后再仁传给教师,以达到网络在线学习的目的。6.公告查看学生可以登录该系统实时查看管理员或教师发布的公告信息。7.在线交流学生可在聊天室里在线提问,与教师进行交流。8.个人信息维护学生可以修改日常登录系统使用的用户名和口令。4.4数据库设计根据数据需求分析,本系统采用MYSQL作为后台数据库管理系统,程序与数据库之间通过在Tomcat容器中配置连接池的办法解决,这样就可以提高数据库操作的使用效率,当多用户频繁访问数据库时,不会出现因排队等待而出现拥堵的现象。数据库设计的主要目标是:设计一个数据正确无冗余、信息高效查询、系统有效管理、能满足用户要求、性能良好的数据库,最终解决数据共享问题。4.4.1数据库设计概念数据库概念设计的目的是分析数据间内在的语义关联,在此基础上建立一个数据的抽象模型,同时作为下一步逻辑设计的主要依据。1.实体属性图本系统规划出的实体主要有:管理员实体、教师实体、学生实体、课程实体、部门实体、专业实体、试卷设计方案实体、试卷实体、试题实体。各类实体的实体属性图依次如图4.8、4.9、4.10、4.11、4.12、4.13、4.14、4.15、4.16所示。2.实体关系图本系统目前只是针对公共必修课程《visualFoxPro程序设计》开发的专用考试系统,因此,在系统数据库中,只有一个课程实体《VisualFoxPro程序设计》。该课程同时有多位任课教师、多个教学班。在该课程的教学安排中,一位任课教师可以负责多个教学班,一个教学班只有一位任课教师。一个教学班有多个学生,而一个学生只属于一个教学班。另外,该课程在某一次考试中,只能有一套试卷设计方案。依据该方案,可以制定多套符合要求的试卷。一份试卷包含多道不同的试题,在系统允许的曝光次数内,同一道试题可以出现在不同的试卷中。系统生成的试卷数量小于学生总人数,系统在试卷库中随机抽取试卷指派给学生考试用。同一套试卷在一定条件下,允许指派给不同的学生,但一个学生只允许注册使用一套试卷,考试过程中不能更换试卷。综上所述,《visualFoxPro程序设计》考试系统涉及的实体之间的联系有:课程与试卷设计方案之间是l:1的联系。多位任课教师中只能有一位授权设计试卷,因此教师与试卷设计方案之间也是1:1联系。部门与管理员,部门与教师,部门与专业,专业与学生,任课教师与学生之间都是1:N的联系。课程与试卷,试卷设计方案与试题,试卷与学生之间都是1:N的联系试卷与试题之间是M:N的联系。

于是,省略了实体的属性后,考试系统的E-R图如图4_17所示。图数据库的逻辑设计数据库结构的设计与系统的性能、程序的结构紧密相关,数据库结构的好坏决定了系统的成功与否。相关的数据表根据数据库存储的内容,需建立的系统数据表主要包括:管理员信息表、教师信息表、学生信息表、课程信息表、部门信息表、专业信息表、教学班信息表、单选题表、填空题表、编程题表、操作题表、试卷参数设置表、组卷方案表、试卷明细表、试卷表、学生考试注册表、学生答案记录表,卷面成绩表和综合成绩表,依次如表4-l、4-2、4-3、4-4、4-5、4-6、4-7、4-8、4-9、4-10、4-11、4-12、4-13、4-14、4-15、4-16、4-17、4-18和4-19所示。2.数据表的关联卷面成绩表PaperSuccess、综合成绩表TotalSucces、学生答案记录表AnswerRecord和学生信息表Student都通过学号S_StuId相关联,学生考试注册表Registration和学生信息表student通过准考证号S_Num相关联。考生注册时,系统将向学生考试注册表Registration中插入准考证号、抽取的试卷编号、开考时间等考试状态信息。同时向学生答案记录表AnswerRecord中插入学号、抽取的试卷编号和试题序号等信息。考试过程中实时把考生答案写入学生答案记录表AnswerRecord中。学生考试注册表Registration和试卷表paper通过试卷编号P_Num相关联。考试考试时,系统参照试卷表Paper中试卷文件的存储路径Location提取相应试卷生成试卷考试页面。学生答案记录表AnswerRecord和试卷明细表PaperDetail通过试卷编号P_Num和试卷内的试题序号Question_No相关联。考试结束后,系统根据试卷明细表PaperDetail中的试题编号Question_Id,在题库中查找相应试题的标准答案,比对学生答案记录表AnswerRecord中的考生答案,并把该题得分写入学生答案记录表AnswerRecord中。最后,系统按学号按题型,分类统计试题得分,并存入卷面成绩表PaperSuccess中。数据表的关联如图4.18所示。第五章 详细设计5.1SSH框架的应用前面章节已给出了在线考试系统的需求分析和设计,因此本节主要以“题库管理”模块为例,介绍SSH框架的应用。在“题库管理”模块中MVC结构的各部分内容包括:(1)视图部分:CreateQuestion.jsp和ModifyQuestion.jsp是添加试题的页面和修改、删除试题的页面。(2)控制部分:web.xml是web容器配置文件;Struts-config.xml是Strut,配置文件;CreateQuestionAction。(3)模型部分:Question是表示试题实体JAVABEAN;Teacherservicelmpl是与教师业务相关的业务逻辑的实现;Question.hbm.xml是试题对象一关系映射文件;QuestionDAO是与试题相关的数据访问接口;QuestionDAOlmpl是与试题相关的数据访问实现。在该模块中,视图层采用的是Struts框架,在视图层提交用户请求,控制器分发请求到Action。来执行。其中,由于具体的Service业务逻辑层采用的是Spring框架,通过Spring的依赖注入机制,在其配置文件中分别为Action、Service、DAO层定义了接口。Action层调用业务层Service的接口方法,Service层调用数据持久层DAO层的接口方法。为了更好地封装客户端提交的表单数据,Struts采用了ActionForm。系统在开发中为了统一地处理异常,采用了统一的Exception。5.1.1视图层的实现视图层采用Struts来实现。考虑系统的可移植性和可扩展性,web应用程序采用JSP技术,对Web服务器和网络操作系统都不作特殊要求。本系统的Struts框架包括视图和控制两部分,具体是描述JSP页面,以及对客户请求进行处理的自定义Action等内容。Struts主要的执行过程是首先从页面获取用户提交请求信息,然后在Struts配置中寻找与之匹配的Action方法执行,最终根据Action方法结束时所指的转向跳到相应的页面。为了代码的统一性,考虑到系统的安全因素以及开发的效率定义了一个统一的基类为每个业务定义公共处理,比如相应验证和异常的抛出。因而在该系统中定义了基类BaseAction,让所有的Action继承这个基类。教师添加试题的视图层处理流程如下:(l)接受页面清求(2)获得页面请求Action为:"CreateQuestin.do",在Struts配置文件表struts-config.xml中查找与页面请求匹配的Action。(3)在配置文件中找到与页面请求匹配的Action,同时看到该文件中type为MyDelegatingACtionProxy,该类实际上是org.apache.struts.action.Action的一个子类DelegatlngActionProxy。Spring提供的DelegatingActionProxy作为Action的type属性,具体实现表现为Struts最终调用的将是由Spring管理的Action实例,DelegatingActionProxy仅仅实现了针对实际Action的调用代理。(4)根据上述Spring管理的Action配置文件,从而执行所获得到的Action类。5.1.2业务逻辑层的实现业务层采用Spring实现,Spring设计是为了简化JaveEE的开发,Spring是AOP(Aspect-orientedProgramrning面向方面编程)框架和IOC(InversionofControl,控制反转)容器的具体应用,利用AOP可以对业务逻辑的各个部分进行隔离,从而使业务逻辑各部分之间的耦合度降低,提高程序的可重用性。就Spring框架来说,IOC就是由SPring来负责控制对象的生命周期和对象间的关系。spring所倡导的开发方式就是所有的类都在spring容器中注册登记,告诉spring你是什么对象,你需要获取什么东西,然后Spring会在系统运行到恰当的时候,把你需要的东西给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由Spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是Spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被SPring控制,所以这叫控制反转。题库管理的业务逻辑层接口类为Questionservice,在该类中仅仅定义方法。题库管理的业务逻辑层接口实现类为QuestionservicelmPI,将具体实现类Question中所定义的方法。5.1.3数据持久层的实现Hibernate从本质上是一种“对象一关系型数据映射”(objectRelationalMapping简称ORM),映射Mapping文件则是将对象(Object)与关系型数据(Re1ational)相关联的纽带,因而首先我们需要持久化类,Hibernate最好的使用方法就是使用普通的Java对象来实现对象持久化,在这个Java对象里,属性通过getter和Setter方法进行访问,对外隐藏了内部实现的细节。在题库管理模块中的处理流程如下:(l)从域模块层着手,即创建对象关系数据库中试题表“Question”对应的持久化对象(域模块对象)Question。(2)将所持久化的对象和数据库中的表建立起映射关系,在Hibernate中映射文件一般以.hbm.xml为文件的后缀名,试题表的映射XML文件名为Question.hbm.xml。(3)在数据持久层的接口类QuestionDao定义方法。(4)持久层的实现类QuestionDaolmpl具体实现QuestionDao中的方法。5.2JAVAWEBSTART技术分析本系统不需要事先在客户端安装应用程序,而是采用JavawebStart技术启动在线考试模块,在发布应用程序之前需要对其JAR文件进行数字签名,从而保证了考试模块的安全性。应用程序的JAR文件发布到Web网站上,在Web网页中插入一个超链接,指向JNLP文件。JNLP文件是一个特殊的XML文件,必须使用JNLP(Java网络启动协议,是JavawebStart的组成部分)来创建。该文件指出应用程序的各种配置信息,包括允许使用客户端的资源。这一点非常重要,若不设置这项参数,系统就不能连接后台数据库,不能读取考生的操作结果,也不能对操作题做出准确无误的评判。JavawebStart的工作原理如下:(1)程序员将应用程序打包成JAR文件,再将其发布在Web服务器上并在网页上使用一个超链接指向其INLP文件。(2)考生使用浏览器加载该页面,并单击其上的超链接。(3)系统使用javascriPt脚本语言检测客户端上是否安装了JRE(Java运行环境)。若未安装,则弹出一个对话框,询问是否自动下载并安装JRE;若已安装,考生单击Web页面上显示的JNLP文件超链接,即可启动在线考试模块。5.3系统的组卷方案分析5.3.1组卷算法简介自动组卷是题库管理模块中的最重要环节之一。目前,具有自动组卷功能的考试系统一般采用随机抽取法、回溯试探法和遗传算法。随机抽取法根据状态空间的控制指标,由计算机随机地抽取一道试题放入状态空间,验证通过后更新控制指标,再次随机抽取试题,此过程不断重复,直到组卷完毕,或己无法从题库中抽取满足控制指标的试题为止。该算法结构简单,对于单道题的抽取速度较快,但是对于整个组卷过程来说,组卷成功率低,即使组卷成功,花费时间也令人难以忍受,其仅适用于小型题库系统。回溯试探法是将随机抽取法产生的每一状态类型记录下来,当搜索失败时退回到上次记录的状态类型然后再变换新的搜索路径进行试探,通过不断的回溯试探直到试卷生成完毕或退回出发点为止。这种有条件的深度优先算法,使得组卷成功率非常高,但它对内存的占用量很大,算法复杂,而且抽取试题缺乏随机性,民组卷时间长,较适用于小型题库系统。遗传算法首先生成一定规模的初始群体,然后使其中的个体以一定的概率进行交叉与变异,实现个体结构的重组,再按预定的评价函数选择复制优秀的个体,组成新的一代,如此循环迭代,以期最终找到满足寻优条件的全局最优解。遗传算法以其具有自适应全局寻优和智能搜索技术,使组卷成功率和收敛速度都能得到明显提高。但是,针对问题设计的遗传、变异及杂交等算法比较复杂,实现较为困难,通用性不好,常用于大型题库系统。5.3.2抽题组卷算法的设计通过对以上算法优、缺点的分析,作为高校的日常课程考试,这里采用算法结构简单的随机抽取法。为了克服随机抽取法的不足,在制定组卷方案时,通过对知识点、题型和难度的合理分配,首先产生组卷方案PaperRuler,这样可大幅度缩小随机抽题的范围,从而提高抽题速度;其次根据方案表,从题库中逐一随机抽取试题。组卷算法根据相关参数生成试卷,系统的参数表有两个:试卷参数设置表PaperSetting,包括试卷套数、考试时间、总分值、二次登录密码、是否允许看成绩、每种题型的小题分等信息:组卷方案表PaperRuler,包括:知识点、题型、难度系数、题量等。另外,在题库中,试题的知识点按章节来表示,难度系数由任课教师在建设试题库时根据经验进行设置,曝光度通过试题表的字段numSelect(表示该试题已被抽取的次数)得出,抽题时曝光次数低的优先。抽题组卷的具体算法为:(1)根据组卷方案表,将当前章节某一题型所需的试题数存入变量testcount中,并从题库中取出该章节该题型的所有试题(2)按照题库中的曝光度对上一步取出的试题进行排序,并将它们的Id号存入数组TopicldArray中备选(3)初始化数组allRandom,用于存放被选出试题的ld号(4)l一K(5)判断K<=testcount,若不成立则跳至第14步(6)产生一个随机数放入变量location中(7)从TopicldArray中取第loCation个元素TopicldArray[location]的值存入变量templd中(8)1一m(9)判断m<k,若不成立跳至第11步(10)判断allRandom[m]与templd是否相等。若相等,说明选择的题目重复,则返回第6步。若不相等,m=m+1返回第9步(11)a11Random[k]=t

温馨提示

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

评论

0/150

提交评论