版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SSM框架的在线考试系统的设计和实现目录TOC\o"1-3"\h\u32416前言 2180621.概述 3326901.1项目背景介绍 374761.2开发环境及工具介绍 3140341.2.1java语言 3278351.2.2SpringMVC+Mybatis框架 3305041.2.3H5 3302301.2.4Mysql 4303652功能需求与设计 4136382.1功能需求分析 4204782.1.1系统可行性分析 4300622.1.2学生用户模块 4305352.1.3管理员用户模块 5252023详细设计与实现 6146503.1项目架构 6278323.2数据库表的设计 7267943.3学生登录 14142753.3管理员登录 20120664测试 26211734.1测试的必要性 26255594.1.1登录测试 26128154.1.2学生端考试测试 2689584.1.3学生端个人信息查看和修改的测试 27235774.1.4后台管理系统的测试 27289274.1.5考试详情的测试 2714965结论 2820511参考文献: 28摘要:该设计是基于SSM框架的一个在线考试系统,它包含了学生和管理员来个用户模块。学生用户模块可以登录系统可以进行在线考试和历史考试查询,学生的考试试卷是由老师在后台的随机组卷生成,提供给学生进行考试,当学生考试结束,系统会自动给试卷进行评分,并将数据提供给老师和学生,老师可以登录后台系统对用户信息进行查改,同时在后台系统可以对不同的用户进行权限分配,以及进行对在线考试相关的操作,对试卷和题库进行维护和更新。在线考试系统是基于SSM框架和MySQL数据库,Spring,SpringMVC技术实现的。前端是基于JSP,H5,CSS,JS,Servlet,easyUI设计的,web端的服务器使用的是tomcat。关键词:在线;Java;SSM框架;MySQL数据库;JSP前言 本次设计的在线考试系统,其比之于传统的考试方式在于它的便捷和实时性,在线的方式解放了学生和老师们对于考试的安排,学生可以随时随地,不受其他因素的影响进行考试,同时老师也可以实时的在线发布和更改试卷和试题以及对学生的考试信息的查看,在考试的安排上尽可能的实现了随机组卷,老师可以根据题型进行卷,和发布试卷,同时题库方面也进行了一定程度的优化,可以从外部模板来导入试题。在线考试系统是基于SSM框架运用spring,springMVC,mybatis,MySQL等技术实现的,系统主体模块分为学生客户端模块,管理员后台模块,学生端实现了系统用户的登录和注册功能。个人考试,个人考试历史,个人信息的修改,管理员后台模块实现了系统的用户信息管理,角色控制,考试科目和参考学生的控制,试卷相关,答题信息和成绩统计等。数据校验使用了主流的ajax异步处理。1.概述1.1项目背景介绍当今社会互联网快速发展的同时也带动了教育行业的信息化,同时在2020年新冠疫情的影响线上教育的需求和发展出现了显著的变化,这样的大环境之下,各式各样的在线教育项目如雨后春笋纷纷被开发出来,而本次设计的在线考试系统旨在实现教师和学生的异地考试而开发的,可以帮助老师和学生跟好的完成教学任务。1.2开发环境及工具介绍在开始开发项目之前我们要确定本次项目所需要的技术和工具,本次项目选用的开发语言选择的是java语言,jdk版本选用市场通用的jdk8,服务器选择的是tomcat7,开发环境为idea2019.1上搭建的SSM框架和MySql数据库管理,以及easyUI前端页面设计[1]。1.2.1java语言Java语言是sun公司开发的一门基于c的各种优点,更加简单易用的面向对象的编程语言。可以在不同的操作系统上搭载自己与之适配的jvm虚拟机来完成编译[2]。1.2.2SpringMVC+Mybatis框架 Spring框架是一个应用于java语言的一站式轻量级的应用程序框架。Spring的核心功能是IOC容器,AOP增强,webMVC分层设计等。Spring的广泛应用是因为它的优点:高内聚,低耦合的特性满足了程序员们对程序要求的低耦合和简便开发的需求。作为面向对象编程的编程语言,自己开发了AOP面向切向的编程技术。Spring提供了对公众优秀框架的直接支持[3]。MyBatis是一个对数据适用的持久层框架,他优化了JDBC对数据库的操作,封装了大部分的SQL语句执行操作。提供了对存储过程的各种映射。通过配置xml文件来实现对数据库的操作,简单实用。对于程序设计而言,更加简便快捷[4]。1.2.3H5H5是一类技术的合集,他不是单纯的HTML5,他包括了各种前端的应用技术,他可以用来设计各种网页资源,丰富和美化页面他不仅仅是H5广告,还有游戏等,是前端设计的一个技术合集,是一种不断优化的网页页面语言[5]。1.2.4MysqlMySQL是一个极其优秀的数据库,它是甲骨文公司开发的一个开放源代码的中小型关系型数据库。它的功能和java有点相似,都具有很强大的跨平台性,都适用于不同的操作系统上。而且他的价格便宜,功能强大,是一款真正的多用户,多线程的sql数据库服务器,可以快速,有效安全的处理大量的数据。其余其他数据库相比的优点在于快速,易用,健壮[6]。2功能需求与设计2.1功能需求分析本项目是同时面向老师和学生开发的一个在线考试的系统,所以要兼顾老师和学生角色的功能需求进行分析。2.1.1系统可行性分析时间可行性:根据论文项目开始前做过的开题报告和时间规划进行入手。项目前期技术调研及框架学习使用一个月时间。需求及业务逻辑分析计划及确定使用三周时间。数据库设计及代码开发计划使用一个月时间。项目调试及Bug修改计划使用一周时间。毕业论文计划用时一个月时间进行书写。整个项目计划用时四个月,根据实际情况,从时间上看项目可行。经济可行性:此项目使用开发设备为PC,编程语言JAVA,使用数据库为MySQL,使用服务器为Tomcat。整个开发成本极低,从经济上看项目计划可行。技术可行性:基于web的题库设计系统整个技术架构是本人参考很多当前已经存在的题库设计系统整合而成。使用本人熟悉的JAVA开发语言,所用技术均为当前技术领域流行技术,经过充分的调研之后认定技术上可行。2.1.2学生用户模块学生模块的需求较为简单,登录成功之后可以获取老师发布的考试信息以及自己已经考完的考试信息,修改自己的账户信息,具体如下:登录或者注册,只有拥有账户的学生才能进入系统个人考试中心:在线考试:根据老师发布的考试信息选择考试历史考试:可以查看考试信息以及对于已考试卷的回顾我的信息: (1)修改密码:用户号可以重置账号的密码 (2)账户信息:查看当前用户的详细信息2.1.3管理员用户模块管理员用户模块,主要的作用是安排考试相关的操作,以及对于用户的角色和权限的一些安排,实现后台功能的多样化。具体如下:1. 登录:管理员用户是在数据库中给定的,但可以给其他人分配登录后台的权限。2.角色管理:给用户账号添加角色信息,获取操作权限。3.修改密码:账户密码的修改。4.用户管理查看当前用户的详细信息可以修改用户的信息。5.学科管理:管理考试科目。6.考生管理:管理已经注册使用的考生用户。7.试题管理:考试题库的管理,可以及时的对题库进行增删改查。8.考试管理:考试安排的详细信息。9.试卷管理:所有的待考或者已考的考试试卷。10.答题管理:对所有考生的答题信息的统计。11.成绩管理:成绩的统计图标展示。3详细设计与实现3.1项目架构在项目设计的角度,本项目后端实现是SSM框架和spring以及springmvc技术实现的,前端由jsp+h5和js交互设计,数据管理是MySql数据库实现的数据操作管理,具体架构如下图系统的功能流程描述如下[7]:学生用户:学生用户注册账号;学生用户登录系统;学生用户查看个人信息修改密码;学生用户选择考试课程;学生用户查看考试成绩回顾考试;管理员用户管理员登录系统;管理员查看用户信息,分配角色权限;管理员查看操作日志;管理员导入题库,维护题库;管理员安排考试,选择起始时间,考试题型;管理员查看考试试卷信息;管理员查看学生考试详情;管理员维护考试题目;管理员查看考试成绩统计。3.2数据库表的设计本次数据库的设计是基与现实中的考试的准备,进行和结束的过程设计的数据关系,首先我们要分析每个功能模块之间的关系以及其中可以联系起来的数据,建立模型,分析业务数据需求和业务逻辑,完成数据库的遍历,根据系统的需求确定系统中各个实体之间的相互关系。用户表设计主要作用:保存用户的基本信息,具体如下表:表1用户信息表字段类型主外键描述IdInt主键用户编号UsernameVarchar(32)无用户姓名PasswordVarchar(32)无用户密码RoleIdPhotoSexAgeAddressIntVarchar(128)IntIntVarchar(128)外键无无无无角色编号照片性别年龄地址角色表设计:主要作用:确定角色,分配权限,具体如下表:表2角色表字段类型主外键描述IdNameIntVarchar(32)主键无角色编号角色名称RemarkVarchar(128)无权限描述学生表设计:主要作用:保存学生的所有信息,其中id作为主键和其他的数据表构成联系从而实现数据的传递和一致性。具体设计如下表:表3学生表字段类型主外键描述IdSubjectDIntInt主键外键学生编号课程编号NamePasswordTruenameTelCreateTimeVarchar(32)Varchar(32)Varchar(32)Varchar(16)datetime无无无无无学生姓名学生密码真实姓名电话创建时间学科表设计:主要作用:记录已经录入的学科信息和每个学科的创建时间。具体设计如下:表4学科表字段类型主外键描述IdNameIntVarchar(64)主键无学科编号学科名称RemarkVarchar(256)无学科描述题库表设计:主要作用:保存所有从系统录入的题目,作为一个数据存储的地方,为项目的试卷提供数据。具体设计如下:表5题库表字段类型主外键描述IdSubjectDIntInt主键外键题目编号学科名称QuestionTypeTitleScoreattrAattrBattrCattrDanswerCreateTimeIntVarchar(256)IntVarchar(256)Varchar(256)Varchar(256)Varchar(256)Varchar(16)datetime无无无无无无无无无题目类型标题分数选项A选项B选项C选项D答案创建时间菜单表设计主要作用:保存ztree树所需的权限路径和权限之间的连接数据;具体设计如下:表6菜单表字段类型主外键描述IdParentIdIntInt主键无菜单编号自关联编号NameurliconVarchar(32)Varchar(128)Varchar(32)无无无菜单名称路径权限日志表的设计:主要作用:记录操作日志和操作时间,具体设计如下:表7日志表字段类型主外键描述IdContentCreateTimeIntVarchar(255)dateTime主键无无日志编号操作记录创建时间试卷表设计:主要作用:通过表中的数据关系来获取其他表中的对应数据从而组成一张试卷;具体设计如下:表8试卷表字段类型主外键描述IdNameSubjectedStartTimeEndTimeAvailableTimeQuestionNumTotalScorePassScoreSingleQuestionNumMuiltQuestionNumChargeQuestionNumPaperNumExamedNumPassNumCreateTimeIntVarchar(255)IntdateTimedateTimeintintintintintintintintintintdateTime主键无外键无无无无无无无无无无无无试卷编号试卷名称考试科目开始时间结束时间限定时间问题编号总分及格分单选题数量多选题数量判断题数量试卷数考试数通过数创建时间考试安排表的设计主要作用:确定考试安排的主要数据,为考试的开始和结束提供限定数据。具体设计如下图:表9考试安排表字段类型主外键描述IdExamIdStudentIdstatustotalScorescorestartExamTimeendExamTimeuseTimecreateTimeIntIntIntIntIntIntDateTimeDateTimeintdateTIme主键外键外键无无无无无无无考试安排编号考试编号学生编号考试科目总分分数开始时间结束时间考试时间创建时间试卷答案表主要作用:记录考试的正确答案,可以让系统拿到的数据进行数据校验从而得到考试数据;表10试卷答案表字段类型主外键描述IdExamIdIntInt主键外键试卷编号考试编号StudentIdstatustotalScorescorestartExamTimeendExamTimeuseTimecreateTimeIntIntIntIntdateTimedateTimeintdateTime外键无无无无无无无学生编号考试科目总分分数开始时间结束时间考试时间创建时间3.3学生登录 本系统的学生登录和管理员登录界面是分开的,登录之后进入不同的页面学生登录界面如下: 图1学生登录界面学生登录成功之后进入考试中心;图2学生端首页在学生端的首页,学生可以看到所有和自己有关的考试信息;同时可以选择是否进行考试,考试页面如下:开始考试会给一个提示:是否确定考试图3考试确认头部导航栏如下:头部导航栏部位我添加了几个简单的超链接跳转,一个是退出当前界面的退出链接,可以返回到登录界面,另外一个是登录后台系统的链接,用户可以点击链接登录后台系统。此外,在导航栏是可以查看自己的个人信息。考试界面:在学生进入考试界面之后,就正式开始进行考试了,考生需要在规定的考试时间内完成答题,否则系统会自动交卷,当学生完成答题点击交卷按钮后,会弹出一个信息确认框提醒学生是否提交试卷,防止学生出现漏答的现象。同时答题卡区域的设计也可以提醒学生当前题目是否作答。试卷提交完成后会激动返回学生端的考试中心首页,方便学生更快的查看考试结果,检查自身的学习成果。图4考试界面在学生考试完成之后成绩也会实时的计算出来,同时可以回顾已考的试卷:在试卷回顾页面,考生可以看到刚刚的考试试卷同时拥有正确答案,方便考生及时的查看纠正自己的错误。该页面是只读状态,也就避免了传统考试可能会出现的修改错误等试卷批阅错误的出现。图5试卷回顾最后学生也可以在学生端对自己的用户的信息进行修改:这里和传统的密码修改方式是相同的,需要俩次确认修改后的密码才能更改当前用户的密码。根据用户设置的密码组成,有强中弱三个档次的提示,建议密码是中等或以上等级的。图6修改密码3.3管理员登录管理员登录有自己的链接,区别于学生登录。其次也对管理员账号信息的登录做了一个验证码的处理,信息进行ajax异步处理达到人机区分的效果,管理登录界面如下:图7后台登录管理员登录后台的时候,需要填写验证码;整个登录界面的数据都会已表单的形式发送到后端的登录验证代码块进行数据的校验,如果数据验证成功则进入后台系统,如果登录验证失败则会提示,验证码是随机产生的图片且忽略输入的小写[8]。管理员登录成功之后会展现后台系统的整体框架:如下图图8后台界面通过后台管理系统的界面我们可以清晰的了解,整个后台系统的架构和功能模块,整个后台管理系统遵循简洁的开发习惯,可以让操作者轻松上手该系统;整个后台管理系统分为如下的模块:系统设置模块图9系统设置修改密码的子模块和学生端是一样的。在这个模块我们可以添加和修改导航菜单,通过角色模块来给用户账号添加角色信息,在角色模块,管理员可以实现对用户账号的角色信息进行各种操作。并给予这些角色一定的权限。这样我们自给其他用户添加角色信息的时候,同时就加载了对应的权限。这样会使我们的整个系统的人员结构有一个分层次的逐级变化,可以更好的处理和解系统的问题。其中对于用户权限的控制操作是通过ztree树实现的权限管理;用户的权限树如下[9]:图10用户权限树当我们通过菜单管理添加新的功能模块的时候,ztree树也会获取到新添加的模块的权限路径,并将其纳入权限的树结构系统中方便后续给角色开放相应的操作权限。用户管理模块在用户模块我们可以看到用户的所有信息,并且拥有修改的权限系统日志记录所有对本系统进行了操作的人员的用户名和角色以及操作的时间,学科管理可以查看当前拥有考试的学科和对学科描述,以及增删改考生管理录入了所有注册了本系统的考生的所有信息,并且管理员拥有对信息的编辑的权利,方便在考生的信息发生变化的时候进行更改。图11考生信息试题管理录入了本系统中所有使用的试题组成的题库,目前的题库并未添加主观题的题库,目前拥有的题型包括,单选题,多选题,判断题三个题型,这样可以保证学生在考试结束之后可以立即知晓自己的考试详情和分数,并且有利于学生学习的练习目的。其中管理员是可以对题目的内容进行修改的,同时这里我也使用POI技术制作了一个试题导入的功能,试题的模板如下[10]:图12试题导入模板我们对题库进行修改的时候,已经使用的题目如果发生了改变,对应的题目也会发生个改变,整个考试系统的数据都是实时更新的。并且在后续如果有新加进的课程我们可以根据不同的课程来分配和添加题目,确保每个课程都有试题可被选择。考试管理考试管理是本系统中的核心业务,我们可以在这里进行组卷和考试安排,以及查看过往的考试信息,在安排考试的时候,我们需要确定考试的名称,考试科目,开始和结束的时间,并且有一个限定时间,开始和结束的时间是规定本次考试的开放时间,限定时间是本次考试的考试时间,最后再进行试题选择:可以根据试题的类型进行选择,目前题库拥有的题目类型时单选,多选,以及判断题,在选定题目数量后,系统会根据给的数据进入题库随即将抽取对应类型的题目进行组卷并且发布考试,这时学生在学生端登录后就能发现新的考试信息,并且进行考试。图13考试管理学生在考试结束之后,老师在试卷管理模块是可以看到有多少人参加了本次考试,以及及格得我人数方便对学生的学习情况进行实时的了解。如果老师想要查询学生考试的详细情况可以用通过试卷管理来查看学生考试的详情。试卷管理通过这个模块,我们可以查看到所有已经考试的试卷的参考情况,和每个学生的考试情况,方便老师查看和了解学生的学习进度。试卷管理模块如下图:图14试卷管理答题管理这个模块的功能是对试卷管理模块的进一步细分,可以让我们看到考生在每一场考试的答题信息,精确到了每一道题的题目和考生提价的答案,以及正确答案。给老师提供了一个对于学生掌握的知识点的好与坏提供了一个客观的参考,同时也能帮助老师后面的教学安排提供一定的参考价值。具体模块如下图:图15试题管理成绩统计对于每一场考试的所有参加考试的考生成绩进行统计并制成一个折线图。可以整体看到所有参加本次考试的学生的考生成绩的分布,从而估计出当前面学生的整体情况。4测试4.1测试的必要性在系统正式运行之前我们需要先进行数据和功能测试,防止系统出现漏洞导致服务不够完善,影响运行的结果,所以先行测试是必要的。4.1.1登录测试使用数据库中的用户数据分别对学生登录后台登录进行测试,学生端输入用户名和密码,预期进入学生的考试中心页面。可以正常进入系统。测试结果:顺利进入学生考试中心。管理员登录测试,分别输入正确和错误的用户名密码以及验证码进行测试。预期验证码输入正确的时候可以顺利进入后台系统,当验证码输入错误的时候,提示输入有误们不会跳转页面。测试结果:验证码输入正确时,顺利跳转到后台系统界面,验证码错误时,并未发生页面跳转,并且给出了验证码输入错误的提示4.1.2学生端考试测试在学生用户进入考试中心界面之后,预期结果:可以看到老师发布的考试信息以及已经考完的考试试卷回顾页面。测试结果:点击开始考试可以正常的进行考试,考试结束之后可以及时的查看本场考试自己的考试分数,并且可以通过回顾试卷的功能查看考试卷的正确答案和考生自己的答案的正确图否。考试中心页面的在线考试和回顾考试的功能是正常的。4.1.3学生端个人信息查看和修改的测试点击我的信息,预期结果:可以看到自己的完整信息,点击修改密码,修改之后,重新登录使用之前的密码提示密码错误。测试结果:进入系统的页面之后,我们可以看到自己的详细信息,并且在修改密码之后会让我们重新登录,此时数据库中的密码已经修改,之前的密码已经失效了,无法成功登录。学生端的功能测试完毕。达到了预期的效果。4.1.4后台管理系统的测试首先测试对一个普通用户赋予查看考试的权限,预期结果:用户可以查看考试信息,测试结果:用户可以查看考试信息。测试管理员用户对于考试和考试准备的功能:当管理员用户登录之后,可以在试卷管理,试题管理,考试管理三个模块中对考试进行安排,首先管理员可以先进入试题管理中查看当前题库中拥有的题目类型和所属科目的题目类型,如果缺少需要的类型,可以通过导入的方式,按照模板导入已经安排好的试题。试题查看完成之后,管理员可以在考试管理界面查看当期是否有考试的安排在进行具体的考试安排。考试之前管理员需要先进行试卷的组卷,组卷功能实在试卷管理模块完成的,在试卷管理模块,管理员可以命名考试试卷的名称,考试的题型,考试的限定时间等,试卷的题目是随机组卷的。所以题目的难度是未知的,保证了考试的难度。预期结果:管理员在后台登录之后,先生成一张新的考试试卷,并且安排了一场考试,学生可以在学生端查看到最新的考试信息,进行考试。测试结果:管理员试卷组卷成功,考试安排完成,学生在前台可以查看到最新的考试信息,并且进行考试。4.1.5考试详情的测试考试完成之后,需要对考试信息进行总结,方便老师对于学生考试情况的进一步了解,在老师查看试卷管理,答题管理,和成绩统计模块的时候,可以你看到,每场考试的参考的学生,和每个学生考试的试卷和答案。预期结果:老师可以看到上一次测试发布的测试考试的学生考试详情,即学生的考试中的每一道题的答案,和参考与否。测试结果:测试考试的考试详情成功汇总在后台系统中,同时也生成了参考学生成绩的折线统计图。5结论我的这个在线考试系统的设计从选题到现在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东深圳北理莫斯科大学材料科学系微流控校企联合实验室招聘考试重点试题及答案解析
- 开发廊合同范本
- 岗位保密协议书
- 委托征收协议书
- 意向团购协议书
- 资金托底协议书
- 小学分手协议书
- 装灯施工协议书
- 账务平摊协议书
- 志愿星级协议书
- 月子会所的礼仪培训课件
- 乳腺癌靶向治疗药物研究进展
- 墙绘施工合同协议书
- 2026年日历表(含农历 全年共有365天)
- 国家开放大学行管专科《行政组织学》期末纸质考试总题库(2025春期版)
- 中国慢性冠脉综合征患者诊断及管理指南2024版解读
- iso28000-2022供应链安全管理手册程序文件表单一整套
- 吟诵古诗课程设计
- 2024年保安员证考试题库及答案(共130题)
- 2024年中国红芪市场调查研究报告
- NB-T42167-2018预制舱式二次组合设备技术要求
评论
0/150
提交评论