版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SSM的大学计算机基础虚拟实验平台设计目录TOC\o"1-3"\h\u摘要 绪论1.1研究背景现如今,计算机技术的发展随着时代的潮流发展可谓是日新月异,各种各样的的新兴技术层出不穷,伴随着新技术的产的同时也有部分老的技术被渐渐摒弃淘汰掉,所以计算机行业的竞争关系愈演愈烈,我们计算机专业的当代大学生想要在如此激烈的环境下寻求生存发展,就不得不熟练的掌握计算机的相关操作,熟记计算机基本知识,掌握计算机语言,所以我们必须对大学期间的计算机技术课程学习给予高度的重视,对计算机语言,框架不断的学习才能满足社会对我们的需求,才能更加全面的发展,才能保证不被这个社会的发展而淘汰。而此时,JavaEE[1]架构也在快速的发生着很大的发展变化。例如一开始的JSP与Servlet,到后来的JSPModel[2]为基础上的各种MVC框架的开发,包括数据持久化工具以及轻量级容量,无独有偶,前端网页设计CSS[3]和jQuery[4]也在不断寻求发展。伴随着不断发展的各种各样的框架,Spring[5],SpringMVC[6],Mybatis[7]这三个开源框架的组合,映入开发人员的眼帘,因它们优异的性能,故成为了当下轻量级JavaEE架构中的中流砥柱。所以,我们很有必要设计一套完善的大学生计算机基础实验系统。本系统分为三个模块来开发,首先是学生用户模块,学生可以查找实验作业项目,在线考试,查看成绩。其次教师模块,可以设置实验项目发布时间、设置实验项目发布内容、修改自身信息、查看成绩等功能;最为复杂的是系统管理员模块,拥有最高级别权限、批量维护所有用户信息,设置实验编号,类型及内容等。该系统旨在解决大学生计算机基础的学习方式问题。根据题目需求,前端页面通过发送请求到后台调用数据库内容来进行查找、修改、增添和删除存储于后台数据库中的数据等操作。1.2研究意义现阶段,我们大学生的计算机相关专业学生在还必须要具备网络设备配置还有管理的技能的前提上还要熟练的掌握计算机的基本操作,然而目前一般的学校教学方式存在一定的问题从而限制了教学质量的提高,这就需要深化改革传统的教学方式。本系统摒弃了传统的教学模式,学生在平台上就可以在线完成任务,而且完成的结果一目了然,老师在这个平台上只需要发布实验项目,然后设定好实验的开始时间与结束时间,学生在规定时间内完成会自动评出分数,还能查看题目的详细知识内容,既方便了老教学,又方便了学生学习。所以说设计与实现大学计算机基础虚拟实验平台具有非常重要的意义。并且,通过开发本系统,我更加深入的了解并学习了到了标准的设计模式,我在项目开发的过程中也遇到了很多问题,大多数不会问题都需要通过咨询老师或者自行百度去解决,部分技术都是在一边学一边实战开发。今后的时间里我还要去不断地学习和总结经验,去钻研的更深、更透彻。以前可能从来没有关注过网络知识,现在通过查询发现网络上海量的知识可以为我提供大量的帮助。通过此次开发和设计,让我深深的意识到,我们要学会善于查找资料,提高自己查询资料获取更多知识的能力,从网络资源里获得知识和帮助。因此本系统还对我个人跟具有实际应用意义[8]。1.3组织结构本次毕业设计一共分为七部分,如下所示:第一部分为绪论,简述了基于SSM大学计算机基础虚拟实验平台的研究现状以及研究意义。第二部分为大学计算机基础虚拟实验平台的开发环境和开发技术介绍,主要是介绍了本系统的开发环境,系统环境以及相关配置,以及实现本系统的主要技术。第三部分为系统需求分析,将系统模块分为三个部分:分别是教师用户模块,学生用户模块,以及管理员模块,后面紧接着使用用例图描述了此系统的需求。第四部分为系统设计。其中包括完成了数据库设计。用E-R图、系统功能图、用例图的形式表达需求分析,介绍大学计算机基础虚拟实验平台的设计。第五部分为功能实现,包括完成程序各个功能的实现,并且附上核心代码。第六部分为功能测试,主要是描述了本系统的整个测试过程及结果。第七部分为结束语,对系统以及论文进行了总结工作。2开发环境和开发技术介绍2.1开发工具和服务器环境软件:IntelliJIDEA、Navicat、MySQL服务器:Tomcat7.0系统环境:Windows10系统2.2开发工具IDEA介绍IDEA在我们的日常学习过程中经常会被使用到,它实际上就是一款完全免费的开发软件,是基于Java语言的集成环境进行开发,并且它还附带集成了常见的市面上的很多插件,其中就包括有svn,github,git等。当然,IDEA最为特色的功能就是它可以进行动态语法检测以及对程序员的意图支持,它会对我们在开发时检测我们的意图并提供代码建议,这对于我们开发系统的过程提供了极大的方便性。2.3Navicat数据库管理工具Navicat,它是一套快速,功能非常强大的数据库管理工具[6],用户可以直接以直觉化的图形化界面就能够方便的对数据库进行维护,数据库管理员与开发人员的需求得到了非常好的满足,我使用了最适合,方便国内使用的UTF-8编码。另外Navicat在软件里还为我们提供了很多非常实用的工具,让我们能简单快速的进行数据库系统之间的的传输,备份及还原等等。2.4MySQL数据库\t"/item/MySQL%E6%95%B0%E6%8D%AE%E5%BA%93/_blank"SQL的全称是StructureQueryLanguage,也就是结构化查询语言,而MySQL[9]是一款轻量级且\t"/item/MySQL%E6%95%B0%E6%8D%AE%E5%BA%93/_blank"开放源码的关系型\t"/item/MySQL%E6%95%B0%E6%8D%AE%E5%BA%93/_blank"数据库,通过SQL语言来实现对数据库的管理[7]。目前它归属于甲骨文公司,能够支持Windows,Linux,MacOS等多数操作系统,它的主要功能就是为数据存储提供空间。2.5环境搭建下载安装2020版本InterllJIDEA,配置好jdk环境、jre、安装tomcat8.5。打开IntelliJIDEA,选择File,然后新建项目,然后在左侧栏中选择Maven,选择好Maven本地的位置后,右侧ProjectSDK默认选的一般会是Java,点击下一步,选择文件项目中的项目名,默认项目名称,最点击完成。以上配置完成后,就开始编写核心代码实现功能了,代码完成后,点击启动服务器即可在浏览器上通过localhost访问系统。2.6Bootstrap框架Bootstrap[10]是一款流行的前端框架,它集合运用了HTML、CSS和JavaScript
等最为基础的技术来进行开发,并且在其中提供了一些规范,它主要是由动态CSS语言Less写成[8]。在本系统中,前端页面主要使用了该框架。2.7SSM模式SSM框架包括Spring,SpringMVC和Mybatis这三个框架,开发原理就是MVC模式,这款当前最为方便且流行的框架将项目划分为表现层,控制层Controller,DAO层,Service业务层,其中使用SpringMVC控制层主要负责视图管理以及请求的转发,作用与Struts相当。Spring用来实现业务对象的管理,它可以用来装载bean,我们就不需要每次在使用类之前将它初始化,数据对象持久化引擎是MyBatis,它能够自由的控制sql,提升了对数据库的访问效率,它还通过xml的方式来管理我们的sql,方便我们查错以及对原有的sql语句进行优化。2.8小结本部分主要阐述了开发环境的搭建以及开发技术的特点,开发环境里的相关配置是我在整个开发过程中慢慢一步一步总结出来的,每一步是都不可或缺的,每当在新的工作环境中运行程序,都需要检查一下自己的相关配置是否与环境一致。3需求分析3.1问题描述本系统旨在解决大学生计算机基础的学习方式问题。根据题目需求,前端页面通过发送请求到后台调用数据库内容来进行查找、修改、增添和删除存储于后台数据库中的数据等操作。本系统主要分为三个部分,一是学生登陆,学生可以查找实验作业项目,在线考试,查看成绩。二是教师登录,可以设置实验项目发布时间、设置实验项目发布内容、修改自身信息、查看成绩等功能;三是系统管理员登录,拥有最高级别权限、批量维护所有用户信息,设置实验编号,类型及内容等。3.2可行性分析可行性分析是一种具有公正性、预见性、可靠性和科学性的对系统的功能和技术进行的系统分析方法,我将从下面四个方面综合考虑本系统开发的可行性。技术的可行性。根据已经确定好的功能需求来选择开发技术,在本系统中前端使用Bootstrap框架,后台使用SSM开发模式,目前来说这些技术都是流行并且较为成熟完善的,在实际开发之前只需要设计好数据库的结构,就可以实现预期功能,开发难度并不大,易于进行维护。所以我认为,开发本系统在技术上是可行的。经济的可行性。我是使用免费的开放源码的框架来开发的本系统,对浏览器版本要求也不高,最主要的是不需要我支付额外的资金来支撑系统的运行,而未来的用户对象使用时也不需要支付任何费用,所以我认为本系统的开发在经济上是可行的。风险因素可行性。由于大学计算机基础虚拟实验平台的各个开发阶段都是由我独立完成,所使用的软件,使用的技术,以及框架也完全是开源的或免费的,所以用户在使用过程中不用担心考虑侵权或违法的问题,其他人若想要使用,只需本人授权允许就能够使用,故在法律上是可行的。操作的可行性。大学计算机基础实验平台是基于浏览器/服务器的架构模式开发的,用户对象只需会基本的计算机操作,不需要其它专业性的业务能力就可以访问本系统,由此可见,用户在操作上是可行的。3.3功能需求分析大学计算机基础实验平台的系统功能图如图3-1所示:前端模块包括了学生与教师用户:用户注册与登录:没有账号的用户只能通过管理员去注册,为了保证大学计算机基础实验平台的安全性,用户是没有权限注册的,注册之后才能登录,已经注册过的用户输入账号密码,然后选择身份并输入验证码后即可正常登录进入系统。教师用户的功能:教师可以发布实验项目并设置时长,还能查看题库以及管理学生成绩。学生用户的功能:查看实验项目,在线完成实验任务,试题结果查看,考试成绩查询等。后台模块主要针对的是系统管理员:系统管理员:管理员可以批量维护所有人的基本信息、任免新的管理员账号。管理实验项目的编号,类型以及内容。在本系统的测试过程中,验证实现了所有的预期功能。图3-1系统功能模块图3.4用例图描述用例图,包含了大学计算机基础实验平台系统中的用户角色、用例以及边界这几个基本组成部分,再加上用户角色、用例之间的关系就构成了用于描述大学计算机基础实验平台系统功能的视图。使用用例图可以宏观的看到这个系统的功能,下面我将用用例图来描述大学计算机基础实验平台设计的系统功能。教师用户拥有登录注册、查看实验项目、发布实验内容、设置考核时长、管理学生成绩、维护个人信息等功能,教师助理与教师的权限相同,为了更直观的看到大学计算机基础实验平台的各个功能,这里提供了具体的用例图,如图3-2所示:图3-2教师用例图学生用户拥有登录注册、查看实验项目、发布实验内容、设置考核时长、管理学生成绩、维护个人信息等功能,教师助理与教师的权限相同,为了更直观的看到本系统的各个功能,这里提供了具体的用例图,如图3-3所示:图3-3学生用例图系统管理员拥有大学计算机基础实验平台的最高级别权限,他不但能注册新的管理员、批量维护所有人的信息,还能发布实验项目,修改实验内容和查看实验结果等功能,用例图如图3-4所示:图3-4系统管理员用例图3.5小结本部分主要介绍了系统的功能需求,快速有效的对系统进行设计离不开清晰的需求分析。该系统面向的用户是学生以及教师,主要功能点就是实验平台,这是本次毕业设计系统实现的核心功能内容,也是本次系统开发过程中的难点,耗时较长,因为我一开始是打算使用Flash的技术来完成实验平台,后面发现这项技术不仅牵扯到虚拟化的问题,而且Flash技术在放在今天已经是较为落后的技术,它消耗CPU资源严重,效率低下,Adobe公司也在2020年彻底对flash停止更新,不难看出在未来将会淘汰此技术,故我转而想到用试卷试题的方式来实现实验平台的功能,便于操作也便于开发。当然,为了丰富本系统的内容,其他功能也是不可缺少的。4系统设计4.1功能设计概述大学计算机基础虚拟实验平台系统的功能设计已经根据功能需求中的描述逐个实现。所以设计是完全按照前面所说的需求来的,这里就不重复说明了。4.1.1教师功能设计教师用户登录系统之后,可以管理实验项目、发布实验、添加题库、设置实验时长、查看学生成绩。下面是详细设计:教师登录注册:教师如果只有拥有账号直接登录即可进入网站,如果没有账号则需要管理员进行注册并填写个人信息,注册之后才可进行登录。维护自身信息:教师点开个人中心,可以修改完善自身信息,修改密码,但不能修改其他人的信息。(3)实验项目管理,教师可以添加实验项目,输入好项目名称,设置实验开始时间以及结束时间,还能上传实验内容,最后发布实验,可以在我的实验项目中查看已发布的实验。(4)题目管理:选择题目管理可以查看详细题库信息,查看试题信息,查看实验结果以及成绩查看。4.1.2学生功能设计学生用户功能设计如下:(1)学生登录后可以选择实验项目管理,搜索查看已经发布的实验任务,并且可以选择在线完成任务,完成后可以查看自己的得分情况。(2)维护学生个人信息:学生可以通过选择个人中心的方式修改自己的个人基本信息资料,如姓名,学号,邮箱,手机号码等等。4.1.3管理员功能设计系统管理员功能设计如下:(1)管理员登录,登录后可以进行对大学计算机基础实验平台的管理(2)维护用户信息:管理员可以维护所有用户信息资料,这里包括教师的基本信息如工号,职称等等以及学生用户的基本信息,如学号,邮箱等,管理员还可以根据已有的学生表或教师表批量导入用户信息。(3)添加新的管理员:管理员可以添加新的管理员账号,删除已有的管理员账号以及修改个人资料信息(4)实验项目管理:管理员可以添加实验项目,输入好项目名称,设置实验开始时间以及结束时间,还能上传实验内容,最后发布实验,可以在我的实验项目中查看已发布的实验。(5)题目管理:选择题目管理可以查看详细题库信息,查看试题信息,查看实验结果以及成绩查看。4.2数据库设计本系统的数据使用了MySQL数据库进行存储,通过Navicat数据库可视化工具来帮助我在开发阶段手动的管理数据库。在后台使用JDBC工具类对数据库中的数据执行增删改查等操作。4.2.1系统E-R图E-R图也称实体-联系图,它具有表示出实体类型、属性和联系的方法,用来描述大学计算机基础实验平台中真实的概念模型。它是一张平面图可以能够表达描述各个实体之间的关系,不仅如此,它还包括实体的一些属性以及对实体的各种操作进行描述。对系统需求以及在开发过程中的设计可知此系统大致有学生用户、教师用户、题库、实验项目、管理员、实验结果成绩等实体,下面介绍一下该系统涉及的实体集:admin(id,username,password,addtime);xuesheng(id,xuehao,mima,xingming,xingbie,nianji,banji,shoujihao,youxiang,addtime);jiaoshi(id,gonghao,mima,xingming,xingbie,lianxifangshi,zhicheng,youxiang,addtime);shiyanxiangmu(id,xiangmubianhao,xiangmumingcheng,kaishishijian,jieshushijian,shiyanneirong,faburen,addtime);tiku(id,shiyanxiangmuid,xiangmubianhao,xiangmumingcheng,tikubianhao,tikumingcheng,kaoshishizhang,faburen,addtime);shiti(id,tikuid,tikubianhao,tikumingcheng,shititimu,leixing,daan,faburen,addtime);jieguo(id,tikuid,tikubianhao,tikumingcheng,faburen,kaoshibianhao,leixing,daan,defen,zimu,kaoshiren,addtime);kaoshijieguo(id,tikuid,tikubianhao,tikumingcheng,kaoshibianhao,kaoshishichang,danxuantidefen,duoxuantidefen,tiankongtidefen,zongdefen,kaoshiren,addtime);本系统的E-R图如图4-1所示。图4-1系统E-R图4.2.2数据库表设计课程试卷分析网站一共设计了8张表,分别是管理员表、学生表、教师表、课程表、大纲表、教师课程试卷中间表、试卷表、大纲试卷信息表、大纲备用表和试卷备用表,以下是这些表的详细描述:(1)管理员信息表(admin)admin表,用来存放管理员的信息,如表4-1所示。(2)学生表(xuesheng)学生表,用来存放学生的基本信息,如表4-2所示。(3)教师信息表(jiaoshi)教师表,用来存储教师的基本信息,如表4-3所示。(4)实验项目表(shiyanxiangmu)实验项目表,用来存储课程相关信息,如表4-4所示。(5)题库信息表(tiku)题库表,用来存储题库的详细信息,如表4-5所示。(6)试题表(shiti)试题表,用来存储试题信息如表4-6所示。(7)结果信息表(jieguo)结果表,用来存储试卷的详细信息,如表4-7所示。(8)考试结果表(kaoshijieguo)考试结果表,用来存放学生考试数据,如表4-8所示。4.3小结本部分主要介绍了各个模块的页面设计,在实现系统之前设计了各个模块的大致页面呈现的样子,这样方便后面快速开发。除了以上呈现的几个页面,在各个功能里面还有很多页面需要根据需求再进行详细的设计,这些页面需要根据实际开发的需要再进行设计。5系统实现5.1项目工程目录项目工程目录如图5-1所示。大学计算机基础虚拟实验平台系统的前端部分我使用了HTML+CSS+JavaScript技术设计来作为前台显示效果,使用到了是Bootstrap框架。后台使用SSM框架进行开发、JDBC等技术实现所有功能。图5-1项目整体结构图5.2用户登录注册模块5.2.1用户登录功能学生用户和教师用户在登录前需要提交正确的账号密码,选择身份并输入验证码。登录功能的代码会对用户输入的信息对比数据库验证,通过传过来的参数来判断当前提交过来的表单是登录的请求,调用isXuesheng()的方法来通过数据库查询检验用户账号密码和验证码是否正确,如果判断为正确就可以登录跳转到系统main.jsp页面,失败的话就会弹出对话框信息不正确,然后返回登录页面。登录页面如图5-2所示。图5-2网站登录页面图核心代码:if(username==null||"".equals(username)){returnshowError("账号不允许为空");}if(pwd==null||"".equals(pwd)){returnshowError("密码不允许为空");}if(cx==null){returnshowError("请选中登录类型");}Stringrandom=(String)request.getSession().getAttribute("random");Stringpagerandom=request.getParameter("pagerandom")==null?"":request.getParameter("pagerandom");if(request.getParameter("a")!=null&&!pagerandom.equals(random)){returnshowError("验证码不正确");}5.2.2用户注册功能在注册模块中,没有被管理员注册过的学生用户和教师用户是不可以登录的。用户只能通过管理员录入注册信息提交后,注册通过后用户才可以进行登录,学生用户注册方法与教师用户注册类似,只是注册信息内容有所区别。用户注册如图5-3所示。图5-3管理员注册用户页面核心代码:if("zhuce".equals(param)){ intid=xueshengid; Xueshengxue=loginService.getXueshengById(id); if(tea==null){ request.getRequestDispatcher("regist.jsp?param=reid").forward(req,res); } else{ Xueshengx=newXuesheng(id,xuehao,mima,xingming,xingbie,nianji,banji,shoujihao,youxiang,addtime); loginService.addXuesheng(x); }}5.3管理员功能模块5.3.1实验项目添加功能的实现在实验项目添加功能中,管理员需要先录入项目编号,再输入项目名称。设置选择好实验项目的开始时间和结束时间。在实验项目添加之前,管理员可以通过搜索框搜索是否已经存在这种项目。在搜索框输入项目编号点击搜索进入后台,调用的相应的方法来查询管理员所需要的数据,如果有数据,则当管理员需要更换新的实验项目名称。其中,系统管理员可以维护所有教师的实验项目,教师只能使用自己发布的实验项目。具体实现页面如图5-4和图5-5所示。图5-4实验项目添加页面图5-5实验项目查询页面核心代码:Stringorder=Request.get("order","id");//获取前台提交的URL参数order如果没有则设置为idStringsort=Request.get("sort","desc");//获取前台提交的URL参数sort如果没有则设置为descExampleexample=newExample(Shiyanxiangmu.class);//创建一个扩展搜索类Example.Criteriacriteria=example.createCriteria();//创建一个扩展搜索条件类Stringwhere="1=1";//创建初始条件为:1=1where+=getWhere();criteria.andCondition(where);if(sort.equals("desc")){example.orderBy(order).desc();//把sql语句设置成倒序}else{example.orderBy(order).asc();//把sql设置成正序}Intpage=request.getParameter("page")==null?1:Integer.valueOf(request.getParameter("page"));//获取前台提交的URL参数page如果没有则设置为1page=Math.max(1,page);List<Shiyanxiangmu>list=service.selectPageExample(example,page,12);//获取当前页的行数.assign("list",list);assign("orderby",order);//把当前排序结果写进前台assign("sort",sort);assign("where",where);//把当前条件写给前台return"shiyanxiangmu_list";//使用视图文件:WebRoot\shiyanxiangmu_list.jsp }5.3.2添加试题功能的实现管理员可以实现添加试题的功能,首先管理员可以根据需要在搜索框输入内容进行搜索,后台查询到相应的需要的数据并展示在页面中。并且,管理员点击添加试题来发送新增题目的请求,调用addShitiDetail()方法添加数据,具体实现页面如图5-6和图5-7所示。图5-6添加试题信息页面图5-7编辑题库和时长页面5.3.3题库查询功能实现管理员用户,可以通过搜索项目编号,项目名称或题库名称的方式查询已经发布过的题库。通过点击添加试题获取参数来跳转到编辑试题的页面,此页面可以修改试题的题目,实体类型以及编辑修改试题,点击提交按钮提交请求,获得Request响应后即可弹出修改成功的对话框。点击重置按钮即可以把已经输入过的信息内容清空。具体实现页面如图5-8,5-9所示。图5-8题库查询页面图5-9在线实验页面核心代码:Shitipost=newShiti();//将前台表单数据填充到实体类service.update(post);//更新数据intcharuid=post.getId().intValue();returnshowSuccess("保存成功",Request.get("referer"));//弹出保存成功,并跳转到前台提交的referer页面}intid=Request.getInt("id");Shitimap=service.find(id);//根据前台url参数中的id获取行数据request.setAttribute("map",map);//把数据写到前台return"shiti_detail";//返回页面WebRoot\shiti_detail.jsp}5.3.4试题查询功能实现管理员用户可以通过搜索题库名称,试题的题目或题目类型的方式查询已经发布过的题库。通过点击编辑获取参数来跳转到编辑试题的页面,此页面可以修改试题的题目,实体类型以及编辑修改题目答案,点击提交按钮提交请求,获得Request响应后即可弹出修改成功的对话框。具体实现如图5-10和图5-11所示。图5-10试题查询功能页面图5-11试题详细信息功能页面5.3.5实验结果查询功能的实现实验结果查询模块,分为对实验题目的查询以及对考试结果的查询。点击结果管理的操作时,管理员可以根据题库名称搜索出所有对应的题库结果,并且可以点击详情来查看更多的试题内容,管理员还可以对题库进行编辑操作以及删除操作。点击考试结果查询的操作时,管理员可以根据题库名称,考试编号或者得分区间来查询出考试结果并通过编辑和删除的操作对结果进行管理。具体实现页面如图5-12和图5-13所示。图5-12题目信息查询页面图5-13考试结果管理页面核心代码:List<Jieguo>list=service.selectPageExample(example,page,12);request.setAttribute("list",list);assign("orderby",order);assign("sort",sort);assign("where",where);return"jieguo_list_faburen";}@RequestMapping("/jieguo_list_kaoshiren")publicStringlistkaoshiren(){//检测是否有登录,没登录则跳转到登录页面if(!checkLogin()){returnshowError("尚未登录","./login.do");}Stringorder=Request.get("order","id");//获取前台提交的URL参数order如果没有则设置为idStringsort=Request.get("sort","desc");//获取前台提交的URL参数sort如果没有则设置为descExampleexample=newExample(Jieguo.class);//创建一个扩展搜索类Example.Criteriacriteria=example.createCriteria();//创建一个扩展搜索条件类//初始化一个条件,条件为:考试人=当前登录用户Stringwhere="kaoshiren='"+session.getAttribute("username")+"'";where+=getWhere();criteria.andCondition(where);//将条件写入if(sort.equals("desc")){//注释同listexample.orderBy(order).desc();//注释同list}else{example.orderBy(order).asc();//注释同list}intpage=request.getParameter("page")==null?1:Integer.valueOf(request.getParameter("page"));//注释同listpage=Math.max(1,page);//注释同listList<Jieguo>list=service.selectPageExample(example,page,12);request.setAttribute("list",list);assign("orderby",order);assign("sort",sort);assign("where",where);return"jieguo_list_kaoshiren";5.4教师功能模块5.4.1实验项目管理功能实现在实验项目模块中,教师用户点击查看实验会进入Action,调用ShiyanxiangmuService的listView()获取,随后跳转到页面展示,教师用户点击可以进入实验项目管理详情页面,此时传入后台的参数有两个,一个是param,如果param=detailmark,则表示教师要查看详情信息,另一个参数是Tiku台数据库主要根据题库id查找题库信息,调用getXiangmumingchengById(newid)方法获取题库信息,将结果集存放在Tiku中通过request跳转至tikudetailmark.jsp实验项目。具体实现页面如图5-14和图5-15所示。图5-14实验项目添加图5-15我的实验项目核心代码:intid=Request.getInt("id");//获取行数据,并赋值给前台jsp页面Shiyanxiangmummm=service.find(id);request.setAttribute("mmm",mmm);request.setAttribute("updtself",0);return"shiyanxiangmu_updt";Shiyanxiangmupost=newShiyanxiangmu();//创建实体类//设置前台提交上来的数据到实体类中post.setXiangmubianhao(Request.get("xiangmubianhao"));post.setXiangmumingcheng(Request.get("xiangmumingcheng"));post.setKaishishijian(Request.get("kaishishijian"));post.setJieshushijian(Request.get("jieshushijian"));post.setShiyanneirong(util.DownloadRemoteImage.run(Request.get("shiyanneirong")));post.setFaburen(Request.get("faburen"));post.setAddtime(Info.getDateStr());service.insert(post);//插入数据intcharuid=post.getId().intValue();returnshowSuccess("保存成功",Request.get("referer").equals("")?request.getHeader("referer"):Request.get("referer"));}5.4.2题目管理功能的实现教师用户点击题库查看,可以根据项目编号,项目名称,题库名称三种查询方式进行查看功能如图5-16所示。图5-16题库查看试题查看功能如图5-17所示。图5-17试题查看核心代码:if(!ServletFileUpload.isMultipartContent(request)){return;}Stringuppath=this.getServletContext().getRealPath("/upload");Fileupfile=newFile(up);if(!upfile.exists()){upfile.mkdir();}StringtmpPath=this.getServletContext().getRealPath("/WEB-INF/tmp");Filefile=newFile(tmpPath);if(!file.exists()){file.mkdir();}DiskFileItemFactoryfactory=getFiFactory(file);ServletFileUploadupload=getServletFileUpload(factory);ShitiShiti=upReq(upload,request,up);ShitiServicens=newShitiService();ns.updateShiti(Shiti);}删除试题功能,点击删除按钮,会弹出删除确认框,点击确认删除后此时会传入参数,一个是param,如果param=delete,表示当前用户正在执行删除操作,另一个参数是Shitiid,用户根据试题的主键调用deleteShiti方法删除新闻信息,删除成功后需要重新加载题库管理页面数据,系统管理员则调用listAllShiti()方法获取数据。如图5-18所示。图5-18试题结果查看核心代码:if(!checkLogin()){returnshowError("尚未登录");}intid=Request.getInt("id");//根据id删除某行数据HashMapmap=Query.make("shiyanxiangmu").find(id);service.delete(id);//根据id删除某行数据returnshowSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页}成绩查看功能,教师用户点击题目管理栏中的成绩查看功能,即可以查看学生完成实验后的实验成绩,点击详情可以查看学生实验所用时长等详细信息。如图5-19所示。图5-19成绩查看5.5学生用户模块5.5.1实验项目查看在学生模块中,所有学生用户都可以查看自己的实验项目信息,可以通过左边导航栏点击进去。点击导航栏的实验项目查看会向后台发送请求传具体实现页面如图5-20所示。图5-20实验项目查看5.5.2试题结果查看学生用户可以查看自己的试题结果,通过左边导航栏点击进去。点击导航栏的试题结果查看会向后台发送请求,这里主要通过session获取当前用户的角色来调用不同的方法从而获取数据,在列表中只需要输入题库名称进行搜索实验题目结果,通过session自动获取,点击详情后进题目公告详情页查看自己得分情况,如图5-21所示。图5-21试题结果页面点击考试结果查询后进考试结果列表查看自己得分情况,学生可以根据自己对应的题库名称或者考试编号进行搜索查询,点击详情可以查看具体内容,详情页上方设置了返回按钮,方便学生返回再进行其他的操作。如图5-22所示。图5-22考试结果查看核心代码:if("detail".equals(param)){intnoticeid=reqnoticeid; Noticenotice=ns.getNoticeDetail(noticeid); request.setAttribute("notice",notice);}5.6信息管理模块5.6.1学生个人信息管理的实现在信息管理模块中,学生用户只能查看或维护自己个人的信息,后台PersonAction通过调用getXueshengById(id)方法获取当前用户的信息,其中id从session中获取。然后在页面中展示个人的信息,点击修改信息后,填写自己想要修改的内容,确认修改后,后台调用updateXuesheng()方法更新数据库的数据,更新完后提示修改成功。具体实现页面如图5-23所示。图5-23学生个人信息修改页面核心代码:if("myself".equals(param)){ Xueshengxuesheng=ls.getXueshengById(id);}if("upd".equals(param)){ Xueshengxuesheng=ls.getxueshengById(xueshengid);}if("update".equals(param)){ Xueshengt=newxuesheng(id,username,password,xingbie,gongling,identity,youxiang,myrole); ls.updateXuesheng(t);}5.6.2教师用户维护信息功能的实现教师用户可以维护自己的的信息,拥有删除修改基本资料信息、修改密码等功能,调用updateTeacherStatusById()方法更新教师用户的状态。如图5-24所示。图5-24教师修改个人信息页面核心代码:if("sqgl".equals(param)){ if(thisrole==1){ ls.updateTeacherRoleById(0,teacherid); }else{ ls.updateTeacherRoleById(1,teacherid); }List<Teacher>tlist=ls.listAllTeacher(id);}5.6.3系统管理员维护信息功能的实现系统管理员可以维护所有人的信息,拥有删除修改用户信息、授权设置管理员助理、设置普通用户启用禁用的状态等功能。如图5-25,图5-26所示。图5-25管理员维护学生用户信息页面图5-26管理员维护教师用户信息页面5.7小结本部分详细介绍了登录注册、实验项目管理、题库管理、试题管理、试题结果管理、考试结果管理、考试详情和用户信息模块等功能的实现,本部分实现起来最困难的地方是试题结果管理模块,在管理试题结果时,对数据库的操作非常多,有些sql语句十分繁杂,在对信息的增删改查中需要我非常严谨的思考与规范的操作才能得到最终预期的结果。6系统测试6.1功能模块测试由于本系统的功能细节较多,故每个模块只选择一部分功能进行测试描述,更多详细的测试将在6.2节用例测试中一一进行描述。6.1.1用户登录注册测试这个系统面向的人群是学生用户以及教师用户,所以用户是必须注册状态是启用的才能进行登录,否则没有权力进入网址,这里测试登录账号输入的是20170017,密码1234,该账号密码数据库中没有,测试登录结果如图6-1所示。图6-1登录非法账号结果页面因为本系统注册用户需要输入验证码后,验证码通过校验后用户才能够进行登录。如图6-2所示。图6-2验证码校验页面6.1.2新增实验项目功能测试新增实验项目时,录入项目的每一个字段都需要根据正则表达式进行校验,项目编号和项目名称必须非空,提交表单时都需要进行非空校验,测试结果如图6-3所示。图6-3新增实验项目页面6.1.3新增试卷题目功能测试新增试卷题目时,录入课程大纲的每一个字段都需要根据正则表达式进行校验,题库编号以及题库名称必须按照指定格式进行录入,试题题目是必填字段,题目类型可以多选,测试结果如图6-4所示。图6-4新增实验题目页面6.1.4题库查询功能测试按照项目编号查询,项目名称查询,或题库名称查询,测试结果如图6-5所示。图6-5题库查询功能测试结果页面6.1.5试题查询功能测试可以根据题库名称查询,试题题目查询,类型可以选择单选题,多选题或者填空题,查询结果默认会按照发布时间倒序的顺序显示,也可以手动调整为升序,测试结果如图6-6所示。图6-6试题查询测试结果页面6.1.6结果管理功能测试在结果查询中,需要输入题库名称,点击查询后才会出现结果。可以选择点击详情来查看题目的具体详情。测试结果如图6-7和6-8所示。图6-7结果查询页面图6-8结果详情页面6.1.7考试结果功能测试在考试结果查询栏中可以根据题库名称进行查询,也可以根据考试编号进行查询,还可以根据单选题得分区间进行查询。点击详情可以查看考试结果详情,包括考试编号,考试人,考试所用时长,试题添加时间等等。测试结果如图6-9和图6-10所示。图6-9考试结果查询测试页面图6-10考试结果详情测试页面6.1.8维护用户信息测试系统管理员拥有维护学生用户信息以及教师用户信息的权力,可以删除修改用户信息、批量导入用户,批量导入事需要选择上传本地用户信息的文档。测试结果如图6-11,6-12所示。图6-11管理员维护学生用户信息页面图6-12批量导入学生信息结果测试页面6.2测试用例6.2.1学生用户模块测试这部分主要用于测试学生用户系统的功能,详细测试系统的功能是否全面,登录注册模块的功能测试过程如表6-1所示。表6-1学生用户模块功能测试测试内容操作描述数据期望结果实际结果状态测试1只输入账号账号:2017001密码输入框提示密码为空系统密码输入框提示密码为空与预期结果一致测试2只输入密码密码:mzmzmz账号输入框提示必须账号为空系统账号输入框提示必须填写账号与预期结果一致测试3输入全部信息all正常跳转进入系统成功登录系统与预期结果一致测试4注册已经存在的账号账号:2017001密码:mzmzmz返回注册页面并提示该账号已被注册成功返回注册页面并提示该账号已被注册与期望结果一致6.2.2教师用户模块测试教师用户模块的测试目的是检测教师模块的功能是否完善,代码逻辑是否正确。详细的测试过程如表6-2所示。表6-2用户模块功能测试测试内容操作描述数据期望结果实际结果状态测试1搜索框只输入教师教师:张一通过搜索,页面展示所有教师姓名中的实验项目信息通过搜索,页面展示所有教师姓名中的实验项目信息与期望结果一致测试2搜索框输入项目名称项目名:计算机通过搜索,页面展示所有课程名称中含有“计算机”的题库信息通过搜索,页面展示所有课程名称中含有“计算机”的题库信息与期望结果一致测试3发布实验时间填写项目信息与发布起始结束时间添加项目成功系统提示框:发布实验成功!与期望结果一致测试4新增实验不录入项目名称就提交表单课程名称为空项目名称输入框提示必须填写此字段系统输入框提示必须填写此字段与期望结果一致测试5新增实验项目所有表单内容为空每个输入框下面提示必填信息输入框下面提示这是必填字段与期望结果一致测试6查看试题信息选择题目类型:填空题列出所有类型为填空题的题目信息所有类型为填空题的题目信息都被列出与期望结果一致测试7查看成绩输入考试编号列出所有类型为填空题的题目信息大纲详情页弹窗提示章节重复新增失败与期望结果一致测试8添加题目输入任意字符题目编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年度隐患排查治理消防安全排查治理方案
- 水库调度运用方案隐患排查整治方案
- 量子拓扑加密机制-洞察与解读
- 化学选择性必修1第3节 化学反应的速率教学设计
- 鲁教版 (五四制)八年级下册2 矩形的性质与判定教案
- 并发回收机制-洞察与解读
- 债务重组法律问题-洞察与解读
- 高教版(第二版)教学设计-2025-2026学年中职中职专业课化工技术类67 生物与化工大类
- 2026年农业现代化与农业科技应用测试题集
- 反馈语言对员工效能影响-洞察与解读
- 北京市文物局局属事业单位招聘考试真题及答案2022
- 医院财务制度专家讲座
- 2023年上海市杨浦区中考一模(暨上学期期末)语文试题(含答案解析)
- 甲状腺病变的CT诊断
- 官兵心理健康档案模版
- GB/T 8834-2006绳索有关物理和机械性能的测定
- 真分数和假分数-完整版课件
- 1.《郑人买履》课件PPT
- GB∕T 36110-2018 文物展柜密封性能及检测
- 甘肃省生态功能区划
- 模拟电子技术基础 第四章 放大电路的频率响应
评论
0/150
提交评论