版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SpringBoot的智能组卷系统设计与实现摘要[摘要]计算机网络和人工智能在当今社会生活中得到了广泛的应用,在“互联网+教育”的时代背景下,计算机技术辅助教师出题已经成为时下人们关注的话题。本文在分析了国内外研究现状的基础上,针对教师人工组卷工作量繁琐、主观性强的问题,设计了一个基于SpringBoot的智能组卷系统,实现了用户管理、试题管理、试卷管理、智能组卷等功能。运用前后端分离的设计思想,前端采用Thymeleaf模板引擎,后端采用SpringBoot框架,利用MyBatis实现应用数据的持久化,并采用实数编码的遗传算法实现智能组卷,通过需求分析、系统设计、数据库设计、编码等工作最后完成系统的开发。通过试运行和测试验证,系统有友好的用户界面及良好的运行效果。[主题词]智能组卷,SpringBoot,系统开发,遗传算法目录TOC\o"1-3"\h\u161451.绪论 6311111.1.引言 620711.1.1.研究背景 6259791.1.2.研究意义 6105651.1.3.研究目的 693391.2.国内外研究现状 640421.3.论文的主要工作 7258461.4.论文的组织与结构 8221052.基于遗传算法的组卷策略 9196862.1.智能组卷的数学建模 9288762.2.智能组卷约束条件的确定 9305622.3.基于遗传算法的智能组卷的实现 10127942.3.1.遗传算法的主要思想 10265172.3.2.染色体编码方式 11259292.3.3.获得初始种群 11257462.3.4.计算适应度 11168282.3.5.遗传算子的设计 1132283.系统的需求概述 13272823.1.系统需求分析 1391803.1.1.功能性需求分析 1345263.1.2.系统数据库概念模型分析 204113.1.3.非功能性需求分析 23128913.2.系统开发的关键技术 23226494.系统的设计与实现 25202734.1.系统的设计 25146554.1.1.系统的总体架构设计 25133504.1.2.系统的类设计 25279504.1.3.系统功能的详细设计 2615464.1.4.系统数据库表设计 29276594.2.系统的实现 32294394.2.1.开发环境配置 3249084.2.2.登录模块的实现 34132374.2.3.管理员子系统的实现 35118644.2.4.教师子系统的实现 38193065.系统测试 47102945.1.登录模块测试 4794685.2.管理员子系统模块测试 47101385.3.教师子系统模块测试 48239625.4.算法性能测试 49184336.总结与展望 51209376.1.工作总结 51201986.2.展望 51265956.3.心得体会 513296参考文献 53绪论引言研究背景在注重过程评价的高等人才培养过程中,学生学习效果的评价是以形成性评价和终结性评价相结合为基础的,其中试卷考核依然是重要环节,在学习效果评价过程中有着不可替代的作用REF_Ref3586\r\h[1]。因此,试卷命题是否具有科学性、效用性关乎着能否准确的把握学生的学习效果。在既往的教学考核过程中,传统的人工命题方式存在着缺点。教师不可避免的主观随意性、耗时耗力、大量的重复劳动导致试卷命题质量不稳定,命题工作效率低下。同时,还容易出现难易度把握不足,知识点抽取分布不合理等问题REF_Ref4788\r\h[2]。针对上述问题,在“互联网+教育”时代背景下,迫切需要运用计算机技术设计和开发出一种智能的试卷试题库系统来代替传统的人工操作,以实现教学与考试的分离,来客观公正地评价教师的教学质量REF_Ref23793\r\h[3]。计算机技术在组卷的应用不仅可以减轻任课教师命题的工作量,还可以为各大公司在招聘过程中为人才选拔提供科学合理的笔试题。研究意义智能组卷系统与传统的组卷方式相比有着巨大的优势。一方面,可以节省大量的人力物力,降低考试成本,使考试变得更加高效。另一方面,通过智能组卷系统可以构建一个试题库,让教育者可以随时对题库的内容进行扩充和更新,实现了试题内容的集体共享和管理,也使得试题更具规范性和广泛性REF_Ref24205\r\h[4]。再者,试卷的保密性和科学性更高,试卷的生成是由算法实现的,由给定的可量化标准随机生成的,不存在规律性,避免了考生考前猜题,更加公平可靠REF_Ref28806\r\h[5]。研究目的近几年,随着高校改革的不断深入和发展,教考分离越来越成为人们关注的热点。教考分离能有效的帮助老师从繁琐的考务管理中解放出来,以便更好地投入日常的教育工作中,提高教学水平REF_Ref29453\r\h[6]。因此,本文旨在采用B/S模式设计出一个基于SpringBoot的智能组卷系统以推进高校教考分离,减轻老师工作负担,使得考试更加合理化、高效化。国内外研究现状在国外,很多国家已经将计算机技术应用到了在线教育中。美国洛杉矶学区研制的CTSS(ClassroomTeacherSupportingSystem)是世界上第一个试题库管理系统REF_Ref7968\r\h[7]。随着计算机技术的飞速发展和试题库建设中自动组卷技术的深入研究,许多发达国家都有自己相对成熟和稳定的试题库系统。利用这些形成的试题库系统,教学、职业考试等方面的考核和测试效率得到了显著提高。一些具体的应用包括:(1)美国教育考试中心举办的研究生入学考试(GRE)中的机考采用计算机自适应测试,更准确度量被测者的能力REF_Ref31203\r\h[8]。(2)英国应用的TEEP考试。在国内,以清华大学和南京大学为代表的试题库建设理论研究开始于90年代,其所代表的两个试题库系统对后来学者研究试题库管理和组织的研究有着深远影响,激发着更多学者投入研究REF_Ref31654\r\h[9]。2004年中国教育部试运行的CET4、CET6系统采用在线考试的方式。虽然不能自动组卷,但能对生成的试卷进行随机置乱其选项以实现自动组卷的功能REF_Ref31996\r\h[10]。在中国,一些商业化的网上考试系统也发展迅速,如驾校宝典以及各种公考软件。但这些系统的试卷都是随机的抽取题目,并没有实现智能组卷功能。虽然试题库系统的发展很大程度上简化了考试流程,提高了考试效率,但系统中的试卷大多是采用随机抽取试题组成试卷的方式。这种组卷方式较为简单,并不能很好的对考生的知识点掌握情况有一个较好的评估,试卷的效度和信度都没有充分体现,缺乏科学性。因此,越来越多的学者开始关注试卷的质量,智能组卷系统也因此孕育而生。顾名思义,智能组卷算法是智能组卷系统的核心。目前常见的组卷算法主要有回溯算法、启发式算法、人工鱼群算法、粒子群算法、遗传算法。胡维华等人利用五个策略(优先权策略、强并行策略、误差补偿策略、随机策略、回溯策略)实现了智能组卷,研制了多个课程的试题库系统并投入应用REF_Ref32382\r\h[11]。肖豆提出来了一种基于混合粒子群计算方法的智能组卷策略,即把遗传算子中的交叉和变异操作引入到标准粒子群算法中REF_Ref31654\r\h[9]。石慧升在遗传算法的基础上对其进行改进,实现了基于改进遗传算法的智能组卷系统REF_Ref9\r\h[12]。苏文成提出了一种优化的遗传算法,通过加入题型比重的对比公式,设计出一个组卷质量较高的智能组卷系统REF_Ref773\r\h[13]。王宣策等人使用分段的实数编码方式,将每个题型分成一个段,在各分段中进行交叉操作,随机选一个片段中的一个基因进行变异,提出了一种改进的遗传算法用于组卷REF_Ref1446\r\h[14]。F.Bellas等人通过引用内含子和启动子基因的概念,提出了一种基于启动子的遗传算法,该算法使用具有一组特征的基因型表示形式,这些特征可以在自我调节的种群中形成内在记忆,即个体的部分功能可以世代保存REF_Ref23027\r\h[15]。论文的主要工作本文旨在设计一个交互、科学、易用的智能组卷系统。Web技术已经渗透在社会生活的方方面面,用户仅仅通过浏览器就可以上网浏览获取所需的信息,给日常学习生活带来了极大的便利。基于Web技术的便利通用的特点,本文采用B/S的架构来实现智能组卷系统。相较于传统的C/S架构,B/S架构省去安装客户端的繁琐步骤,通过浏览器即可访问该系统,极大地满足了用户的日常组卷需要。本文首先对SpringBoot、Mybatis等建站技术进行详细的研究和介绍,随后智能组卷系统的功能性需求和非功能性需求进行分析,完成概要设计、详细设计,最后通过代码实现该系统。本系统采用MySQL数据库存储数据;使用基于实数编码的遗传算法实现智能组卷功能。论文的组织与结构本论文主体部分由六部分组成,各部分作用分别为:第一部分:绪论。本章首先介绍了系统的研究背景,论述本文的研究目的及意义,其次介绍了国内外研究现状,最后对本文主要研究内容和组织结构进行了介绍。第二部分:本章介绍了智能组卷算法的相关理论部分并对组卷的规则进行了分析。第三部分:系统概述。首先对智能组卷系统进行了需求分析,包括功能性需求和非功能性需求,其次介绍系统功能模块,设计数据库概念模型。最后将系统选用的建站技术做了简要介绍。第四部分:系统设计与实现。首先对智能组卷系统的总体框架进行介绍,分析系统的主要工作流程,设计系统的数据库表,最后对系统的各个功能模块进行设计与实现。第五部分:系统测试。本章对系统的功能模块进行了测试以及测试分析了组卷算法的性能。第六部分:总结和展望。本章写出了项目整个开发过程中的感悟和反思。总结全过程,阐述未来工作。基于遗传算法的组卷策略智能组卷算法是本文系统的核心部分,该算法选取的好坏与否决定着本系统能否产生出符合需求的试卷。通过上章对国内外组卷算法的研究分析,本文采取基于遗传算法的智能组卷策略作为系统的组卷策略。本章在对组卷问题详细分析的基础上,建立智能组卷的模型并详细阐述基于遗传算法的智能组卷策略在本系统中的实现。智能组卷的数学建模智能组卷问题实际上是一个多约束条件下的优化问题。在组卷前,需要先设置组卷需满足的要求,例如试卷总分、题型、题目数量、知识点覆盖率、难度等。矩阵实现试卷的空间状态表示,假设一道试题有n个属性,则用n维向量表示,那么aij就代表第i道试题的第j项属性,用m表示试卷所具有的试题数量,因此一个n×m的矩阵就可以表示一套试卷,矩阵表达式REF_Ref31654\r\h[9]如下式2-1。S=a11⋯本文系统的n取7,试题包括题型、科目、分数、难度、知识点等属性。智能组卷约束条件的确定约束条件通常被认为是提高组卷质量的重要组成部分REF_Ref2115\r\h[16],本系统对试卷的约束条件包括题型、题目数量、试卷总分、知识点覆盖率、难度系数等。下文将对这些约束条件进行介绍。题型本文系统将题型分为选择题、填空题、主观题三大类。用户在设置组卷约束规则时,需要输入这三类题型各需要题目的数量以及每个题型的分数。题目数量题目数量也就是三大题型中每个题型的数量之和,由用户设置后计算可得。试卷总分试卷总分由题型数量以及题型分数共同决定,表达式如公式2-2。K=T1∗T表示题型分数,A表示题型数量。知识点覆盖率知识点覆盖率是由用户输入的组卷需求的知识点集合中知识点的个数N与试卷实际包含的知识点个数M(去重后的结果,M≤N)决定的,表达式如L=MN难度系数用P表示难度系数,其表达式如公式2-4所示。P=i=1nT其中,n表示试卷包含的题目总数,T表示题目的分数,D表示题目的难度。本文将难度分成五个等级,如表2-1所示。表2-1难度等级表级别易较易难较难非常难难度值0~0.20.2~0.40.4~0.60.6~0.80.8~1.0基于遗传算法的智能组卷的实现遗传算法的主要思想遗传算法(GeneticAlgorithm,GA)是一种模拟自然界进化规律(即优胜劣汰)演化而来的并行搜索算法,其主要特征群体间的搜索以及群体中个体信息的交换REF_Ref2732\r\h[17]。遗传算法是从一个初始种群开始的,初始种群通过进化也就是选择、交叉、变异的操作产生一个新的种群,如果新的种群未满足期望适应度或者未达到最大迭代次数则继续进行选择、交叉、变异操作。遗传算法的执行流程图如图2-1所示。图2-1遗传算法流程图染色体编码方式在利用遗传算法实现本文系统前,首先实现遗传算法模型和试卷、试题等实体之间的映射。将试题映射为个体上的基因,试卷映射为个体,有多套试卷组成一个种群REF_Ref3261\r\h[18]。遗传算法中常见的编码方式有二进制编码和实数编码。二进制编码是将个体抽象为只有01的字符串,需要有繁琐编码解码的过程,不适合应用于本文系统。因此本文系统采用实数编码的方式,直接使用试题的题号进行编码,将同一类型的试题放在一起,省去了解码的操作,更加的方便直观。例如一套试卷需要2道选择题、3道填空题、2道主观题,则染色体编码如表2-2所示。表2-2染色体编码选择题填空题主观题141586256478265获得初始种群通过对本文系统的组卷约束条件的需求进行分析,可以得出组卷约束条件包括:题型、题目数量、总分、知识点覆盖率、难度系数。在初始化种群时,先设置种群大小,本文采用20REF_Ref3261\r\h[18],然后随机产生指定数量的题型即可满足题型、题目数量、总分的约束条件。因此使得约束条件从五个变为两个(知识点覆盖率、难度系数),这样算法的迭代次数将会减少,加快算法的收敛。计算适应度在遗传算法中,适应度函数是评判种群中个体优劣的标准,由上文可知,适应度函数只需要考虑知识点覆盖率和难度系数这两个约束条件。适应度函数如公式2-5所示。F=1−(1−L)∗t其中L为知识点覆盖率如式2-3计算所得,EP为用户期望难度(由用户在输入组卷需求时输入),P为试卷实际难度系数如式2-4计算所得,t1为知识点覆盖率所占的权重,t2为难度系数所占的权重。当t1=0遗传算子的设计选择算子本文系统采用精英策略REF_Ref12611\r\h[19]和轮盘赌策略以选择当前进化种群中适应度最好的个体。具体实现过程:指定一个固定大小的淘汰种群,随后从原始种群中随机选择个体保存到淘汰种群中,最后从淘汰种群中选择适应度最好的个体作为选择算子的结果。交叉算子交叉算子只能从选择算子选择的个体中进行交叉操作。本文系统采用的交叉策略是:通过选择算子选择出两个个体,一个作为父亲个体,另一个作为母亲个体,在[0,n)之间随机产生两个整数n1、n2,将父亲基因序列上[n1,n2)之间的基因全部遗传给子代,将母亲基因序列上的n1和n2之外的序列遗传给子代。在遗传的过程中,要保证基因不重复,如果重复则需要从题库中重新选择一题与重复题包含知识点相同、分值相同且题型相同的题目遗传给子代。注意所有遗传都要保证基因在染色体上的相对位置保持不变。子代即作为交叉算子的结果。交叉操作实例如图2-2所示。图2-2交叉操作实例图变异算子实际上,变异的概率是是非常小的,每个个体的每个基因都有可能发生变异。为了实现种群的多样性,本文选取0.085REF_Ref31996\r\h[10]作为变异概率REF_Ref31996\r\h,变异操作如下:随机选择一个变异位置,其后从题库中选择一道相同题型、相同分数、相同知识点的题目进行替换。变异操作实例图如图2-3所示。图2-3变异操作示例图系统的需求概述系统需求分析需求分析是系统开发中不可或缺的环节,该阶段的目标是把用户的需求进行分析和整理,明确系统需要实现的功能和工作。除此之外,需求分析还应该包括对系统性能和运行要求等方面的非功能性需求。需求分析对后续开发阶段有着指导统领作用,推动着整个项目的进行。本节针对智能组卷系统的功能性需求和非功能性需求进行了阐述,并具体介绍了系统的各个功能模块。智能组卷系统是将传统的线下命题工作移至线上进行REF_Ref3999\r\h[20],采用智能组卷算法并结合Web技术的优势,不仅克服了教师命题工作中存在的主观性太强的问题,提高试卷的科学性,而且极大地简化了命题流程,将老师从繁琐的命题工作中解放出来。本文通过分析时下较为流行的建站技术和组卷策略,采用前后端分离模式,前端使用Thymeleaf框架,后端使用SpringBoot框架,实现系统的编码工作;组卷算法采用基于实数编码的改进遗传算法;并根据访问者的不同进行了权限的设置。以满足考试流程的自动化、试卷客观公正性、安全性的需求。功能性需求分析运用模块化的程序设计思想REF_Ref4486\r\h[21],将本系统分为用户管理模块、科目管理模块、题库管理模块、试卷管理模块,系统的功能结构图如图3-1所示。图3-1系统功能结构图根据访问者的不同,设置不同的访问权限。目前用户主要包括管理员和教师两类。管理员拥有最高权限,可以增加、注销教师用户,也可以对教师用户的资料进行查看、修改,还可以对试题库和试卷库进行查看和管理,管理员的用例图如图3-2所示。教师用户负责试题库的管理,增加或删除试题库中的试题,可以选择智能组卷亦或是选择手动组卷,还可以查看试卷并做出相应的修改和删除操作,教师用户的用例图如图3-3所示。图3-2管理员用例图图3-3教师用例图用户登录用户分为管理员和教师,用户选择自己对应的角色进入相应的界面。管理员输入帐号和密码,并填写界面上的验证码,选择管理员身份,点击登录,系统检查无误后,成功登录系统。教师输入管理员分配的帐号,除了在选择身份时选择教师,其他操作与管理员一致。登录模块用例图如图3-4所示。图3-4登录模块用例图登录模块用例规约如表3-1所示。表3-1登录模块用例规约用例名称登录用例执行者管理员、教师用例描述用户正常进入系统前置条件用户进入登录界面后置条件登录成功管理员进入管理员系统教师进入教师系统主过程描述用户进入登录界面系统显示登录表单页面,包括帐号、密码、验证码、登录角色选择用户输入用户名、密码、输入正确的验证码并选择自己所属的用户角色用户点击登录按钮系统采用session保存用户信息对象分支过程描述系统弹出“用户名或登录密码有误”对话框,用户点击“确定”,重复主过程3,4涉及的业务实体用户表管理员子系统模块管理员拥有智能组卷系统的最高权限,拥有用户管理、科目管理、题库管理、试卷管理等功能。管理员子系统结构图如图3-5所示。图3-5管理员子系统结构图用户管理:实现对教师用户的添加、修改、注销等功能,为教师用户分配帐号。用户管理活动图如图3-6所示。图3-6用户管理活动图科目管理:管理员根据教学大纲安排添加相关科目,或者修改、删除相关科目,便于教师在其所教学的相关科目下管理试题,也便于管理员自身对所有科目下的试题的管理。科目管理活动图3-7所示。图3-7科目管理活动图试题管理:管理员可以浏览查看由教师添加的试题列表,对不符合考纲要求或者内容敏感的试题进行删除。试题管理活动图如图3-8所示。图3-8管理员试题管理活动图试卷管理:管理员可以浏览查看已由教师完成组卷的试卷列表,定期删除不符合需求或者已经过时的试卷,还可以导出并下载选中的试卷。试卷管理活动图3-9所示。图3-9管理员试卷管理活动教师子系统模块教师子系统的功能主要是实现对试题库的管理以及完成组卷工作。教师子系统结构图如图3-10所示。图3-10教师子系统结构图题库管理:教师选择自己所涉及的科目,然后在该科目下进行对试题的管理。教师根据考纲需求对试题进行增删查改等操作。在添加试题时要为试题选择题型、难易程度、所涉及的知识点等属性。对于新出现的题型或者知识点教师也可以进行添加,以确保题库内容的完整性与健壮性。题库用例活动图3-11所示。图3-11教师题库管理活动图试卷管理:教师可以选择智能组卷和手工组卷两种组卷方式。智能组卷是由系统根据教师设置的组卷约束条件并采用组卷算法自动生成合格试卷的组卷方式,是本系统最核心的部分,本系统所采用的组卷算法以及原理已在第二章进行了详细的介绍。手工组卷是教师根据自身需求选择试题库中的试题所完成组卷的组卷方式。手工组卷的主观性较大,可用于日常对学生有针对性的测试过程中。教师还可以对已经合格的完整试卷进行下载或者删除。教师组卷活动图如图3-12所示。图3-12教师组卷流程图系统数据库概念模型分析利用数据库技术可以对收集到的数据进行合理筛选、综合整理、有效储存,然后根据用户不同需求进行分析管理,为后面应用系统的开发提供数据支持REF_Ref4891\r\h[22]。可以将数据库概念模型看作是现实世界和机器世界的一个中间层次,人们通常数据库概念模型进行信息世界的建模,以此来帮助数据库设计人员更好地设计数据库。本文采用目前较为流行的实体联系模型(E-R模型)进行数据库概念模型分析。根据上文的需求分析,本系统可分为用户实体、科目实体、试卷实体、试题实体、题型实体、知识点实体。下文将对这几个实体进行概念模型建模。用户实体用户实体主要包括用户编号、用户名、登录密码、类型、备注信息等属性。用户编号具有唯一性,系统会为每个用户分配一个专属编号以区分其他用户。用户名和登录密码由用户自己设定并且可以修改,是用户能够成功登录系统的重要依据。本系统面向的用户有两类,一类是管理员,一类是教师,因此可以用类型来区分系统用户。如图3-13所示。图3-13用户实体属性图科目实体科目实体主要包括科目编号、科目名称、备注等属性。科目编号唯一确定科目,是关键属性。如图3-14所示。图3-14科目实体属性图试卷实体试卷实体主要包括试卷编号、科目编号、组卷人、评卷人、出卷日期、用卷日期、试卷总分数、答题时间和备注信息等属性。用于组卷完成后存储试卷的相关数据。如图3-15所示。图3-15试卷实体属性图试题实体试题实体主要包括试题编号、科目编号、科目名称、知识点、题型、试题内容、试题分值、难度值、试题答案和使用频率等属性。是本系统的核心部分,其中科目、知识点、题型、难度值、试题分值等作为组卷的重要约束条件在组卷过程中被使用。如图3-16所示。图3-16试题实体属性图题型实体题型实体主要包括题型编号、分值、题型名称、备注等属性。题型编号具有唯一性,参与组卷过程中的编码工作。如图3-17所示。图3-17题型实体属性图知识点实体知识点实体包括知识点编号、知识名称、科目编号、备注等属性。如图3-18所示。图3-18知识点实体属性图在本文系统中存在以下重要关联关系:一套试卷包含多道试题,一道试题可以属于多套试卷,一个科目下有多道试题,一种题型下有多道试题,一个知识点下有多道试题,一个科目下有多个知识点、一个科目下有多套试卷。智能组卷系统的整体E-R图如下图3-19所示。图3-19智能组卷系统整体E-R图非功能性需求分析功能性需求分析具体描述了系统做什么,而非功能性需求分析则描述了系统做得有多好。因此,在需求工程中就应当考虑非功能性需求,这些需求将对系统的设计和构造产生重大的影响。安全性用户只有输入正确的帐号和密码才能成功进入系统,并且设置输入验证码验证环节,保证当前使用系统的是人而非机器。对于用户输入的密码进行加密存储,保证用户的帐号不会被盗取直接登录。可扩展性和可维护性智能组卷系统应该具有良好的可扩展性和可维护性,以应对未来人们对系统到的更多要求和组卷算法的不断发展,为后期升级维护打好基础REF_Ref31996\r\h[10]。系统操作要求本文系统面向的群体大部分是老师,系统应该界面友好,具有良好的引导用户使用作用,方便教师能够快速上手。系统开发的关键技术智能组卷系统采用基于B/S结构的前后端分离开发模式。前端采用HTML+css+JavaScript等网页开发技术实现前端页面的显示,这部分是用户可见的部分,也是用户获取信息和与系统实现交互的窗口。采用Bootstrap的前端开发框架使得前端界面更加美观便捷,其包含着非常丰富的Web组件(下拉菜单、导航、按钮组、分页、排版等),使用这些组件可以快速搭出一个美观、功能完备的网站,极大简化了程序员的开发工作。Bootstrap还支持13种jQuery插件(模式对话框、标签页等),这些插件赋予了组件“生命”,使得用户能够更好地与网站交互。后端采用SpringBoot开发框架,持久层采用MyBatis框架,以上框架都是目前使用较多的框架。下文将对系统采用的开发框架做个简单的介绍。SpringBoot框架SpringBoot是由Pivotal团队开发的一种全新的轻量级Web框架,该框架是在Spring框架的基础上开发的,Spring框架虽然功能强大,具有控制反转(InversionofControl,IOC)的特性,其通过依赖注入(DependencyInjection,DI)和面向切面编程(AspectOrientedProgramming,AOP),用简单的Java对象(PlainOldJavaObject,POJO)实现EJB的大部分功能,但是随着Spring框架被运用的越来越多的场景,出现了配置繁琐、开发耗时、可读性变差等问题。为了解决上述问题,SpringBoot便孕育而生。SpringBoot采用“约定大于配置”的思想,通过自动装配以简化Maven配置,进一步简化了Spring应用的搭建过程,让程序员能更加专注于应用业务逻辑的实现REF_Ref5675\r\h[23]REF_Ref5685\r\h[24]。ThymeleafThymeleaf是用于Web和独立环境的服务器端的Java模板引擎,其主要目的是提供一个优雅和高度可维护的创建模板的方式,它还可以进行简单的SpringBoot集成。Thymeleaf在不启动整个应用的情况下可以正确显示HTML,可以用作静态原型REF_Ref5675\r\h[23]REF_Ref6315\r\h[25]。MyBatisMyBatis源自Apache的开源项目iBatis,后来被迁移到谷歌代码中,并被更名为MyBatis。MyBatis封装了几乎所有JDBC操作,并扩展了参数设置和返回结果集的功能。通过解析配置文件和相应的映射文件,扩展了原有的JDBC函数,使得应用程序与数据库之间能进行简单的交互REF_Ref7379\r\h[26]。系统的设计与实现系统的设计系统的总体架构设计在系统开发过程中,一般需要考虑整体配置问题、分层问题、持久问题。分层问题就是将系统分为模型层面、视图层面、控制层面三个核心部分,强制地使程序将输入、处理和输出分开,具有低耦合高重用的优点,简化了程序员的开发工作。持久问题就是在使用SQL语句实现数据传输的过程中,将所阐述的数据和对象进行持久操作REF_Ref8238\r\h[27]。本文系统后端采用SpringBoot、MyBatis的开发框架。SpringBoot是解决整体配置、分层问题的框架,实现业务为逻辑。MyBatis解决持久问题,与数据库进行数据传输。智能组卷系统的总体架构如图4-1所示。图4-1总体架构图系统的类设计根据需求分析,本文系统设计创建了User、Subject、Topic、Knowledge、Question、Paper等实体类,这些实体类包含着其所涉及业务的具体相关信息。构建系统总类图如图4-2所示。图4-2系统总类图系统功能的详细设计在软件工程中,详细设计是基于需求分析实现系统的每个功能模块的算法设计等,为编码工作奠定基础。下文将阐述智能组卷系统的详细设计过程。管理员子系统用户管理:管理员成功登录后,点击“用户管理”按钮,进入用户管理页面,系统查询数据库中的用户列表并返回给页面进行显示。根据实际需求,管理员还可点击该界面上的“添加用户”、“删除用户”等按钮实现用户的增加和删除,系统将用户对象更新到数据库中,然后返回更新列表。如图4-3所示。图4-3用户管理科目管理与系统管理的操作相类似,在此不做赘述。题库管理:管理员成功登录后,点击“题库管理”按钮,进入题库管理页面,选择要查看题库所在的科目,系统根据科目参数查询数据库中的题库列表并返回给页面进行显示。根据实际需求,管理员还可点击该界面上的“删除”等按钮实现试题删除,系统将试题对象更新到数据库中,然后返回更新列表。如图4-4所示。图4-4题库管理试卷管理与系统管理的操作相类似,在此不做赘述。教师子系统题目管理:教师登录成功后,点击“题目管理”按钮,进入题目管理页面,系统根据教师ID查询数据库中的试题列表并返回给页面进行显示。如果教师需要新增题目,只需点击界面上的“新增”按钮,在弹出的页面中输入试题的科目、题型、知识点、内容、答案和分数等参数,点击提交,系统就将题目对象更新到数据库中,操作结果返回给教师。如图4-5所示。图4-5题目管理智能组卷:教师登录成功后,点击“智能组卷”按钮,进入智能组卷界面,填写所要组卷的试卷名称、科目、题型和试题难度系数等约束条件,将其提交给系统,系统采用算法完整智能组卷过程并将完成的试卷返回给系统进行显示。如图4-6所示。图4-6智能组卷教师系统中的知识点管理和题型管理与管理员子系统中的用户管理的操作类似,在此不做赘述。系统数据库表设计本文系统采用MySQL数据库进行数据存储,MySQL数据库作为关系型数据库具有体积小、速度快、易于维护等优点,是作为中小型网站系统存储数据的佳选REF_Ref3999\r\h[20]。数据库表是基于上文分析的数据库概念模型进一步优化数据库的逻辑设计内容。本系统数据库命名为paper_composition_db,其主要涉及到的表有:用户表、科目表、试卷表、试题表、题型表、知识点表等。用户表设计用户表(user):用来记录用户的信息,用户表详细设置如表4-1所示。表4-1用户表字段名数据类型数据长度是否为空说明user_idint11否自增iduser_namevarchar50否用户名passwordvarchar50否密码typeint11否用户类型,0为管理,1为教师notevarchar128是备注科目表设计科目表(subject):用来记录科目的信息,科目表详细设置如表4-2所示。表4-2科目表字段名数据类型数据长度是否为空说明subject_idint11否自增idsubject_namevarchar50否科目名称notevarchar128是备注试卷表设计试卷表(paper):用来记录试卷的信息,试卷表详细设置如表4-3所示。表4-3试卷表字段名数据类型数据长度是否为空说明paper_idint50否自增idsubject_idint11否科目编号(外键)user_idint11否用户编号(外键)group_peoplevarchar50否组卷人group_datedatetime-否出卷日期use_datedatetime-是用卷日期answer_timeint11否答题时间total_scoreint11否总分数downloadint11否下载次数notevachar128是备注题型表设计题型表(topic):用来记录题型的信息,题型表详细设置如表4-4所示。表4-4题型表字段名数据类型数据长度是否为空说明topic_idint11否自增idtopic_namevarchar50否题型名称scoreint11否分数notevarchar128是备注知识点表设计知识点表(knowledge):用来记录知识点的信息,知识点表详细设置如表4-5所示。表4-5知识点表字段名数据类型数据长度是否为空说明knowledge_idint11否自增idknowledge_namevarchar50否知识点名称subject_idint11否科目编号(外键)notevarchar128是备注试题表设计试题表(question):用来记录试题的信息,试题表详细设置如表4-6所示。表4-6试题表字段名数据类型数据长度是否为空说明question_idint50否自增idsubject_idint11否科目编号(外键)knowledge_idint11否知识点编号(外键)topic_idint11否题型编号(外键)user_idint11否用户编号(外键)subject_namevarchar50否科目名称contenttext-否试题内容answertext-否试题答案scoreint11否分数difficultfloat11否难度值exposure_rateint11否使用频率notevachar128是备注根据上文的数据库需求分析,使用PowerDesigner设计出系统的概念数据模型(ConceptualDataModel,CDM),再利用该工具将其转换为物理数据模型(PhysicalDataModel,PDM),如图4-7所示,最后导出sql语句,使用Navicat运行导出的sql语句即可生成本系统所需的数据库。PowerDesigner是Sybase公司的CASE(ComputerAidedSoftwareEngineering)工具集,运用软件工程的思想,它几乎囊括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,还可以为数据仓库制作结构模型,也能对团队设计模型进行控制。Navicat是强大的数据库管理和设计工具,具有可视化界面,方便用户使用。图4-7智能组卷系统PDM图系统的实现开发环境配置本系统前端采用thymeleaf的模板引擎框架,后端采用SpringBoot框架,使用MyBatis框架完成数据的持久化操作。具体的开发环境配置如表4-7所示。表4-7开发环境配置运行系统Windows10开发工具IntelliJIDEA2019.3.3JDKJDK1.8Mavenapache-maven-3.6.1服务器SpringBoot内嵌Tomcat服务器数据库MySQL5.7数据库管理工具Navicat11.0.8.0在开发过程中使用Maven管理开发需要用得到的jar包,通过配置项目的pom.xml文件即可导入jar包。如图4-8所示。图4-8pom.xml配置文件MyBatis的配置文件是generatorConfig.xml,通过配置该文件即可生成操作数据库的dao文件和mapper文件。如图4-9所示。图4-9generatorConfig.xml配置文件登录模块的实现本文系统配置的用户有管理员和教师,用户在登录界面输入帐号、密码、验证码以及用户类型,通过表单的形式将数据传给后端的LoginController,登录控制器判断表单数据是否为有效数据,如果是有效数据则将数据传给UserService进行验证帐号密码的正确性,正确则成功登录系统。登录模块的关键代码如图4-10所示。图4-10登录模块代码用户登录界面如图4-11所示。图4-11登录界面管理员子系统的实现管理员子系统包括教师用户管理功能、科目管理功能、试题管理功能、试卷管理功能。因为上述功能的实现过程相似,以用户管理功能为例进行详细的阐述。管理员登录成功后进入管理员界面如图4-12所示图4-12管理员系统主页管理员点击左侧导航栏的“用户管理”按钮,后端的UserManagerController将调用UserService的getUserPage()方法,此方法调用UserMapper的findUserList()方法去查询数据库中的用户列表信息,然后将结果返回给前端显示。在显示用户列表信息的时候,使用了jQuery的jqGrid的插件进行显示。用户管理的前端代码和后端核心代码如图4-13、图4-14和4-15所示。图4-13用户管理前端代码图4-14用户管理jqGrid代码图4-15用户管理后端代码用户管理的界面图如图4-16所示。图4-16用户管理界面本文系统实现了对用户进行新增、删除、修改的功能。用户新增点击系统界面上的“新增”按钮,将弹出添加用户信息的模态框,用户输入待添加用户的帐号密码,点击“确定”,前端将用户信息以表单的形式传给后端,后端的UserManagerController新建一个用户对象,将使用MD5加密算法加密的密码和帐号传给新建的用户对象,调用UserService的saveUser()方法,把用户对象保存到数据库中即可实现新增用户的功能。后端代码如图4-17所示。图4-17新增用户后端代码用户新增的显示界面如图4-18所示。图4-18用户新增界面用户删除用户删除实现了批量删除和针对某一个用户的具体删除。批量删除先选中待删除用户列表最前端的复选框,点击红色删除按钮,前端将选中用户的id数组传给后端,后端UserManagerController调用UserService的deleteUsers()方法删除数据库中id数组中的用户信息。后端代码如图4-19所示。图4-19删除用户后端用户删除界面如图4-20所示。图4-20用户删除界面教师子系统的实现教师子系统是本文系统的核心部分,包括知识点管理模块、题型管理模块、试题管理模块以及智能组卷模块。由于知识点和题型管理模块与试题管理模块实现过程相似,本小节重点阐述试题管理模块以及智能组卷模块。试题管理如图4-21所示,教师点击左侧导航栏“题目管理”按钮,界面就会显示当前数据库中的题目列表,在此页面教师可以完成题目的增删改查功能。图4-21试题管理界面图4-22是新增试题的界面,教师点击“新增”按钮即可弹出模态框,教师在此界面输入试题的相关信息,点击“确定”,前端通过ajax将数据传给后端的TeacherQuestionController进行处理,调用questionService的saveQuestion()方法将试题信息保存到数据库中。代码如图4-23所示。图4-22新增试题界面图4-23新增试题后端代码点击试题列表操作列的“删除”按钮,前端将选中试题的id传递给后端的TeacherQuestionController,通过调用questionService的deleteQuestion()方法即可删除数据库中该道题目。代码如图4-24所示。图4-24删除试题后端代码智能组卷智能组卷算法在第二章已经做了详细的介绍,在此只针对代码和具体实现效果进行介绍。在这个模块有三个重要的实体,分别是:RuleBean、CompositionPaper以及Population。RuleBean是组卷规则,系统从前端获得用户输入的组卷信息(组卷科目、题型数量、题型分数、知识点)保存到RuleBean中以便后期组卷时调用。如图4-25所示。图4-25RuleBeanCompositionPaper实体保存组卷过程中的试卷信息,包含了适应度、知识点覆盖率、试卷总分、试卷难度系数以及试题列表。如图4-26所示。图4-26组卷实体CompositionPaper实体中,getTotalScore()用于计算试卷总分(图4-27),getDifficulty()用于计算试卷难度系数(图4-28),setKpCoverage()用于计算试卷的知识点覆盖率(图4-29),setAdaptationDegree()用于计算试卷的适应度(图4-30)。 图4-27试卷总分图4-28难度系数图4-29知识点覆盖率图4-30适应度Population实体是组卷过程中产生的种群,也就是包含了多套试卷,初始化种群、精英策略均在该实体实现。如图4-31和4-32所示。图4-31初始化种群图4-32精英策略selectFactor()是计算选择算子的方法,如图4-33所示。图4-33选择算子crossFactor()是计算交叉算子的方法,如图4-34所示。图4-34交叉算子mutate()是计算变异算子的方法,如图4-35所示。图4-35变异算子evolvePopulation()是种群进化的方法,如图4-36所示。图4-36种群进化填写组卷规则的前端界面如图4-37所示。图4-37组卷规则界面组卷结果的前端界面如图4-38所示。图4-38组卷结果界面系统测试系统测试是一个项目开发过程中必不可少的一部分,也是软件工程中的重要组成部分。通过有效合理的测试可以检验系统是否完成了需求分析所要求的功能,也可以让开发人员发现系统存在的问题以便于进行改进。登录模块测试登录模块的测试用例如表5-1所示。表5-1登录模块测试用例编号测试功能测试步骤预期结果测试结果是否通过001用户登录用户输入帐号密码、验证码以及选择用户类型。点击“登录。”用户登录成功与预期结果一致是002用户登录输入错误的帐号密码、验证码。点击“登录”。用户登录失败,并显示相关失败信息。与预期结果一致是管理员子系统模块测试管理员子系统模块测试用例如表5-2所示。表5-2管理员子系统测试用例编号测试功能测试步骤预期结果测试结果是否通过003添加用户点击“添加”按钮。输入用户信息。点击“确定”。用户添加成功,并在用户列表中刷新出新添加的用户信息。与预期结果一致是004修改用户点击用户列表中的“修改”按钮。显示用户信息。修改用户信息。点击确定。用户信息成功修改。与预期结果一致是表5-2管理员子系统测试用例(续)编号测试功能测试步骤预期结果测试结果是否通过005删除用户点击用户列表中的“删除”按钮。点击弹框中的“确定”。用户信息被删除。与预期结果一致是006添加科目点击“添加”按钮。输入科目。点击“确定”。科目添加成功,并在科目列表中刷新出新添加的科目信息。与预期结果一致是007删除科目点击科目列表中的“删除”按钮。点击弹框中的“确定”。科目信息被删除。与预期结果一致是008删除试题点击试题列表中的“删除”按钮。点击弹框中的“确定”。试题信息被删除。与预期结果一致是009删除试卷点击试卷列表中的“删除”按钮。点击弹框中的“确定”。试卷信息被删除。与预期结果一致是教师子系统模块测试教师子系统模块测试用例如表5-3所示。表5-3教师子系统测试用例编号测试功能测试步骤预期结果测试结果是否通过010添加试题点击“添加”按钮。输入试题信息。点击“确定”。试题添加成功,并在试题列表中刷新出新添加的试题信息。与预期结果一致是表5-3教师子系统测试用例(续)编号测试功能测试步骤预期结果测试结果是否通过011删除试题点击试题列表中的“删除”按钮。点击弹框中的“确定”。试题信息被删除。与预期结果一致是012智能组卷点击“智能组卷”按钮。输入组卷规则。点击“组卷”。系统成功组卷,返回符合组卷规则的试卷。与预期结果一致是013删除试卷点击试卷列表中的“删除”按钮。点击弹框中的“确定”。试卷信息被删除。与预期结果一致是通过本节的单元测试可以得出本系统基本实现了需求分析中的需求,登录模块、管理员子系统和教师子系统均能正常运行。算法性能测试本文系统选择《高中历史》科目进行组卷测试,题库中共有500道试题,题型包括选择题、填空题、判断题三种题型,这三种题型的题目数量分别为236、141、123。涉及的知识点有六种,难度级别为五。试题库中试题难度和知识点的分布情况如表5-4所示。表5-4试题库试题难度和知识点分布表知识点一知识点二知识点三知识点四知识点五知识点六题量易102020103010100较易203030202010130中143135633720200难51510510550较难14523520题量5010010010010050500本文系统的算法参数如表5-5所示,组卷要求如表5-6所示。表5-5算法参数表种群规模知识点权重难度权重变异概率200.50.50.085表5-6组卷要求表数量分数期望难度知识点覆盖范围选择题1020.5前四个知识点填空题45主观题320根据上述表格的数据设置进行组卷实验,实验结果如表5-7所示。表5-7试卷表题型试题ID难度知识点选择题380.4三1950.4三4670.8四420.4四180.4一330.2三2210.4四300.2三230.4二填空题510.4一610.2三3050.6三4510.8二主观题2360.4四3700.6四630.6一组卷结果的难度系数为0.50,适应度为0.999。从上述实验结果分析可得,本文系统能够按照用户需求从试题库中抽取相关难度和知识点的试题,从而组成一套满足用户需求的试卷,具有较好的组卷效果。总结与展望工作总结本文系统在阅读大量文献资料的基础上,运用软件工程的思想,经历了需求分析、详细设计(包括数据库设计和程序设计)、编码工作、系统测试,最后实现了基于SpringBoot的智能组卷系统。本文的所作工作如下:分析智能组卷系统的研究意义和研究目的,阅读文献并总结国内外研究现状。利用UML统一建模语言建立需求分析的模型以及详细设计的模型,为后面的编码工作提供了模型支撑。使用PowerDesigner为系统所需数据设计概念模型并转化为物理模型,最后导出sql文件,建立数据库,实现系统数据的持久化。运用前后端分离的思想,前端采用Thymeleaf的模板引擎,后端采用SpringBoot的框架,并使用MyBatis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产后乳房疏通按摩服务流程
- 脊柱矫正正骨技术操作规范
- 客户满意度调查执行方案
- 传统节日会员关怀慰问实施方案
- 荷斯坦奶牛乳房炎防控管理制度
- 烟粉虱生物防治技术操作指引
- 肩周炎理疗康复操作流程
- 花椰菜整枝打杈操作规范
- 风险点辨识评估管理办法
- 中医正骨复位操作流程
- 2025年度中国展览数据统计报告
- 黔西南布依族苗族自治州2025贵州黔西南州市场监督管理局下属事业单位十二届人博会引进高层次急需笔试历年参考题库典型考点附带答案详解
- 2025年兰州市事业单位《综合基础知识》真题及答案解析
- 2026年甘肃省张掖市山丹县教育系统招聘教师33人笔试备考试题及答案详解
- 2026护工证考试题库及答案
- 2026四川乐山市马边彝族自治县禾丰投资集团有限公司招聘财务人员1人农业笔试备考试题及答案解析
- 2026年大学生青年马克思主义者培养工程结业试题
- 2025年吉林省长春市中考生物真题(含答案)
- 协助执法工作制度
- 家校携手共育未来-2026年春季学期期中家长会校长讲话稿
- 江苏省建设工程监理现场用表(第七版修订版)
评论
0/150
提交评论