计算机毕业设计 jsp班级内部事务管理ssh 毕设


https://www.bilibili.com/video/BV1de411J72W/

演示视频:

3.1 系统模块划分

根据高校教务评教的具体需求,将本系统划分为八个模块,分别为用户管理、个人信息管理、考勤管理、班费管理、成绩查看、网上投票、文件共享、通知管理。系统总体结构如图3.1所示。

5d1bb72dad0b9c5e44a14c45d4dc9409.jpeg

图 3.1 系统模块结构图

本系统划分为六种用户角色,分别为:管理员、班导师、班长、学习委员、生活委员、一般学生。其中,管理员拥有整个系统的最高权限,可以使用所有功能。班级成员管理模块可以对班级里的学生进行添加、修改、删除操作;考勤管理模块:管理员、班导师、班长及学习委员都有添加考勤记录的权限,而普通同学只能查看自己的考勤记录;班费管理模块:管理员、班长、生活委员有权限使用此模块,可以查看、添加及修改班费收支记录;成绩管理模块:管理员、班导师、学习委员有权限使用此模块,可以查看、添加、修改学生的成绩,普通学生则只能查看本人的成绩列表;网上投票模块:发起及投票功能面对学生,班导师及管理员可查看投票结果;文件共享模块:所有成员均可使用,但管理员可以对所有的共享文件进行修改、删除操作,其它用户只能管理自己上传的文件;通知管理:面向所有用户,管理员及班导师可以对所有通知进行修改、删除操作,其它用户只能管理自己发布的通知。

3.2 各模块的需求分析

3.2.1 管理员

管理员帐号拥有本系统的最高权限,可以对所有模块进行管理,操作数据库中所有的数据。班级成员由管理员创建、分配帐号。

首先,管理员需要登录后才能使用系统。用户登录管理模块对不同的用户角色都是统一的,在班级管理系统首页选择对应的角色,输入用户名、密码以及验证码即可以登录。管理员的用户由拥有数据库管理权限的DBA管理,其他人无法创建,保证了系统的安全性。超级管理员的用例图如图3.2所示。

575283af45ccb9f1d3f03ec931b6766f.jpeg

图3.2 超级管理员用例图

超级管理员可以进行班级成员管理、考勤管理、班费管理、成绩管理、网上投票管理、文件共享管理、通知管理。

3.2.2 班级成员管理模块需求分析

本系统面向一个班级,因此必须为所有的班级成员各分配一个帐号,而且在系统开始使用之后,需要对班级成员进行信息维护。班级成员管理模块只面对管理员,管理员可以添加、修改、删除学生信息。如图3.3所示。

3207c3510fe37b9095385fb87e8eec5b.jpeg

图 3.3 学生信息管理列表

当学生信息发生变化时,或者学生忘记了密码,管理员可以通过“修改学生信息”功能更改其信息。如图3.4所示。

3841f172a0e6925108ed0d8bddac0e71.jpeg

图3.4 修改学生信息

当班级出现转班、休学、退学等成员流失情况时,管理员可以执行“删除”操作,将学生信息从数据库中删除。

3.2.3 考勤管理模块需求分析

考勤管理模块的功能为:添加考勤记录、查看考勤记录。管理员、班导师、班长、学习委员拥有添加考勤记录的权限,其他用户只能查看自己的考勤记录。这是符合班级日常管理的,如果所有学生都有权限添加考勤记录,则会出现管理混乱的情况,另外,为班长及学习委员分配添加考勤记录权限,可以发挥班委的作用,减轻教师的考勤工作压力。

3.2.4班费管理模块需求分析

班费管理模块功能:添加、修改、删除班费收支记录。班费管理是班级自治管理中重要的一环,可以使用此模块的用户为:管理员、班长、生活委员。在此模块中,可以按时间顺序查看所有的班费收支记录,并可以对其进行修改或删除操作,所有变更班费金额的操作,如添加、修改收支记录,都会影响到班费总额的变动。班费管理报表如图3.5所示。

6d2c0685117bcd8c3ca964d76adb333f.jpeg

图3.5 班费管理报表

3.2.5成绩管块需求分析

成绩管理模块,管理员、班导师、学习委员可以进行最高权限的操作:添加、修改、删除成绩记录,如图3.6所示。而其他用户(班长、生活委员、一般学生)只能查看自己的成绩记录,并且不能修改或删除,如图3.7所示。

