基于Web的师资管理系统的设计与实现_第1页
基于Web的师资管理系统的设计与实现_第2页
基于Web的师资管理系统的设计与实现_第3页
基于Web的师资管理系统的设计与实现_第4页
基于Web的师资管理系统的设计与实现_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

页(共22页)1绪论 1.1研究背景及意义近几十年来随着改革开放带来的经济的飞速发展,国家对教育事业投入的日益提高,一些民办或国办高校在这个大趋势下如雨后春笋一般展现了蓬勃的生机,进入了一个飞速发展的阶段。高校的数量日益增长,学校规模的不断扩大,招收的学生的不断增加,那么教师的需求量也会不断增长。这样传统的建立文档室用纸质的文档管理教师档案的方法的弊端就会被无线放大,人工去收集、抄录、修改、管理、统计、查询不仅会花费大量精力,而且会因为某些意外导致误差的出现。在这样的背景下,需要一个更加高效的、科学的、安全的方法去管理师资力量。结合本人所学专业,设计实现一个师资管理系统能够基本实现高效的、科学的、安全的去管理高校的师资力量。1.2项目开发流程在这个项目的实现过程中,从需求分析到数据库的设计,从整体页面的设计到整个项目后台的编写由我一个人独自完成。整个项目一开始使用的是servlet+jsp[2],用的MVC三层架构[3]去实现的,后来发现这样的话代码冗余过多,而且不便于管理、修改,后面就针对这个弱项去自我学习了spring+springmvc+mybatis这样的一个的框架去对项目进行一个重构和实现,而且一开始的数据库设计也会存在缺陷,在多次修改之后逐渐完善。整体项目就以教师信息管理为例,大致开发流程如下:(1)分析该模块的实际运用功能,可能会与其他模块交互的信息;(2)设计数据库;(3)对该模块的业务逻辑进行分析; (4)基于师资管理系统的代码编写并实现;(5)对系统运用的测试和改进;1.3论文结构安排论文由六章构成,先简单介绍一下各章的重要部分:第一章:绪论,简单讲解了师资管理系统的研究背景及意义,还有我在设计实现这个项目的主要工作。第二章:师资管理系统的相关的一些技术和概念的讲解,比如涉及到的B/S结构,MySQL数据库,一些框架有关的知识解释和这些技术的应用分析。第三章:系统的需求分析,需求分析以及数据库的初步设计。主要功能模块的分析,系统的整体架构。第四章:师资管理系统功能的实现,作为本文的重点,将会对本系统的主要模块进行讲解,从业务逻辑、代码设计的多个方面作为切入点进行说明。第五章:师资管理系统的测试与运行,将会给出一定的运行图进行直观的说明,并且对部分重点模块的测试过程进行说明。第六章:总结与展望,对本论文的工作以及完成情况做一个说明和自我评价,对一些能够改进优化的地方做一个汇总报告。2系统相关技术介绍本章节主要讲解的是系统使用的技术,系统架构上使用的是B/S架构[5],web服务器使用的是tomcat8.5[4],数据库使用的是MySQL5.5[7],自己搭建的框架使用的是spring+springmvc+mybatis。2.1B/S架构随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。B/S架构的特点: 浏览器方面:(1)能面对广大的用户实现信息传播共享;(2)浏览器只处理一些简单的逻辑事务,负担小;(3)页面的更新能实现同步,所有用户都能看到;(4)界面不需要太多的编写,比较通用,更改界面也比较简单,所以几乎不需要维护。 服务器方面:(1)数据都集中存放在数据库服务器,所以能够保值数据的统一;(2)能有效地保护数据平台和管理访问权限,服务器数据库也很安全;(3)在数据库服务器上不一定使用WINDOWS系统,也可以使用Linux这些;(4)在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效;(5)数据存放在数据库服务器,客户端并不存放任何业务数据或者数据库连接信息,所以数据比较安全。用户方面:(1)B/S建立在广域网上,所需的网速不高;(2)外部的用户也可以对浏览器进行访问;(3)不需要安装客户端,只要能连上网,就能随时随地的浏览页面;(4)所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,减少了数据库承受的压力。2.2MySQL数据库(1)简介MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于

Oracle

旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。(2)MySQL数据库特性=1\*GB3①使用C和

