题库管理与试卷生成系统的设计与实现_第1页
题库管理与试卷生成系统的设计与实现_第2页
题库管理与试卷生成系统的设计与实现_第3页
题库管理与试卷生成系统的设计与实现_第4页
题库管理与试卷生成系统的设计与实现_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

哈尔滨学院学士学位论文题库管理与试卷生成系统的设计与实现前言当今社会上人们对高速度的生活的要求,所以需要一种便捷的题库管理与试卷系统来代替传统的组卷功能和题库管理功能,可以更高效率的完成普通考试能完成的功能,从而在增添一些传统对题库和试卷管理不能达到的功能。本文阐述了该题库管理与试卷生成系统的从市场调研,需求分析,概要设计和具体功能实现的详细过程。本文叙述了开发这个网站的全过程,具体情况如下。第1章,描述开发的背景意义、设计思想、并对可行性进行分析。第2章,本系统通过社会调研和市场调查,对需求进行分析。本章着重介绍五个大功能模块分别是注册功能、登录功能、试卷功能、题库功能、教师组卷功能、发布消息功能、管理员管理日志和权限等功能。并通过用例图和活动图详细介绍了各个功能的需求。第3章,是本系统的概要设计。从系统体系、功能模块方向简要介绍了各个功能的逻辑关系并通过绘制功能图,最后对本章进行总结。第4章,是本系统的详细设计,通过E-R图系统的表现数据库中表与表之间的关系。对各个功能模块的数据流向和逻辑关系通过时序图和流程图进行了详细的介绍。第5章,测试模块。本章分别从测试的目标、测试方案、测试用例和测试结果进行了介绍,保证系统的正确性和稳定性。第1章绪论1.1项目的背景和意义 人们进入了信息时代,以及网络的技术的发展,人们对信息的获取和网络的使用更加的高效,网络的普及也滋生出一批新的互联网公司的发展,人们完全就可以居家办公,进而促进了一些在线软件的发展。中国互联网络信心中心(CNNIC)发布的第44次《中国互联网络发展状况统计报告》[1]网民发面,截止2019年6月我国网民规模达8.54亿,较2018年底增长2598万,互联网普及率达到61.2%。学生希望根据自己的要求来制定学习的计划,希望得到科学准确的评价、老师也想改变一下传统的出题方式,改善工作方式,提高自己的工作效率,增加出题时的客观性公平性,加强对各个科目历年试题的整理,让学生能够自己的自身需求来更有效的学习,让管理员科学化管理,试卷存档、教育机构也想提高更加优秀更加全面的服务,增设题库功能以及题库中各类试题的储备量,让学生能够自己的自身需求来更有效的学习。互联网加考试的这种集合方式正符合现在当下的趋势,更有利于提高标准化高质量考试。伴随着软件和信息技术的发展和普及,系统的在线化程度的提高,导致许多应用技术的走向信息化。在线题库管理[2]与试卷生成[3]系统的可靠性、公正性和有效性,大大改善传统组卷方式,同时也节约了成本,并且符合时代发展的要求。本系统意在开发一个能够高效快捷的能够管理题库按照老师的要求快速组卷的系统。题库管理与试卷生成系,解决传统组卷复杂超长的周期,具有通透性,能满足多个学科的在线组卷和题库管理。可满足跨平台性,可扩展性,稳定性和可移植性。1.2国内外发展现状综述世界各国对教育的注重程度越来越大,都给予了前所未有的关注,都试图将教育事业发展作为国家强有力的支柱,将教育事业推向更加信息化更加智能化,从而使社会走在发展的前列,是国家基于发展的前列。21世纪可能是信息的高速公路,伴随着计算机网络的发展,远程教育是计算机网络信息化的体现,网络化的考试系统作为远程教育的组成成分和分支越来越引起国人和世界的关注,而题库管理模块和组卷功能模块作为考试流程中的重要环节,也引起了十分重要的的关注。网络的普及也降低了题库管理与试卷生成系统的整体成本,更符合长期发展和技术的革新。现价段题库管理与试卷生成系统有一种是学校搭建的局域网内的供教师和学生使用的题库管理与试卷生成考试系统,另一种是基于Web的题库管理与试卷生成考试系统。使用的架构模式大致也分为两种,一种是C/S架构,另一种是B/S架构。国际上比较领先用于开发在线题库管理与试卷生成系统平台的语言主要有ASP、JSP和PHP。为了满足Internet的快速发展,为了满足Web服务的更高要用,微软开发了一款.NET的开发平台,它可以在复杂的Internet的过程中简化Web应用的开发。现在很多公司都在开发一些在线的项目,其中在线考试系统也开展了很多年的时间,而作为在线考试系统的题库管理与试卷生成功能模块也成为了重点攻克的环节。目前上市面上有一些在线考试平台,例如Tomexam、考试星和优优系统等等。1.3实现目标题库管理与试卷生成系统主要覆盖学生、老师和管理员三类用户。本系统实现的功能如下所述。1、学生用户功能模块详细描述(1)学生可以查看自己的错题。(2)学生可以查看教师和管理员发布的最新消息。(3)修改自己的登录密码防止别人进行登录,获取到自己的个人信息。2教师人员功能模块详细描述教师管理功能分了七个模块。(1)教师用户可以修改自己的登录密码,防止他人进行登录。(2)教师可以管理自己所教学科的题库,包括试题的手动录入,试题的批量导入,试题难易程度的初始化,还可以管理不同题库的不同类型题。(3)教师可以根据考试要求组成试卷,这里分两种组卷方式。手动组卷,根据考试要求,选题库,填写书卷名称,内容面熟,筛选题库里面的试题进行手动的添加和删除。自动组卷,根据考试要求,选题库,选择试卷的难易程度,考试的范围,考试不同类型题的数据量,填好信息以后,系统会从老师给的信息从题库里面拿去试题组成试卷。(4)教师可以将自己组成的试卷,生成PDF,以方便以后的存档查看。(5)教师根据图表的形式查看自己管理的题库不同类型题的数量分布情况。(6)教师管理班级、学生、科目和章节。(7)教师发布消息给自己的学生,提醒他们学习。3、管理员功能模块详细描述(1)管理员的登录。(2)系统功能管理包日志管理和系统维护等。(3)权限的分配,分配给老师不同权限功能,不同老师之间不能够互相访问别人的工作模块,分配给教师管理不同班级和不同题库的权限。(4)人员的录入分为管理员的手动录入,添加学生和教师和批量录入这两种方式。(5)查看系统最近的登录情况。(6)管理员添加新的题库。(7)管理发布消息给学生。1.4系统的设计思想本系统的前期的需求分析,系统的设计与开发,以及后期的系统测试与维护都是完全按照软件开发的工程步骤以及要求来严格遵照的。使用了MVC(ModelAndView)的Web开发模式,运用接口来开发,将各个功能独立开来,完全降低项目的低耦合性,是每个服务层的功能高度集中,增加了极强的高内聚,使是项目后期的更好的开发以及功能的扩展。选择现在项目流行的常用的Java语言进行项目的开发。使用封装SQL语句的模式,将数据的处理封装在单独的数据层处理,使系统更好的重用性,增加软件开发模式要求的高内聚低耦合的开发模式,简洁的UI页面让用户操作更加方便。1.5系统的可行性分析1.5.1技术可行性分析本系统使用Spring的实体类工厂来管理我们的对象,对生命周期进行管理,让每个对象的依赖关系交给Spring来管理,封装了各层服务,增加了项目的高内聚和低耦合性,提升项目后期开发和完善的扩展性。使用关系型数据库,用Mapper的Xml文件封装SQL语句,在Mapper的主配置文件做映射处理,做全局代理,方便构造业务逻辑层,增加项目的灵活性。综上所述,从技术可行性上进行分析本系统的开发完全可行。1.5.2经济可行性分析项目运用的是开源免费的框架,运用开源的Java语言,开发工具Idea,服务器只需要笔记本上下载一个开源的Tomcat就可以。开发工具免费,开发框架开源,开发语言开源,开发人员一个具备软件开发能力的人。综上所述,从经济可行性上进行分析本系统的开发完全可行。1.5.3社会可行性分析本项目课题符合当代老师和学生的要求,也适合当代发展的趋势,改变原有的组卷模式,也有利于管理题库,让老师出题组卷时可以参考更多的题目,学生也可以能够不同的类型题,有利于自己对知识的掌握。综上所述,从社会可行性上进行分析本系统的开发完全可行。1.5.4操作可行性分析本项目运用UI用户界面,操作简单,有较强的实用性。用户可以根据加界面上的提示,进行操作。操作流程符合人们的思维逻辑,教师和管理员经过简单的培训就可以进行使用,对学生没有必须掌握计算机和软件知识的要求。综上所述,从操作可行性上进行分析本系统的开发完全可行。1.5.5可行性分析总结经过分析,很容易得出以下结论,在技术可行性分析层面,完全具备了开发一套成熟系统的能力和条件;在经济可行性分析层面,采用开源的框架和开发语言,自己拥有一台电脑就能搞定;在社会可行性分析层面,符合当代社会发展的要求,符合教育机构对当今题库管理和快速组卷和试卷管理的要求;在操作可行性分析层面,用户完全可以轻松上手使用,具有简洁的用户界面的和有完善的页面提示。因此,本系统具备了技术、经济、社会和操作方面的可行性,完全符合开发一款软件的要求,可以开发软件。1.6本章小结本章叙述了项目背景和项目意义,国内外发展现状,实现目标,系统的设计思想,可行性分析。综上所述,可以开发此系统。需求分析2.1任务概述2.1.1任务目标本系统方便学生对最近所学知识点的巩固与预习新课程打好提前量,方便高校去统一管理教师和学生。本系统要求要做到一个能管理学校各科试题的题库管理,包括了试题的添加,试题的更改,试题类型分类,试题的难易程度的初始录入和根据学生做题提交量和正确量来进行计算进行自动更新。包含了学生的错题以及收藏题存储,学生查看自己做题详情针对性的进行学习。对传统的考试出卷进行了升级,以前一场考试的出卷从试题的选取,试卷的整理,每道题的分数分配,以及最终通过审核,租后生成试卷,以及试卷的保密工作,只其中涉及的流程较多,周期较长,不能够满足当代人们对高速度的要求。本系统提供给教师两种组卷模式,一种是教师可以根据筛选条件查看对应题库里面的试题,从中手动筛选移动试题,组成一张试卷,可以手动设置分数;另一种是教师填选条件,给定分数,试卷包含的题型,考试的难易程度等条件,系统会根据老师给出的条件从中筛选符合要求的试题组成一章试卷。这两种组卷方式完全能够满足期末考试和普通的练习和章节测试,出卷之后对试卷进行分析,看包含的知识点。组成试卷后还可以生成PDF,用来试卷的存档,为以后查看做准备。2.1.2用户特点用户的特点如下面所描述。1、学生学生可以通过自己的学生端口,使用学号,密码以及填写验证码,当完全无误后可以登录该系统。使用验证码是为了防止有人恶意登录本系统,造成系统的宕机。学生可以自己以往做过的试卷,自己做的错题以及自己收藏的试题,学生根据自己学习的情况。2、教师教师可以通过自己的教师端口,使用工号,密码以及填写验证码,当完全无误后可以登录该系统。使用验证码是为了防止有人恶意登录本系统,造成系统的宕机。教师可以管理自己所教科目所对应的图库,包括了试题的添加,试题的更改,试题类型分类,试题的难易程度的初始录入和自动更新。教师也可以管理所教的班级,发布一些测试给学生。教师也可以组卷来一些阶段性测试,教师可以发布通知,来通知学生消息。教师根据统计图的形式可以直观的查看题库的数据,包括一科对应的题库里面不同类型题占有量。3、管理员管理员可以通过自己的端口,使用工号,密码以及填写验证码,当完全无误后可以登录该系统。使用验证码是为了防止有人恶意登录本系统,造成系统的宕机。管理员分配权限的权利,系统的维护,人员的批量导入以及系统日志的管理。管理员可以给老师分配管理班级的权限,管理题库的权限。通过系统管理员的管理,使本系统得以有条不紊的运行。2.2系统运行环境2.2.1软件平台服务器端操作系统采用Windows7或Windows10操作系统。客户端操作系统采用CentOS6.5及其以上版本或Windows7及其以上版本。开发工具使用MyEclipse10或MyEclipse2014、Dreamweaver、SublimeText。数据库版本MySQL8.0及其以上版本。数据库管理工具使用NavicatPremium12。Web应用服务器采用ApachTomcat7.0及其以上版本。2.2.2硬件平台1、服务器端硬件配置服务器选择采用Intel(R)Core(TM)i5-7200UCPU@2.50GHz2.70处理器。内存需要型号KingstonDDR3L1600MHz,规格4GB,数量2条。硬盘使用三星860evoSSD,容量500GB2块。显卡使用七彩虹IGameGeForceGTX1660SUPER6GBUltra。2、客户端硬件配置使用CPU至少双核以上CPU,IntelCore2.2GHz或更快的处理器。运行内存要求4GB及其以上。硬盘容量不低于128G。2.3系统功能性需求说明题库管理与试卷生成系统功能按用户分为三大类,详情如下描述。学生不需要注册,由管理员统一导入。学生可以查看自己的做题记录,可以查看自己的做题情况。教师不需要注册,由管理员统一导入。老师查看查看自己本学期所教的科目对应的题库,可以查看试题的类型,试题的难易程度,试题所属的章节,可以手动添加和批量导入试题功能。可以根据考试要求,可以通过手动组卷和自动组卷两种模式,填写符合要求的信息,现初步筛选出来一套试题来,然后教师可以进行多次修改试卷,最终生成一套完整的试卷,可已经生成的试卷生成PDF形式。管理员对学生和教师进行批量的导入,管理系统的日志,给老师分配权限,发布公告,统计系统的数据,支持和维护系统的正常运行。2.4业务功能说明2.4.1批量导入1、功能介绍本功能模块是由管理员进行批量的导入,分为队员的批量导入和试题的批量导入。人员的批量导入首先管理员下载一个Excel的模板[4],根据里面的样式进行填写,填写用户的基本信息,在填写完成以后点击提交,表单会进行一次检测,会给出几条信息合格,几条信息不合格,会将合格的插入到数据库中,将不符合要求的报告出来。试题的批量导入也需要管理员下载一个Excel的模板,根据里面的样式进行填写试题的各种信息,包括题目、试题描述、试题类型、试题难易程度、时刻答案和选择题的选项。在填写完成以后点击提交,表单会进行一次检测,会给出几条信息合格,几条信息不合格,会将合格的插入到数据库中,将不符合要求的报告出来,让用户可以知道自己录入的哪条数据不合格,方便进行修改操作。2、批量导入用例图教师/管理员试题批量导入用例图如图2-1。管理员人员批量导入用例图如图2-2所示。(1)用例名称批量导入。(2)参与者管理员。(3)基本路径系统管理员登录之后,管理员登录页面有一个批量导入按钮,点击按钮下载一个模板,按照模板进行填写,填写完之后选择文件进行提交。(4)前置条件管理员能进行正常的登录操作后。(5)后置条件普通用户填写基本信息,包括学号(工号),密码、手机、邮箱、真实姓名。学号(工号)是唯一且未在本系统注册过的,邮箱和手机必须是正确的格式,才可注册成功之后跳转至登录界面。图2-1教师试题批量导入用例图图2-2管理员人员批量导入用例图3、批量导入活动图用户批量导入时活动图如图2-3所示。先要下载Excel模板,将数据填写到表格中,再将表格上传到系统中,上传中进行验证,全部正确将成功上传到数据库。图2-3用户批量导入活动图图2-5学生/教师/管理员登录活动图2.4.2登录功能1、功能介绍本功能模块是学生、老师和管理员进入系统的必经之路,用户没有登录就不能对系统里面的功能进行操作。学生、教师和管理员他们有不同的登录端口,通过输入学号(工号)密码和验证码进行还有验证码进行登录。批量导入用例图用户登录成功首先要填写学号(工号)和密码,然后还要填写验证码,只有学号(工号)和密码都正确才能成功登录系统。用户登录例图如图2-4所示。(1)参与者学生、教师和管理员。(2)基本路径需要用户在登录页面选择自己要登录的端口,输入正确的学号(工号)和密码点击登录。(3)前置条件用户输入自己的学号(工号)和密码。(4)后置条件用户填写账号、密码,填写验证码单击登录按钮。如果信息正确即可进入本系统,否则提示错误,重新输入信息。3、登录功能活动图学生/教师/管理员登录功能活动图如图2-5所示。图2-4学生/教师/管理员登录用例图2.4.3试卷管理1、功能介绍教师对生成试卷的管理,可以查看自己以前所出的试卷,也可以以生成PDF形式方便存档管理。2、试卷管理用例图教师通过对试卷进行统一管理,可以方便查看试卷和试卷详情,也可以把试卷生成PDF[5]形式。试卷管理还有组卷功能,组卷功能在组卷功能处进行展示。教师可以查看试卷信息和试卷的增删改查操作,以及试卷生成PDF。试卷管理用例图如图2-6所示。(1)参与者教师。(2)基本路径教师登录系统/点击试卷管理/点击查看试卷/修改试卷/进行试卷试题的部分修改。教师登录系统/点击试卷管理/点击生成PDF。教师登录系统/点击试卷管理/点击删除试卷。(3)用例说明教师可以管理自己所教科目,自己所出的试卷。3、试卷管理活动图试卷修改首先点击试卷管理,查看你有多少张试卷,有试卷的修改和试卷生成PDF。点击试卷修改会将你选中试卷的信息带入到你要修改试卷页面,修改试卷信息,点击提交。试卷管理修改功能活动图如图2-7所示。试卷生成PDF功能活动图如图2-8所示。图2-6试卷管理用例图图2-7试卷修改活动图图2-8试卷生成PDF活动图2.4.4题库管理1、功能介绍题库管理模块,是由教师进行管理,教师管理这学期所交科目对应的题库。题库里面存储了包括试题类型,试题的难易程度,试题所属的章节,试题的正确答案,以及编程题的题目描述和测试样例。教师通过Echarts[6]的形式来查看本系统的题库,这样更加的直观,方便教师查看题库数据一目了然。使用分布式题库[7]技术,减轻数据库压力。教师对试题的批量导入功能,首先下载添加试题Excel模板,按照模板里面的样式和提示信息进行填写,填写完成后点击提交,会将符合填写要求的成功插入到数据库中,将填写不符合规格的信息返回回来。教师对题库里面的试题进行手动的添加、修改和删除。系统会根据学生的答题情况会自动更新试题的难易程度[8]。管理员添加和生成新的题库。题库管理模块是本系统的核心模块。2、题库管理用例图教师具有查看试题、增加试题、修改试题和删除试题的功能,录入试题时需要填写试题题目、试题描述、试题类型和答案。题库管理与试卷生成系统题库管理用例图如图2-9所示。(1)参与者教师。(2)基本路径教师登录系统/进入教师管理页面/点击题库管理/点击批量导入试题下载Excel模板/填写要添加的试题信息/点击上传。教师登录系统/进入教师管理页面/点击题库管理/点击添加试题/填写试题信息/点击保存。教师登录系统/进入教师管理页面/点击题库管理/点击修改试题/填写要修改的试题信息/点击保存。教师登录系统/进入教师管理页面/点击题库管理/点击删除/点击确定。管理员登录系统/进入管理员管理页面/点击题库管理/点击添加题库/填写要添加的题库名等信息/点击保存。(3)用例说明教师可以管理自己所教科目所对应的题库。3、修改试题活动图试题修改试题修改功能活动图如图2-10所示。4、录入试题活动图试题录入功能活动图如图2-11所示。2.4.5教师进行组卷1、功能介绍本模块是为了解决教师组卷而设计的,意在解决传统组卷的周期长,试题覆盖的知识点不够全面,试卷的保密性,以及试卷的反复修正等问题,极大的解决了试卷的重复修改性。教师组卷主要分为两种形式,一种是手动组卷类似于传统的组卷模式,另一种是自动快速组卷模式。手动组卷点击手动组卷,教师填写筛选信息,点击检索查找符合自己要求的试题,然后进行手动的拖拽,将自己想要的试题添加到待选区,然后在次进行筛选,点击提交。自动组卷使用了遗传算法,教师填写筛选信息,点击检索查看每种类型题填写自己想要的每个试题的数量,设置分数。组卷模块是本系统的核心模块。图2-10试题修改活动图图2-11试题录入活动图图2-9题库管理用例图2、组卷功能用例图组卷功能包括手动组卷和自动组卷,教师组卷功能用例图如图2-13所示。图2-13教师组卷用例图(1)基本路径点击试卷管理/填写筛选的信息/选择筛选出来的试题到待选区/从待选区中选出最终的试题/点击提交生成试卷。自动添加试卷/选自动组卷按钮/填写每个类型题的数量和分数/点击提交生成试卷。(2)后置条件点击生成试卷后,可以查看刚组成的试卷。图2-14手动组卷活动图图2-15自动组卷活动图3、手动组卷活动图手动组卷功能活动图如图2-14所示。4、自动组卷活动图自动组卷功能活动图如图2-15所示。2.4.6发布消息1、功能介绍教师/管理员点击发送消息,填写信息内容,点击发送按钮点击确定发送,消息发送成功,否则消息不会发送。2.4.7管理员管理系统日志1、功能介绍本系统会记录每一个登录到本系统的人的每一次操作,将操作信息存储到数据库中。解决因用户操作不当造成的系统数据丢失的找回,每一条操作都有记录,方便出现问题时的解决和责任划分。2.4.8管理员权限管理1、功能介绍管理员给老师分配权限,方便了权限的管理和分配。2、管理员权限管理用例图管理员权限管理用例图如图2-16所示。图2-16管理员权限管理用例图3、管理员权限管理活动图管理员点击权限修改信息,选择你要分配权限的用户,然后可以根据菜单的内容点击将想要分配的权限,这样就可以给用户重新分配权限,将分配好的信息数据插入到数据库中。管理员权限管理活动图如图2-17所示。图2-17管理员权限管理用例图图2-18教师管理用例图2.4.9学生功能1、功能介绍学生登录系统/进入学生欢迎页面,点击查看自己的做题记录可以查看自己做过的题,以及做题之后的记录,是正确了还是错误了。学生点击查看消息还可以查看自己教师发送的消息。2.4.10教师管理综合1、功能介绍教师对学院、专业、科目、科目所对应的章节、班级和学生的管理。对组卷管理、题库管理和试卷的管理功能在试卷、题库、组卷模块进行体现。教师管理用例图如图2-18所示。2.5性能与安全需求2.5.1信息安全性1、数据备份系统会在固定的时间间隔上自动对系统的数据库进行备份,保证了意外情况发生数据丢失的情况下数据的回复,自动备份避免了人为上的操作不规范导致的数据不准确性。2、数据加密在用户密码的信息存储上,采用MD5[9]的数据加密形式,保证用户信息的安全,即使是不法操作获取到了数据库的信息,他也无法通过正常的登录进入系统。3、数据库使用MySQL这种数据库,它的好处是能够支持大量数据的存储,方便用户操作时的信息交互。4、防止SQL注入后台使用MyBatis框架提供的xml文件配置的方法,将操作时用到的SQL语句封装在xml文件中,使用提供的自定义代码块注解,可以一次定义多次调用,方便了系统的灵活性,同时也防止了SQL注入的危险。同时使用监听器和连接器等手段加强防止SQL注入。前台使用的前端检验功能,防止了用户不正当的操作,将不正确不符合条件的数据进行拦截操作,降低后台的工作压力。2.5.2时间特性本系统在设计上大大加强了用户的操作体验和操作舒适性。增加用户对系统的实用好感。1、模块响应时间要求本系统在各个模块的交互上在0.5S时间规定中完成。2、数据处理时间要求采用AJAX技术,进行局部刷新操作,在短时间内达到想要的结果,大大减少了因一条数据的操作反而查询页面中不用的数据对数据库的操作和访问。3、系统运行时间要求系统在功能模块调用时和查看统计图的数据显示,在0.1秒的时间内完成。4、数据备份时间要求自动备份数据库在不影响用户的操作下完成,选定用户基本不适用系统的凌晨2:00的时间进行数据的拷贝存储。在5.0秒的时间内完成数据备份。2.5.3数据特性对不同的数据类型进行不同的数据处理方法,使用HTML5技术,在前端就限定和检验数据的格式,是否符合数据库的数据格式。例如再添加邮箱和手机电话时,采用自定义EL表达式来验证你填写的邮箱和手机电话是否符合要求,如果不符合要求时,前台页面会提示你你填写信息不符合要求,只有你填写的信息正确无误才能向后台提交。系统中规定的一些数据例如试题的难易程度这种信息就不让用户填写,而是使用选择的形式,让用户进行点击。系统时间上采用精确到秒的形式,在一定程度上保证了数据的精确性。2.6本章小结从需求的角度系统的介绍了本章的任务目标和系统的功能模块。我们从课题的调研,市场的分析,操作的可行性,完成的所需要的人力,以及开发周期。使用用例图和活动图进行阐述系统的设计和功能,通过本章让用户对本系统有初步的了解。系统概要设计3.1系统体系结构本系统使用MVC(ModelViewControllor)架构设计,使用模型、视图和控制的模式,显示信息的前台页面和后端代码的分离。系统逻辑是用户从前台页面操作,通过数据请求将操作传给后台,后台业务逻辑根据用户要求去数据库请求,数据库将后台发送上来请求查询之后将数据返回给服务端,服务端将数据库传上来的数据传给前台页面。其中模型是系统的数据库,视图是由用户端的浏览器组成,后台管理由Controller控制器层、Service业务逻辑层、Dao数据访问层、Mapper数据持久化层四层组成。使用MySQL数据库,保证业务操作的连贯性。使用SSM框架,方便项目开发和后期管理。使用Tomcat服务器,搭建能符合本系统要求的后端服务器。使用HTTP协议采用Get和Post的请求方式,是本系统的请求更加的简单灵活。系统架构图如图3-1所示。图3-1系统架构图3.2系统前端设计本系统前端设计(即MVC架构模式中的View层)主要涉及JSP、CSS、Html、JavaScrip、JQuery、Ajax等技术和BootStrap前端框架,其中BootStrap作为前台页面的库,方便样式的修改,做到了自适应,这使得系统可以突破设备屏幕的限制。B/S架构通过Web浏览器来实现用户工作界面,这种模式在前端实现了极少部分业务逻辑。3.3功能模块设计3.3.1批量导入模块1、需求介绍本功能模块是管理员导入系统用户,这是给高校内部使用的题库管理与试卷生成系统,所以不需要用户的手动注册,管理员会根据你的学号给你创建账号,给你默认的密码和一些基本信息。2、视图层设计管理员点击批量导入人员的按钮,会下载一个Excel的模板,里面回填有要写填写的样例,管理员将要录入的人员的信息填写到Excel表格中。然后选择刚刚填写好的Excel文件上传。3、控制层设计系统使用Excel的插件来接收Excel文件。控制层会检测Excel里面的数据是否符合数据库录入的要求,如果有不符合条件的数据,后台会给前台发送一条消息,说哪条数据不符合,用来提示用户数据填写不合格,方便用户查找哪条不合格,很大程度上节约了时间,减轻了用户的工作量这时后台不会将数据插入到数据库中,之后将所有的信息都核对成功后,符合添加到数据的格式时,才能将所有的信息插入到数据库中。本层业务逻辑涉及到,StudentAction、TeacherAction、AdminAction控制层实体类。4、业务逻辑层设计本层业务逻辑涉及到通过前台界面上传的Excel文件,传给控制层然后传给Service服务层进行解析,将解析结果返还给它的上一层,向下将数据插入到数据库中。5、数据访问层设计本层业务逻辑涉及到,StudentMapper.xml、TeacherMapper.xml、AdminMapper.xml。3.3.2登录模块1、需求介绍登录功能模块是使用本系统全部功能的一个必要条件。本系统由三类用户组成,每类用户有自己不同的登录接口,你是哪一类用户,点击哪一类用户用的登录接口,然后输入学号(工号)和密码以及验证码进行登录,如果验证码不正确,学号(工号)和密码是不会传给后台,只有验证码正确才能将学号(工号)和密码。不同的教师登录系统后,会在不同的左侧导航栏的功能有所不同。2、视图层设计前台页面含有用户名框和密码框,有一个验证码填写框,有一个登录按钮和一个重置按钮。3、控制层设计登录模块设计,通过前台传上来的数据在对应的StudentAction、TeacherAction、AdminAction,将数据与对应的数据表进行匹配,若果学号(工号)和密码都正确,会根据这个用户表的Id值在RoleAction,在对应的Role_Menu表查找对应的权限菜单,将菜单放到左侧导航栏。本层业务逻辑涉及到,StudentAction、TeacherAction、AdminAction、RoleAction、MenuAction。4、业务逻辑层设计本层业务逻辑涉及到前台将数据信息传递到Action,然后调用业务层进行验证、设计IStudentService、StudentService、StudentDao、ITeacherService、TeacherService、TeacherDao、IAdminService、AdminService、AdminDao等。5、数据访问层设计本层业务逻辑涉及到,StudentMapper.xml、TeacherMapper.xml、AdminMapper.xml、RoleMapper.xml、MenuMapper.xml。3.3.3试卷模块1、需求介绍本功能模块意在解决老师对试卷的管理和存档,试卷可以生成PDF。2、视图层设计老师通过登录进入到本系统,查看左侧的导航栏,点击试卷功能,老师能查看自己所出的卷子记录。3、控制层设计本系统在设计时在用户登录时,根据用户的学号(工号),通过RoleAction查看Role_Menu表里面菜单查看自己被授权的科目的试卷管理。点击试卷管理通过PaperAction查看试卷。本层业务逻辑涉及到,RoleAction、MenuAction、PaperAction。4、业务逻辑层设计本层业务逻辑涉及到,IRoleService、RoleService、RoleDao、IMenuService、MenuService、MenuDao、IPaperService、PaperService、PaperDao。5、数据访问层设计本层业务逻辑涉及到,RoleMapper.xml、MenuMapper.xml、PaperMapper.xml。3.3.4题库模块1、需求介绍题库管理是本系统的重点所在,也是大家想要解决传统考试没有题库,老师每次组卷都需要大量查找纸质试卷和各种练习册上的题,这样不仅麻烦而且时间周期还会加长,而且伴随之试卷的管理等一些问题。有了题库,可以存储大量的试题供老师参考,给学生组织测试或者是正式的考试用。题库对试题进行分类管理,包括试题类型、试题的难易程度、试题的知识点包含的章节、试题描述、试题的提交数量、试题的正确数、试题的题目解析和试题的答案。试题的难易程度会根据提交量和正确量进行计算,动态更新试题的难易程度。包括试题的录入,有手动录入和批量导入两种方式,批量导入方便试题的大量录入。题库的动态添加,题库是可以根据后来业务的发展要求添加数据库。为今后业务拓展做准备。2、视图层设计老师通过登录进入到本系统,查看左侧的导航栏,点击题库管理功能,选择题库,点击试题导入,点击批量导入,会下载一个Excel的模板,里面回填有要写填写的样例,管理员将要录入的人员的信息填写到Excel表格中。然后选择刚刚填写好的Excel文件上传。老师通过登录进入到本系统,查看左侧的导航栏,点击题库管理功能,选择题库,点击试题导入,点击手动添加试题,填写试题信息,点击确定保存。点击题库管理,查看试题,可以选择对实体进行,修改和删除操作。管理员点击题库管理,选择添加题库。3、控制层设计本系统在设计时在用户登录时,根据用户的学号(工号),通过RoleAction查看Role_Menu表里面菜单查看自己被授权的科目的题库管理。点击题库管理通过QuestionAction查看题库。本层业务逻辑涉及到,RoleAction、MenuAction、QuestionAction、KemuAction、SubjectAction。4、业务逻辑层设计本层业务逻辑涉及到用户根据的自己的角色信息进行管理功能操作涉及到有IMenuService、MenuService、MenuDao、IQuestionService、QuestionService、QuestionDao、IKemuService、KemuService、KemuDao、ISubjectService、SubjectService、SubjectDao。5、数据访问层设计本层业务逻辑涉及到,RoleMapper.xml、MenuMapper.xml、QuestionMapper.xml、KemuMapper.xml、SubjectMapper.xml。3.3.5组卷模块1、需求介绍组卷功能也是本系统的重点,本功能模块意在解决教师每次在组织学生自测和大型的考试周期太长的问题,这样能够大打的解决教师在组卷时的时间周期太长的问题,方便了教师组织自测和期中期末考试。2、视图层设计老师通过登录进入到本系统,查看左侧的导航栏,点击试卷管理功能,点击手动组卷,页面会进行跳转到组卷页面,这里需要教师添加试卷名称,试卷整体的难易程度,选择要使用的题库,点击进行下一步操作,查看到题库的试题,页面中会显示该题库的试题,还有试题类型的筛选,试题章节的筛选,将想要的题添加到待选区,点击提交,系统就会将你选择的试题添加到你组的试卷中。除了手动组卷功能,还有自动组卷功能,点击自动组卷,页面会跳转到组卷页面,这里需要教师添加试卷名称,试卷整体的难易程度,选择要使用的题库,选择章节,点击进行下一步操作,会查看出你给出条件的本题库的给种类型题的数量,用户选择每个类型题的数量,给定分数添加提交这样系统就会给你组成试卷。3、控制层设计本系统在设计时在用户登录时,根据用户的学号(工号),通过RoleAction查看Role_Menu表里面菜单查看自己被授权的科目的试卷管理。。本层业务逻辑涉及到,RoleAction、MenuAction、PaperAction、KemuAction、SubjectAction。4、业务逻辑层设计本层业务逻辑涉及到,MenuService、MenuDao、IQuestionService、QuestionService、QuestionDao、IKemuService、KemuService、KemuDao、ISubjectService、SubjectService、SubjectDao、IPaperService、PaperService、PaperDao、IChapterService、ChapterService、ChapterDao。5、数据访问层设计本层业务逻辑涉及到,RoleMapper.xml、MenuMapper.xml、QuestionMapper.xml、KemuMapper.xml、SubjectMapper.xml、PaperMapper.xml将接收到数据插入到数据库中。3.3.6发布消息模块管理员和教师可以对学生进行发送消息。3.3.7管理员管理系统日志模块1、需求介绍管理员进行系统的管理,为了解决用户操作不当造成的系统数据的丢失,是管理员能够进行数据的找回。2、视图层设计管理员登录系统之后,查看左侧的导航栏,点击系统日志查看,查看系统日志表记录的数据信息。3、控制层设计管理员点击系统日志管理,然后可以进行查看日志和删除日志操作使用SystemLogAction控制层。4、业务逻辑层设计本层业务逻辑涉及到ISystemLogService、SystemService、SystemDao。5、数据访问层设计本层业务逻辑涉及到System.xml。3.3.8权限管理模块1、需求介绍权限管理模块是用来分配和回收不同的用户权限功能,将统一进行管理用户的权限。2、视图层设计管理员通过登录进入到本系统,点击菜单管理,可以查看到系统的所有的菜单信息,点击分配权限,将权限分配给个人。3、控制层设计本系统在设计时在用户登录时,根据用户的学号(工号),通过RoleAction查看Role_Menu表里面菜单查看自己被授权的科目的试卷管理。本层业务逻辑涉及到,RoleAction、MenuAction、TeacherAction。4、业务逻辑层设计本层业务逻辑涉及到ITeacherService、TeacherService、TeacherDao等通过用的的不同权限对应加载不同的导航栏。5、数据访问层设计本层业务逻辑涉及到,RoleMapper.xml、MenuMapper.xml、TeacherMapper.xml将数据从数据库中查找到,返回给逻辑服务层,将数据显示到Jsp页面。3.3.9学生模块1、需求介绍本功能模块是学生的功能。2、视图层设计学生通过登录进入到本系统,学生可以看到这自己的信息,可以查看自己做过题的情况,可以查看自己考过得试卷。3、控制层设计本层业务逻辑涉及到,PaperAction、QuestionAction。4、业务逻辑层设计本层业务逻辑涉及到,IPaperService、PaperService、PaperDao、IQuestionService等。5、数据访问层设计本层业务逻辑涉及到,PaperMapper.xml、QuestionMapper.xml。3.3.10教师综合管理模块1、需求介绍本功能模块是学生的功能。2、视图层设计教师通过登录进入到本系统,教师可以看到自己左侧导航栏,可以查看到自己能管理的功能模块。3、控制层设计本层业务逻辑涉及到,PaperAction、PaperDescribeAction、QuestionAction、DepartmentAction、ClassAction、MajorAction、StudentAction。4、业务逻辑层设计本层业务逻辑涉及到,IPaperService、PaperService、PaperDao、IPaperDescribeService、PaperDescribeService、PaperDescribeDao、IQuestionService、QuestionService、QuestionDao、IDepartmentService、DepartmentService、DepartmentDao、IClassService、ClassService、ClassDao、IMajorService、MajorService、MajorDao、IStudentService、StudentService、StudentDao等。5、数据访问层设计本层业务逻辑涉及到,PaperMapper.xml、PaperDescribeMapper.xml、QuestionMapper.xml、DepartmentMapper.xml、ClassMapper.xml、MajorMapper.xml、StudentMapper.xml。3.3.11数据库转储模块本功能模块是管理员的功能。数据库的转储做到了定时转储和手动转储两部分。手动转储根据点击按钮,定时转储通过系统设定的时间进行转储。涉及到BackupServlet。3.4本章小结本章介绍了题库管理与试卷生成系统平台的整体架构,功能模块以及功能模块的设计。通过需求设计、视图设计、控制层设计、业务逻辑层设计、数据访问层设计,以及数据的传递方式,进行系统的概要设计。系统详细设计和实现4.1数据库设计4.1.1数据库介绍本系统采用了MySQL数据库与SSM框架联合使用,其开放源代码,使用增加索引的方式加快对关键字段的查找操作,缩短查找所用的时间,使用状态码方式对数据实现假删除的操作。可以简单的使用,方便上手,有利于初学者开发Web项目使用,可以对增删改查操作实行可视化。MySQL可以很好地和MyBatis框架结合使用,自动生成表结构。4.1.2系统E-R图图4-1题库管理与试卷生成系统系统E-R图题库管理与试卷生成系统系统数据库人员有三张表学生、教师和管理员表,教师和管理员可以对试题进行导入,管理员可以对人员表进行导入这里是多对多关系,教师可以查看自己的所教科目所对应的题库,管理自己所教班级的学生。管理员和教师可以发布消息,学生可以查看消息和查看自己的做题记录。4.1.3数据库逻辑设计1、数据库逻辑设计表根据本系统的实体联系图进行转换,本系统数据库共有17张表,具体内容如下。(1)用户表用户表分为学生表、教师表和管理员表。学生表包括学生的学号、密码、真实姓名、电话、邮箱和班级等,其中班级是外键,与班级表的主键进行关联。如表4-1所示。表4-1学生表Student字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTNoVarchar(10)XUnique学生学号(账号)NameVarchar(30)X学生真实姓名E-mailVarchar(50)邮箱(用于找回密码)IpVarchar(30)上次登录ipLogin_timeDate上次登录时间ClassesInt(11)ForeignkeyClass(id)班级外键Phonevarchar(20)电话Delete_flagTinyint(1)假删除教师表包括教师的工号、密码、真实姓名、上次登录时间和上次登录IP等,其中教师工号唯一,每一个教师只能有一个工号与之对应。教师表如表4-2所示。表4-2教师表Teacher字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTNoVarchar(10)XUnique教师工号(账号)NameVarchar(30)X教师真实姓名E-mailVarchar(50)邮箱(用于找回密码)IpVarchar(30)上次登录ipLast_LoginDate上次登录时间Delete_flagTinyint(1)X假删除Phonevarchar(20)电话管理员表包括管理员的工号、密码、真实姓名等,其中管理员工号唯一,每一个管理员只能有一个工号与之对应。管理员表如表4-3所示。表4-3管理员表Manager字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTNoVarchar(10)XUnique管理员工号NameVarchar(30)X管理员真实姓名E-mailVarchar(50)邮箱(用于找回密码)IpVarchar(30)上次登录ipDelete_flagTinyint(1)假删除Last_LoginDate上次登录时间Phonevarchar(20)电话(2)试卷信息表 试卷信息表的存储文件名为Paper,主要存放本系统中所有试卷信息,方便查看和管理。Paper表包括试卷名称、发布人、发布时间、试卷描述、审核人、是否启用、所属科目和审核人等。其中发布人和审核人为外键。主键是系统ID。试卷信息表如表4-4所示。表4-4试卷信息表Paper字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTNameVarchar(50)X试卷名称PublisherInt(11)X管理员或者老师IDTimeDateX发布时间DescribeVarchar(5000)试卷描述SubjectInt(11)XForeignkeySubject(id)所属科目idDelete_flagTinyint(1)假删除flagReviewInt(11)ForeignkeyManager(Id)审核人Use_flagTinyint(1)X是否启用试卷详情信息表试卷信息表的存储文件名为Paper_Describe。主要存放本系统中所有试卷详情的所有信息。方便教师查看试卷的具体信息,可以有效的进行统一管理,更符合现在发展的要求。Paper_Describe包括试题、所属试卷和分值等字段,其中试卷和试题是外键。主键是系统ID。试卷详情信息表如表4-5所示。表4-5试卷详情信息表Paper_Describe字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTQuestionInt(11)XForeignkey试题idQuestion(id)PaperInt(11)XForeignkey所属试卷Paper(id)ScoreDoubleX分值Delete_flagTinyint(1)假删除flag题型信息表题型表中包含题型名称。题型表如表4-6所示。 表4-6题型表信息表Question_Type字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTnameVarchar(50)X题型章节信息表章节表中包含章节名称。章节表如表4-7所示。 表4-7章节表信息表Chapter字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTnameVarchar(50)X章节名称科目信息表科目表如表4-8所示。表4-8科目表信息表Subject字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTNameVarchar(100)X科目名称Delete_flagTinyint(1)假删除flag题库信息表题库信息表的存储文件名为question,它主要用来存储本系统中试题所有基本信息。题库表表包括题目、题目描述、题型、难度、提交量、正确量、题目解析、章节和答案等字段。主键是系统ID。其中外键有题型表和章节表。试题表如表4-9所示。表4-9试题表Question字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTTitleVarchar(50)X题目标题(用于查重)DescribeVarchar(800)X题目描述TypeInt(11)X题型DifficultyIntX难度SubmitInt(11)X提交数量CorretIntX正确数AnalysisVarchar(1000)题目解析ChapterInt(11)X章节Delete_flagTinyint(1)假删除flagAvarchar(500)选项Bvarchar(500)选项Cvarchar(500)选项Dvarchar(500)选项Evarchar(500)选项Fvarchar(500)选项Gvarchar(500)选项Hvarchar(500)选项Ivarchar(500)选项Jvarchar(500)选项Answervarchar(200)答案Use_flagTinyint(1)是否启用(8)权限菜单表信息表 权限菜单信息表的存储文件名Menu,它主要用来存储本系统中权限菜单信息。本表包括菜单名称、路径、父节点、当前节点、创建者和创建时间等字段。具体的数据类型和约束条件如表4-10所示。表4-10权限菜单信息表Menu字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTnameVarchar(50)X菜单名称pathvarchar(100)X路径node_idvarchar(255)X节点idparent_numberint(11)X父节点排序this_numberint(11)X当前节点排序Delete_flagtinyint(2)X假删除creatorint(11)X创建者create_timedateTimeX创建时间typeint(4)X菜单类型(9)权限信息表 角色菜单信息表的存储文件名为Role_Menu,它主要用来存储本系统中角色菜单信息。本表包括角色、创建人、创建时间等字段。其中主键是系统ID。权限表4-11所示。表4-11角色菜单表Role_Menu数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTrole_idint(11)X角色idcreatorint(11)X创建人create_timedatetimeX创建时间statustinyint(2)X状态Delete_flagtinyint(2)X假删除(10)系统日志记录表 系统日志信息表的存储文件名为Systemlog,它主要用来存储本系统中所有基本信息。本表包括预登录人、登录人姓名、日志信息、请求路径、描述信息、操作人IP、客户端、操作系统等字段。主键是系统ID,外键有登录人ID。可以快捷有效的查看因为误操作导致的系统宕机,可以进行数据的回复操作,可以准确定位到每一个人的操作,看到每一个人的操作的内容。具体的数据类型和约束条件如表4-12所示。表4-12系统日志信息表Systemlog字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTuser_idInt(11)X登录人iduserNamevarchar(255)X登录人姓名messagevarchar(255)X日志信息statusint(6)X状态码Delete_flagtinyint(2)X假删除urlvarchar(255)X请求路径descriptionvarchar(255)X描述信息iptinyint(2)X操作人ipclientvarchar(255)X客户端create_timedatetimeX创建时间operationvarchar(255)X操作系统exceptionvarchar(255)X异常信息(11)错题信息表 错题信息表的存储文件名为Wrong_Question,它主要用来存储本系统中学生的错题信息。本表包括医试题、学生、试卷等字段。主键是系统ID,外键有试题的ID与试题表主键对应、所属专业ID与章节表主键对应、所属学生ID与学生表主键对应、所属试卷ID与试卷表主键对应。具体的数据类型和约束条件的错题表如表4-13所示。表4-13错题信息表Wrong_Question字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTQuestionInt(11)XForeignkey试题idQuestion(id)SubjectInt(11)XForeignkey所属专业Paper_catalog(id)StudentInt(11)XForeignkey所属学生Paper_catalog(id)ExamInt(11)XForeignkey所属试卷AUTO_INCREMENTDelete_flagTinyint(1)假删除flagAnswerInt(11)答案StatusInt(11)状态码(12)其他信息表 它主要包括班级表Class、院系表Department、专业表Major、年级表Grade。包含了具体的信息,如系统ID信息,状态信息和名称信息等。具体的数据类型和约束条件如表4-14的班级表、表4-15的院系表、表4-16的专业表、表4-17的年级表所示。表4-14班级信息表Class字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTMajorint(11)X专业NameVarchar(50)X班级名称Delete_flagVarchar(50)假删除DepartmentVarchar(50)X学院GradeVarchar(50)X年级表4-15院系信息表Department字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTNameVarchar(50)X院系名称Delete_flagTinyint(1)假删除表4-16专业信息表Major字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTNameVarchar(50)X专业名称Delete_flagTinyint(1)假删除DepartmentInt(11)Xforeignkeydepartment(id)院系表4-17年级信息表Grade字段名数据类型为空约束备注IdInt(11)XPrimarykey系统idAUTO_INCREMENTNameVarchar(50)X班级名称Delete_flagTinyint(1)假删除flag4.2功能模块详细设计与实现4.2.1批量导入模块1、功能描述批量导入功能模块,方便系统数据的快速录入,增强系统的实用性。需要将Excel里面的数据插入到数据库中,解决系统管理员一条一条手动输入的话,大大的浪费时间,而且增加录入数据的成本,还会增加数据录入的错误率。批量导入将单一时间周期长的操作效率快。2、输入项目首先创建Excel录入模板,Excel中的格式要求固定的要求,让用户有统一的模板,用户根据Excel模板里面的提示案例,填写对应数据,Excel里的数据量不宜太多。3、输出项目Excel文件里面的数据录入系统的数据库中,如有不符合的数据,将返还的结果发给用户,只有表格文件里面的数据都正确的情况下才能正常的录入到系统的数据库中。4、程序算法管理员首先需要下载一个Excel模板,填写数据信息上传文档。系统会根据你传上来的Excel表格里面的数据进行验证,只有Excel的数据完全正确才能插入到数据库中。Excel的批量导入分为人员的批量的导入和题库的批量导入。通过factory.setSizeThreshold(MEMORY_THRESHOLD)设置内存临界值,并临时存取临时目录里,使用request.getSession().getServletContex.getRealPath(“/”)+TEMP_DIRECTORYs设置临时存储目录,使用upload.setFileMax()设置上传文件最大值。接下来分别调用StudentAction、TeacherAction和ManagerAction类的add()和insert()方法,最后将Excel里面的数据插入到对应的Student、Teacher和Manager的数据库中。在试题批量导入时会调用QuestionAction类的addQuestion()和insert()方法。这样不仅在进行数据库的查找操作时出现脏读的情况,而且不利于数据库数据的维护操作,更不符合业务逻辑的要求和软件开发准则。在进行题库的批量导入时,就不用事先查找题目是否存在,因为可以出现两个题目完全相同的情况,比如说下列说法正确的是,所以在题库进行批量导入的时候,只需要验证Excel表格中的数据是否正确即可,多正确的情况下调用QuestionAction的insert()方法,将数据插入到数据库中。如果Excel表格中的数据又不符合要求的话就不能插入到数据中。如果批量导入成功的话,用户将跳转至欢迎页面。5、时序图学生批量导入时序图如图4-3所示。图4-3学生批量导入时序图教师批量导入时序图如图4-4所示。图4-4教师批量导入时序图教师/管理员试题批量导入时序图如图4-5所示。4.2.2登录模块1、功能描述题库管理与试卷生成系统的登录功能,输入网址进入本系统的登录页面,学生、教师和管理员选择自己的登录跳转页面点击登录。使用JavaScript技术对验证码进行前台页面的验证,如果验证码有错误会在前台页面进行提示。2、输入项目输入学号(工号)、密码和验证码。图4-5教师/管理员试题批量导入时序图3、输出项目系统根据用户输入的学号(工号)、密码和验证码与数据库进行比较,如果信息正确的话,用户将登录进入到首页,否则将提示用户信息错误。4、程序算法用户输入网址进入到本网站的登录页面,学生、教师和管理员选择自己角色,通过访问LoginAction.java类的jump()和entrance()方法进入到自己的登录接口,这里记性了两次跳转操作,用户填写自己的学号(工号)、密码和验证码信息,点击登录按钮。学生通过访问LoginAction.java类的loginStudent()方法,将学号(工号)和密码传入到IStudentService.java、StudentService.java,通过StudentDao.javaa里面的checkStudentNamePassword()方法访问StudentMapper.xml文件id为checkStudentNamePassword访问Student数据表,将参数与数据库的信息进行对比,并返回对比的结果,通过前台页面反馈给用户。同理教师和管理员通过自己所对应的接口和方法进行登录。如果登录成功的话,用户将进入系统的欢迎页面。如果查询结果为错误的话,返回登录页面,系统给出提示信息,让用户再一次进行学号(工号)和密码以及验证码的填写。5、时序图用户选择自己的登录端口后输入账号、密码和验证码,分别通过StudentAction、TeacherAction和ManagerAction类的checkLoginStudent()、checkLoginTeacher()和checkLoginManager()方法判断输入信息是否正确。如果数据查找成功的话,用户会进入到系统的欢迎页面。学生、教师和管理员登录时,需要输入自己的学号(工号)、密码和验证码点击登录进行登录。教师和管理员的登录图类似于学生登录。学生登录时序图如图4-6所示。图4-6学生登录模块时序图4.2.3试卷功能模块1、功能描述题库管理与试卷生成系统的试卷管理模块能够方便教师对试卷的管理,能够大大减少教师对试卷管理上的时间,而且不怕试卷的丢失,方便试卷的存档,即使是很久之前的试卷,教师也能够轻松的找到,不用浪费大量的时间在翻找历史的试卷。教师可以对试卷可以进行改动,重新进行编写,这样能够将以往的期末考试题,作为下一届的期末模拟冲刺题来做,方便了试卷的灵活性使用,做到一次出卷随时随处使用。试卷还可生成PDF文件的形式,这样能够保障试卷的信息不能被修改,真正意义上的做到试卷的唯一性和不可随意更改性,以免将来出现问题时作为评判依据,也有有利于试卷的纸质打印。2、程序算法用户登录进入本系统,首先系统会根据这个教师的角色和权限,加载他自己对应的导航栏。点击试卷管理功能,教师这样就能看见自己所出的所有试卷。通过访问show()方法里面的代码逻辑调用IPaperService.java和PaperService.java类传入参数,将参数传给PaperDao.java类,最后调用PaperMapper的映射文件里面id为show的方法里的SQL语句访问paper数据库表进行对比,对比返回结果,将结果返回给前台页面对给教师查看。3、时序图试卷管理模块,包括试卷的查看试卷的增删改查。例如试卷的添加首先需要添加试题,将试题插入到试卷中,增加一条新的试卷数据信息。试卷管理时序图如图4-7所示。图4-7试卷管理时序图4.2.4题库管理模块1、功能描述题库管理与试卷生成的题库管理[10]模块是整个系统的重点功能模块。题库管理[11]能够方便教师对各个科目不同的类型题进行统一管理,这样不仅能够解决教师管理题库的复杂的工作,而且还能够大大节约教师的工作时间,提高教师的工作效率,增加经济效益。题库是按照不同的学科进行分类,这样能够解决试题存储的数量大的问题,解决MySQL数据库的单独一张表的负载。教师可以进行对自己管理的题库里面的试题进行增加、删除、修改和查找,在查找时教师可以勾选一些选项可以快速的查找到自己想要的试题,大大节省教师查找试题的时间。以及业务拓展的后期数据库拓展[14]。2、输入项目查询试题时,教师可以通过勾选章节、试题难易程度和试题类型筛选条件来查找试题。试题添加时,首先需要选择你想要添加试题所对应的题库,选择添加试题的类型,试题的初始难易程度,添加试题题目、试题描述详情、答案等信息。选择题有选项信息的填写,编程题有样本的输入样例和样本的输出样例。然后点击提交按钮进行提交。试题修改,首先需要选中你要修改的试题,点击修改按钮,系统会自动将本试题的原有信息带入到试题修改页面。填写你将想要修改的内容替换掉你想要修改的内容信息。3、输出项目查询试题将以列表的形式返回所有符合条件的试题。4、程序算法教师登录进入本系统,首先系统会根据这个教师的角色和权限,加载他自己对应的导航栏。教师点击左侧导航的题库管理,通过QuestionAction.java类里面的show()方法里面的代码逻辑调用IQuestionService.java和QuestionService.java类传入参数,将参数传给QuestionDao.java类,show()的方法里的SQL语句访问Question数据库表进行对比,对比返回结果,将结果返回给前台页面对给教师查看,教师可以查看自己所管理的所有题库。教师点击具体题库,通过QuestionAction.java类里面的flashAndShow()方法,根据用户传上来的科目参数,使用业务逻辑代码调用IQuestionService.java和QuestionService.java类传入参数,将参数传给QuestionDao.java类,调用QuestionMapper.xml文件里面id为flashAndShow的方法里的SQL语句访问Question_科目数据库表进行对比,对比返回结果List<Question>数据类型,将结果返回给前台页面对给教师查看。Question.jsp前台页面根据教师勾选的条件,使用Ajax技术,将数据传给后台,后台根据教师传上来的数据信息去数据库中获取数据,后台再将数据传给Question.jsp页面。管理员有增加新题库的功能。首先管理员通过登录进入到本系统,选择增加题库功能,通过QuestionAction.java类里面的insert()方法,根据用户传上来的科目参数,使用业务逻辑代码调用IQuestionService.java和QuestionService.java类传入参数,将参数传给QuestionDao.java类,最后调用QuestionMapper.xml文件里面id为insert的方法里的SQL语句访问Question_科目数据库表进行增加操作,同时还会通过SubjectAction.java类insert()方法,根据用户传上来的科目参数,使用业务逻辑代码调用ISubjectService.java和SubjectService.java类传入参数,将参数传给SubjectDao.java类,最后调用SubjectMapper.xml文件里面id为insert的方法里的SQL语句访问Subject数据库表进行增加操作,增加成功之后页面会跳转回到管理员题库管理里面,这时能够看到以前的题库和新增加的题库。5、时序图题库管理模块,通过调用QuestionAction类的insert()和addQuestion()方法完成题库管理。如图4-8所示。图4-8题库管理时序图4.2.5组卷模块1、功能描述组卷[12]模块的设计是本系统的重要功能模块,本系统采用手动组卷和自动组卷两种组卷模式。手动组卷类似于传统的出卷模式,但是还是方便了教师对试题的筛选流程。本功能模块设计了大量的试题的筛选条件,让教师能够在短的时间内找到自己想要的类型题。自动组卷又是组卷模块的核心,自动组卷上的设计需要十分合理,不管是在难度上还是题型的分布上都应当尽可能合理。在分析对比几种常用组卷算法的基础上,该文设计了实数编码遗传算法实现组卷功能,通过实证验证了基于实数编码遗传算法组卷模块的有效性。2、输入项目手动组卷教师需要填写试卷名称、试卷描述、科目,点击下一步。自动组卷教师需要填写试卷名称、试卷描述、科目、试卷的难易程度,会根据所选的科目,筛选出来章节的勾选,点击进入下一步。3、输出项目手

温馨提示

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

评论

0/150

提交评论