8c3d9c68cd7f803989a2c56059db0b08.jpeg

图3.6 管理员及学习委员的成绩管理页面

cd278afd7f712a3c0eca6e0aeb0e0c4c.jpeg

图 3.7 一般学生的成绩查看页面

3.2.6网上投票模块需求分析

网上投票功能主要面向学生,只有学生身份的用户(包括班长、学习委员、生活委员)才能发起投票,管理员、班导师可以查看、投票主题及投票结果,另外管理员还可以删除投票主题。

学生可以发起一个投票,投票采用单选模式,可以添加多个选项,添加多道选题,如图3.8所示。

58b023d3afe140621944b85567ef52a9.jpeg

图 3.8 发起投票

投票结果会统计所有选项的得票数,如图3.9所示。

5b9106cc3341addb7e01582ac69d95bf.jpeg

图3.9 投票结果

3.2.7文件共享模块需求分析

文件共享模块主要是方便学生之间共享学习资料而设计,所有的学生,以及班导师、管理员都可以上传、下载共享文件。管理员、班导师拥有共享文件管理权限,可以修改、删除已上传的文件信息。

3.2.8通知模块需求分析

通知工作是班级事务管理中最为重要、频繁的工作,但是当前几乎所有高校的班级都没有固定的教室,且学生的宿舍有时相隔较远,班委要传达通知时,往往需要花很多时间才能通知到位。为了简化班级事务通知工作流程,提高效率,本系统专门提供通知模块,班导师、学生登录系统后即可以在主页查看最新发布的通知,并可以发布通知。其中,管理员及班导师拥有此模块的最高权限,可以修改、删除通知记录。如图3.10所示。

ef904d74a4af72b4f8e079fb6f98a4ff.jpeg

图3.10 通知管理


3.3 数据库设计

根据本设计的需求分析,对数据库进行设计,共创建12张表,管理员表(admin),班导师表(teacher) ,学生表(student),考勤表(checkin),班费收支表(fund),通知表(notice),投票主题表(vote),投票结果表(voting),选项表(options),问题表(question),成绩表(score),分享文件表(sharefile)。其中,学生表包括了一般学生、班长、学习委员、生活委员,使用了一个role字段来区分他们的角色,0为一般学生,1为班长,2为学习委员,3为生活委员。投票模块一共使用了四张表,包括描述投票主题的vote表,记录了投票主题、描述、发起时间、截止时间;投票结果表voting,记录了哪个学生在哪个投票主题的哪一题中选了哪个选项;选项表及问题表是构成一张投票主题的一部分,这四张表之间都建立了外键关联。考勤表、通知表、成绩表、投票结果表都与学生表建立了删除级联外键,当学生信息被删除时,所有的与该学生相关的考勤记录、成绩、投票都会同时被删除。数据库设计的ER图如图3.11所示。

3ea7b2c90ce4a3cbeb6bbd64e79852a0.jpeg 
4 系统详细设计

3.1 用户登录详细设计

本系统共有6类用户,提供了统一的登录界面,为了区别不同的用户类型,输入用户名及密码时,应选择对应的身份类型,当用户提交表单时,服务端程序会根据用户所选择的身份类型调用不同的DAO查询不同的数据表。

用户的登录时序图如图3.1所示,当用户打开主页,选择用户身份并填写好用户名

图3.1 超级管理员登录时序图

与密码后,向服务器提交表单,此时Sturst2将会根据用户的请求调用相应的Action,Action将用户从前端发送过来的数据封装到相应的成员变量,然后调用业务层的方法。在登录模块,UserAction将会调用Service层的login方法,从DAO层根据用户的用户名及密码进行查询,并返回查找到的用户信息。UserAction会判断查找到的UserBean对象,如果此对象为null,则说明刚才在DAO层中查找时,没有找到相应的记录(图3.1中第6步),此时给msg属性赋值“用户名或密码错误”并返回“ERROR”,Sturst2中配置ERROR字符串的返回值会转发到index.jsp,在此jsp中紧随着密码输入框有一个span标签,<span id="errorInfo" style="color:red;">${msg}</span>,因此登录错误时将可以显示错误信息,提示用户重新输入。而如果用户输入了正确的用户名及密码,则返回的SuperUser对象不为空,此时Action将其存放到Session中,以保证此后可以对该用户进行会话跟踪;然后返回字符串“login”,让Strust2转向相应用户的主页,至此,登录成功。