C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。=2\*GB3②支持

AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。=3\*GB3③为多种编程语言提供了

API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby、.NET和Tcl等。=4\*GB3④支持多线程,充分利用CPU资源。=5\*GB3⑤优化的

SQL查询算法,有效地提高查询速度。=6\*GB3⑥既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。=7\*GB3⑦提供多语言支持,常见的编码如中文的

GB2312、BIG5,日文的

Shift_JIS等都可以用作数据表名和数据列名。=8\*GB3⑧提供

TCP/IP、ODBC和JDBC等多种数据库连接途径。=9\*GB3⑨提供用于管理、检查、优化数据库操作的管理工具。=10\*GB3⑩支持大型的数据库。可以处理拥有上千万条记录的大型数据库。2.3Spring+SpringMvc+MybatisSpring将各层进行整合通过spring管理持久层的mapper通过spring管理业务层service,service可以调用mapperSpring将各层进行整合通过spring管理持久层的mapper通过spring管理业务层service,service可以调用mapper接口Spring进行事务管理。通过spring管理表现层handler,handler中调用service接口mysql持久层mybatis业务层service接口表现层springmvc3系统需求分析本章节主要介绍系统的需求分析、模块的划分、数据库的设计以及系统架构的设计过程。其中主要功能的用例图,重要部分的数据库图都在下文有具体的展示。3.1模块划分师资管理系统在大的模块上划分为普通教师登录和管理员登录两个的模块,教师和管理员登录会有不同的功能划分。教师模块:教师模块分为教师个人信息、院系查看、课表查看、请假申请和处理、科研申请和处理、公告查看模块。管理员模块:管理员模块分为教师管理、学院管理、职位管理、课表管理、公告管理功能。3.2需求分析(1)教师登录模块需求分析教师个人信息:教师对于自己本人的基本信息,比如:姓名、院系、职位等信息的查看、确认、修改。同时可以对登录密码进行修改,以下图3-1为教师个人信息模块功能需求用例图。教师登录密码修改修改信息信息查看教师登录密码修改修改信息信息查看验证密码课表管理:教师登录,查看课表,如果发现课表有误,可以进行课表报错操作,以下图3-2为教师课表管理模块功能需求用例图。报错处理课表查看教师登录图报错处理课表查看教师登录请假申请和处理:教师填写请假申请,选择审批人,填写请假类型等基本信息,完成提交之后,可以在假条查看处查看到申请的状态,审核人处会接受到该条申请并对其做出处理。以下图3-3为教师请假申请和处理模块需求功能用例图。教师登录请假填写审批人操作状态查看教师登录请假填写审批人操作状态查看同意驳回科研申请和处理:该模块需求功能基本和请假申请和处理相同,需求功能用例图参照图3-3。查看单个公告详情查看公告教师登录公告查看:为管理员创建的公告,教师只具有查看功能,无法修改,先显示部分信息,教师可以点击查看详细信息,以下图3-查看单个公告详情查看公告教师登录图3-4公告查看(2)管理员登录模块需求分析管理员登录删除教师添加教师教师复职教师管理模块:管理员登录可以对教师进行操作,添加新的教师,删除退休或者离职的教师,把离职的教师恢复为在职状态。以下图3管理员登录删除教师添加教师教师复职图3-5管理员教师管理管理员登录添加课表报错课表删除修改课表管理模块:管理员可以为指定教师添加课表,也可以接受到教师提交到的报错课表,管理员回去核实该报错课表的真实性,并对其进行相应操作,如果出现课表重复,应该删除,如果是课时安排出错,可以进行相应修改。以下图管理员登录添加课表报错课表删除修改图3-6管理员课表管理学院管理:管理员可以对学院进行增加,填写正确的信息即可,也可以对学院进行删除,便于高校对于各院系的管理。以下图3-7为管理员的学院管理模块需求功能用例图。管理员登录学院查看添加学院删除学院管理员登录学院查看添加学院删除学院职位管理、公告管理:管理员在职位管理上可以查看职位、添加职位、删除职位,管理员在公告管理上可以发布公告、查看公告、删除公告,这两个模块的需求用例图参照图3-7就可以实现,所以不做过多赘述。3.3数据库设计数据库的表的设计[8]是根据不同功能模块所需的不同数据进行设计的,优化数据库时就舍弃了外键的绑定,用的id对各表进行关联,不同的表保存的信息不同而选择添加了flag标志进行判断状态,因为之前没有完整的、系统性的遵循数据库设计原则去设计数据库,所以本项目的数据库是在一次次调试中吸取经验逐步完善的。部分数据库表的设计如下。图3-8Userinfo表图3-9Departinfo表图3-10Notice表图3-11Schedule表图3-12Roleinfo表3.4系统架构设计在系统整体架构上有界面层、业务逻辑层、数据访问层三层。界面层:用户直接在浏览器上面可以对后台处理的数据进行可视化的查看,同时提供一些可操作的选项给操作的用户,可以连接到业务逻辑层去处理这些用户的操作,主要对用户的请求进行接收,以及数据的返回,提供给用户一个交互式操作的页面。业务逻辑层:业务逻辑层是系统的整个核心的地方,它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,他接受到用户在表示层的请求,再去根据这个请求去执行自己指定的逻辑,再去连接数据层,对数据进行增、删、改、查这些操作,再把数据返回给表示层显示给用户。主要负责对数据层的操作。就是把对数据层的操作进行组合。数据层:也就是持久层,主要功能是对数据库的访问,连接的是业务逻辑层,执行的是业务逻辑层中的业务逻辑,就是执行mapper.xml中的select、updata、delete、insert。4师资管理系统功能实现本节主要是说明系统实现的过程,对每个模块都进行了业务逻辑的分析,再去实施代码的编写,避免逻辑上的重大缺陷,部分重要模块有代码的直观呈现。4.1登录页面(1)业务逻辑分析登录模块教师和管理员公用一个,在数据库设计了一个flag用于标识用户是否具有管理员权限,再根据对登录信息查询数据库,判断用户权限,跳转到各自不同的主界面,登录模块支持同步的用户登录邮箱验证。(2)代码实现[1]判断用户权限,根据用户登录后获取的返回的数据进行判断用户角色,flag为1时判断为普通教师登录,跳转到相应界面,flag为2时,判断为管理员登录,跳转到相应界面: //用户登录 @RequestMapping("/userLogin") @ResponseBody PublicModelAndViewlogin(UserInfouserinfo,HttpSessionsession){ UserInfouser=loginService.login(userinfo); //session.setAttribute("userinfo",user); ModelAndViewmav1=newModelAndView("login"); ModelAndViewmav2=newModelAndView("usermain"); ModelAndViewmav3=newModelAndView("adminmain"); if(user!=null){ //查询用户完整信息,显示 ExtendUseruserDetailInfo=loginService.getUserDetailInfo(userinfo.getEmail()); session.setAttribute("userinfo",userDetailInfo); //判断登录角色 if(user.getFlag()==1){ //普通教师 returnmav2; }elseif(user.getFlag()==0){ //管理员 returnmav3; }else{ returnmav1; } }else{ returnmav1; } }用户邮箱检测,采用的是jQueryvaildate验证框架,自定义的验证函数,使用的是ajax的同步进行处理如果你的操作不符合规范,那么无法执行下一步,如果邮箱不存在,会出现“用户名不存在”的一个提示:<scripttype="text/javascript">$.validator.addMethod( "nameIsExist", function(value,element,params){ //value用户输入的值 //element对象 //params校验的值 returnajax_name(value); } ) functionajax_name(value){ varflag=true; $.ajax({ url:"${pageContext.request.contextPath}/Login/checkEmail", data:{"email":value}, dataType:"json", type:"post", cache:false, async:false, success:function(data){ flag=data.flag; }, error:function(){ alert("系统错误!"); } }); returnflag; } $(function(){ $("#form").validate({ rules:{ "email":{ "required":true, "nameIsExist":true }, }, messages:{ "email":{ "required":"用户名不能为空", "nameIsExist":"用户名不存在" } } }); });</script>4.2教师个人信息管理教师个人信息通过教师登录返回的存放在在session中的实体类的id查询个人信息,将数据回显到jsp页面显示,教师个人信息管理有查看信息功能、个人信息修改功能以及修改密码功能,其中教师信息修改是回显当前教师的信息在教师信息修改页面,用于让教师确认自己之前的信息,教师就只用选择性的去修改基本信息就可以了。密码修改也需要进行判断,先要输入当前的密码,再进行新密码的输入,新密码的确认,不然无法处理,防止非当前教师本人操作或误操作,代码原理和登录的邮箱验证相似。4.3教师模块功能教师模块具有课表查看和报错、院系查看、请假申请和处理以及资格评定申请和处理等权限,院系查看就是基本的数据查询语句,只是在院系查看的前台页面使用ajax添加了分页,写了一个pagebean的实体,使用了泛型,使得所有页面均可以使用,优化用户的体验。课表查看需要判断当前用户的userid去数据库中实现查看,即当前普通用户只能查看自己的课表信息,不能查看其他教师信息,课表查看里面有一个报错按钮,点击就可以把某一天的课表标记为有误,这样,管理员就会在他的相应模块查看到这条记录,就可以对这条数据进行修改和删除的操作。请假申请和处理以及资格评定申请和处理在整体业务逻辑上都是相同的,所以放在一起说明。(1)业务逻辑分析申请就是教师点击进入到相应的页面,进行申请信息的填写,然后点击添加按钮就会执行相应的操作,操作成功就会跳转到查看申请页面,当前默认状态为审核中。当教师成功完成申请操作之后,审核人就会在相应模块查看到申请的信息,并对其完成同意申请、驳回申请的操作。完成之后,申请人那里就会显示当前申请的申请信息,有已审批、驳回。(2)代码实现请假申请controller,在servic层返回的一个Boolean的数据类型回来,判断当前操作是否成功,成功就跳转到查看界面,失败会跳回申请界面重新申请: @RequestMapping("/addLeaveTime") publicModelAndViewaddLeaveTime(LeaveTimeleavetime,HttpSessionsession){ UserInfouser=(UserInfo)session.getAttribute("userinfo"); leavetime.setUserid(user.getUserid()); Booleanflag=loginService.addLeaveTime(leavetime); ModelAndViewmav1=newModelAndView("redirect:/Login/showLeaveTimeJsp"); ModelAndViewmav2=newModelAndView("redirect:/Login/goLeaveTimeJsp"); if(flag=true){ //成功跳转查看界面 returnmav1; }else{ returnmav2; } }请假申请sql[9],在mybatis里面自己写的sql语句,更加灵活的进行操作:<insertid="addLeaveTime"parameterType="com.zhl.pojo.LeaveTime">insertintoleavetime(leaveType,beginTime,endTime,duration,createTime,remarks,approver,flag,userid)values(#{leaveType},#{beginTime},#{endTime},#{duration},now(),#{remarks},#{approver},${1},#{userid});</insert>4.4管理员功能模块(1)业务逻辑分析管理员具有教师管理、职位管理、学院管理、修改课表等操作权限及功能,教师管理、职位管理、学院管理、修改课表整体业务逻辑相近,说以放在一块说明。教师管理就是简单的sql的insert语句,但是做了一个检验,如果数据库存在相同名字教师,添加不能执行,删除教师做的是一个假删除,并不是真正的删除,就是数据库中仍然会有该教师的信息,只是在数据库设计时加了一个userstatus来判断教师状态是在职还是离职,职位管理、学院管理基本和教师管理相同,所以不做过多赘述。修改课表就是接收到的教师操作的报错课表信息,可以对改课表进行修改、删除操作。(2)代码实现添加教师sql,密码默认为“123456”,教师可以自己修改,状态默认为在职:<insertid="adduserinfo"parameterType="com.zhl.pojo.UserInfo">insertintouserinfo(username,password,departid,email,gender,roleid,userstate,flag)values(#{username},${123456},#{departid},#{email},#{gender},#{roleid},${1},#{flag});</insert>删除教师sql,删除是一个假删除,并不会真的去删除教师信息,而是修改数据库中的userstate为1,表示该教师离职,以便于教师可能出现的复职情况:删除教师:<updateid="adminChangeUserState"parameterType="int">updateuserinfosetUserState=${2}whereuserid=#{userid}</update> 复职教师:<updateid="adminChangeUserState2"parameterType="int">updateuserinfosetUserState=${1}whereuserid=#{userid}</update> 4.5公告管理(1)业务逻辑分析公告管理为管理员专属操作,管理员进行公告的添加,成功返回公告显示页面,显示页面可以点击公告标题进入到公告详情页面,还可以对公告进行删除操作。(2)代码实现公告管理sql,第一个sql语句“getCount9”是查询出公告的总数,为第二个分页sql“adminShowNotice2”做准备,而“adminDeleteNotice”sql语句也是一个假删除语句,用于删除公告,“showDetailNotice”sql语句是用于显示公告详情页面的sql查询语句:<selectid="getCount9"resultType="int">SELECTCOUNT(id)FROMnoticewhereflag=${1}</select> <selectid="adminShowNotice2"parameterType="com.zhl.pojo.vo.QueryVo"resultMap="notice">SELECT*FROMnoticewhereflag=${1}LIMIT#{beginPage},#{pageSize}</select><updateid="adminDeleteNotice"parameterType="int">updatenoticesetflag=${2}whereid=#{id}</update><selectid="showDetailNotice"parameterType="int"resultType="com.zhl.pojo.Notice">SELECT*FROMnoticewhereid=#{id}</select>5师资管理系统的测试与运行本章节的主要作用就是对系统进行整体测试,通过用例测试核实系统是否能正常运行、有无重大缺陷,并选取主要功能进行图文展示说明。5.1测试环境(1)硬件环境intel(R)core(TM)i5-3230MCPU@2.60GHz+4G内存+500G硬盘(2)软件环境Eclipse[6]+Tomcat8+MySql+Jdk1.85.2系统功能集合用例测试本节采用用例测试方式对该系统的登录功能,普通教师的个人信息管理模块、课表管理模块、院系查看模块、请假模块、科研申请模块、审批管理模块、查看公告模块和管理员的教师管理模块、课表管理模块、学院管理模块等进行集合用例功能测试。表5.1为功能集合用例测试表。表5.1师资管理系统功能集合测试用例测试模块测试功能项测试数据输入预期输出显示结果是否符合预期目标用户登录进行登录用户验证输入用户名“qwerty”显示用户名不存在“用户名不存在”符合教师个人信息管理模块修改教师详细信息修改“周哈哈”的用户名为“654321”跳转到个人信息页面个人信息符合教师个人信息管理模块修改密码修改“周哈哈”的密码为“123456”显示修改成功“修改成功”符合教师课表管理模块查看课表和报错处理无输入教师课表教师课表符合教师院系查看模块查看院系无输入院系信息院系信息符合教师请假申请模块请假申请和查看选择审批人,输入请假人假条信息假条信息符合教师科研申请模块科研申请和查看选择审批人,输入申请信息审批进度审批进度符合教师审批管理模块请假和科研审批教师申请的数据信息待审批信息待审批符合管理员教师管理模块添加教师输入“测试教师”信息跳转到管理教师页面跳转成功符合管理员课表管理模块添加课表选择教师“周哈哈”,输入课表显示修改成功“添加成功”符合管理员课表管理模块进行报错课表操作无输入跳转回查看报错课表界面跳转成功符合管理员学员管理模块添加学院添加“测试学院”,选择联系人跳转到学院查看页面跳转成功符合管理员职位管理模块添加职位添加“测试职位”信息跳转到职位查看页面跳转成功符合管理员公告管理模块添加公告添加“测试公告”信息跳转到公告查看页面跳转成功符合5.3系统运行效果测试对系统各功能逐项测试并验证,测验系统是否达到用户的过程称之为功能测试,由于篇幅受限,本文只显示主要模块功能的测试图。(1)教师请假模块测试数据和结果为当前登陆教师添加一个请假申请,选择审批人、请假类型,输入其他请假信息。因为开始时间和结束时间我是使用的jQuery的插件写的,所以可以直接点击选择,如图5-2为教师请假申请信息添加页面:图5-2请假申请页面确定输入的信息后,点击下方添加按钮,保存成功后跳转到假条查看页面,如下图5-3所示:图5-3查看假条页面(2)教师请假审批测试数据和结果退出请假教师登录,登录请假申请的审核人教师账号,点击审批管理里

温馨提示

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

评论

0/150

提交评论