3.2班级成员理模块详细设计

管理员拥有对班级成员信息的查询、新增、修改、删除的权限,班级成员管理的DAO层提供了对应的方法。添加新成员功能,在前端用html写一个表单,表单的name属性根据Strust2的标准,按“Action属性名.bean属性名”的规范,则可以被Strust2的拦截器注入相应的属性中。在Action中调用相应的业务层方法即可保存到数据库中,学生信息更新方法也是类似。

在前端jsp页面中,充分使用了ajax异步请求技术,达到了在整个操作过程中,原页面不会刷新,只对需要变化的节点进行更新。为了节省开发时间,避免将时间浪费在大量的业务无关性基础代码上,引入了jQuery框架,使用jQuery框架提供的load、$.get或$.post方法,可以根据业务需求快速实现ajax效果。

本模块中,学生信息删除功能使用ajax请求技术,发送想要删除的学生的ID号到服务器,服务器端的Action将会调用业务层的删除方法,若整个操作没有抛出异常,则说明操作成功,Action将status属性设为1代表操作成功,并让Strust2以json的形式把此传回浏览器,前端的JavaScript脚本将会删除页面上对应的记录;若服务端抛出异常,删除失败,我们则把status的值设为-1,代表删除失败,JavaScript则给出相应的提示,不对DOM节点做任何操作。

以下为删除学生功能的JavaScript脚本代码:

3.3 考勤管理模块详细设计

考勤管理模块由两项功能组成,分别为查看考勤记录、添加考勤记录。

4.3.1 查看考勤记录

由于几乎每天都要进行考勤记录的添加,而且每一位同学就一条考勤记录,因此随着时间推移,考勤记录会越来越多,为了更便于查看,按日期来查看考勤记录。查询过程及结果如图3.2所示。

8da9bd1c7a065754f09725cafa217509.jpeg

276554c8a68f927807a8e6d27d385dab.jpeg

图3.2 查看考勤记录

在选择日期时,引入了WdatePicker.js插件,只要点击输入框即可显示日历让用户进行选择,这样既提高了用户体验,又能保证用户输入的日期一定是正确的格式,后台不需重复做日期格式检查。此处的输入框代码为:<input id="viewdate" type="text" onClick="WdatePicker()" size="12"/>

4.3.2 添加考勤信息

管理员、班导师、班长、学习委员均可以添加考勤记录。添加考勤记录的流程为:选择日期、选择学生、选择考勤状态。选择日期同样使用WdatePicker.js插件,选择学生的下拉框是从数据库中查询所有学生,以学生ID为value key生成的,其代码如下:

考勤状态一共有5类:正常、迟到、早退、旷课、请假,对应的状态码为:0、1、2、3、4,用于存储在数据库中,避免直接存储文字,达到节省存储空间及提高速度的目的。

3.4 班费管理模块详细设计

班级管理模块提供了班级收支记录的查看、修改、删除、统计的功能,进入此模块后,即可查看班费报表。添加记录的表单如图3.3所示。

61544aa08cf54916e669faf3fdb9a8bd.jpeg

图3.3 添加班费收支记录

班费收支记录修改表单与添加表单类似,同样使用了sturst2的表单格式,便于参数传递,在此不再赘述。本模块比较关键的地方是班费收支统计,根据所有的收入、支出记录,统计出总收入、总支出以及余额,这里是使用SQL语句在查询时实现的。查询总支出:select sum(count) from fund where type=-1;查询总收入:select sum(count) from fund where type=1;余额根据总收入与总支出可以求得。

3.5 成绩管理详细设计

成绩管理模块对不同的用户有不同的权限,其中管理员、班导师、学习委员都有全部权限,即可以查看、添加、修改、删除成绩记录,而其他用户只可以查看自己的成绩列表。

成绩添加功能。在转到该页面前,已经从数据库中查询了所有学生的学号,使用sturts2的select标签生成了学号下拉框,该下拉框会触一个JavaScript事件,该事件会根据所选的学号,发送对应的学生ID到服务端查询该学生的姓名,然后在“姓名”输入框中显示该学号的姓名,便于在录入成绩时进行核对,以免发生误录入。

e9462f11cbca9c31d4820d54c9462076.jpeg

图 3.4 添加成绩表单

成绩修改功能与成绩添加功能类似,只是无须选择学号,在此不再赘述。

3.6 投票模块详细设计

网上投票是本设计最为复杂的模块,无论前端页面还是数据库设计,都最为繁杂。由于能力有限,此功能没有实现多选功能,所有选项均为单选,但是每道选题可以添加无限多个选项。

为了实现投票功能,在数据库中设计了投票主题表(vote),投票结果表(voting),选项表(options),问题表(question)四个表,表间的具体关系见3.3数据库设计细节。在前端页面中,发起一个新的投票主题时,默认只有一个题目,三个选项,点击“添加题目”、“添加选项”时,将会调用JavaScript代码,添加一个新的题目或选项,实现这个功能的代码如下:

其中,最关键的位置是各表单元素的name属性,因为要在服务端接收参数注入相应的Bean,而问题、选项都是可能多于一个的,只能使用“集合[下标].Bean.属性”的方法来注入,而下标是会动态变化的,所以每添加一个新的问题或选项时,需要更改添加按钮里的参数,以保证再次点击时能产生正确的表单属性,可以注入给Action中的Bean。

投票结果统计。此功能主要依靠SQL语句查询并在Service层对查询结果进行分析而得出,SQL语句为:&nbsp;

此句查询出某个投票主题的题目中所有选项的得票数,但这个查询结果还是数据库中的结果集,不适合直接在页面中输出,必须要重新加工一下,变成Bean对象,便于在Jsp页面中遍历显示。这个过程的核心代码如下:

前端页面查看到的效果如图3.5所示。

f596435a309d4015b71c8ea168635df8.jpeg

图 3.5 投票结果

3.7文件共享模块详细设计

文件共享是本系统一个重要的模块,可以为班级管理提供非常实用的价值,比如班长要下发电子表格给同学们填写时,学习委员要将老师提供的文档分发给全班同学时,都可以使用本系统中的文件共享模块,将文件上传,供所有同学下载。

此模块的关键位置是文件上传,由于使用了Struts2框架,因此一部分的工

3.8 通知模块详细设计

通知模块也是本系统的实用功能之一,与其它模块类似,不同的用户也具有不同的使用权限。管理员、班导师拥有此模块的所有权限,可以查看、发布、修改、删除通知信息,学生的权限为:发布通知、查看所有通知、修改及删除自己发布的通知。

本模块的后台部分,与其它模块类似,都是增删改查操作,唯一比较特别的是前端显示时的css样式,为了让列表显示更美观,当单元格中的文本过长时,以省略号代替剩余的文本。为了实现这样的效果,有两种方法,一种是在服务端把文本准备好,使用字符串的相应API将文本截成相应的格式,再发送到jsp;另一种方法是将所有文本转发到jsp生成html,最终在浏览器显示时,能过css控制样式。对比两种方法,后者更优,可以减少服务端的负担,因为字符串操作比较耗费系统资源,使用css控制则更灵活更“轻量级”。显示结果如图3.6所示。

58ee0e6bbdc8f98755203a9e38e6c0bd.jpeg

图3.6 通知管理列表

4.9 系统的整体结构

根据以上的详细设计,将工程命名为cims(Class Information Management System),整个工程分为5个包,结构如图3.7所示。其中,biz包存放的是业务层的类;dao包存放数据访问类的接口,其下有一个子包impl,存放DAO接口的实现类;entity包则存放所有的实例类;action包里的是Action,隶属于控制层。

71f38bb1f49d9a9af8bb1b93d26bd3cb.jpeg

图 3.7 工程结构图

由于本系统使用了Strust2、Hibernate、Spring三个框架,因此必须有相应的配置文件,所有的配置文件将存放在config的源包下,其结构如图3.8所示。该源包有三

0daa7cdec69d755a250963764a56b69d.jpeg

图 3.8 配置文件结构图

个目录,分别存放其名字对应的框架配置文件。

前端方面,为了安全起见,不能让用户直接请求jsp文件,因此所有的jsp文件都放入WEB-INF目录,此外,样式文件、脚本文件、图片等文件也放在相应的目录下,其结构如图3.9所示。错误页面等公有文件放在common目录下,样式文件存放在css目录下,图片则存放在images目录,脚本文件(js文件)存放在js目录,所有的jsp文件放在WEB-INF的jsp目录下,存放该模块的jsp文件。lib目录存放所有的jar包。

825950417d94ff68c543b66e960e05a6.jpeg

图 3.9 web应用目录结构


  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值