引言:
上次写了一个学生成绩管理系统,有个老铁说不会运行,我答应给他写一个项目,并且附上运行的文档,于是这几天就利用摸鱼时间、晚上休息时间、中午午休时间写了这个宿舍管理系统,表的设计、代码编写都是自己弄的,数据库用mysql,web容器用 tomcat,开发工具用eclipse\myeclipse,java方面入口都是用servlet,数据库连接用c3p0,总之都是用比较基础的东西来写的,简单易懂,对于正在做毕业设计和刚入门时间不长的兄弟们来说,应该是比较好的学习代码了,希望对大家有所帮助。
一张界面图:
角色介绍
1.超级管理员
超级管理员是权限最大的角色,拥有系统所有的权限。
2.宿舍管理员
权限:学生管理、宿舍管理、考勤管理、修改密码。
注意:宿舍管理员所管理的这几个模块,都是超级管理员给他指定权限范围,他才能操作,比如:admin被分配了管理1号楼和2号楼,那么1、2号楼的宿舍他可以管理,添加的学生也只能安排在这两个楼里面,考勤也只能操作属于这两个楼的。
3.学生
学生是权限最小的角色,仅有修改密码、考勤管理权限(仅仅查询)。
表结构介绍
用户表
-
//用户表
-
CREATE
TABLE
`user` (
-
`id`
int(
11)
NOT
NULL auto_increment
COMMENT
'主键',
-
`name`
varchar(
20)
not
NULL
COMMENT
'名字',
-
`password`
varchar(
20)
not
NULL
COMMENT
'密码',
-
`no`
varchar(
20)
default
NULL
COMMENT
'账号-学生一般用学号',
-
`dorm_no`
varchar(
20)
default
NULL
COMMENT
'宿舍编号',
-
`build_id`
int(
11)
default
NULL
COMMENT
'宿舍楼id',
-
`sex`
varchar(
20)
default
NULL
COMMENT
'性别',
-
`phone`
varchar(
20)
default
NULL
COMMENT
'电话',
-
`role_id`
int(
11)
default
NULL
COMMENT
'角色 0超级管理员,1管理员,2学生',
-
`creator`
int(
11)
default
NULL
COMMENT
'创建人id',
-
PRIMARY
KEY (
`id`)
-
)
ENGINE=
InnoDB
DEFAULT
CHARSET=utf8;
宿舍楼表
-
//宿舍楼
-
CREATE
TABLE
`build` (
-
`id`
int(
11)
NOT
NULL auto_increment
COMMENT
'主键',
-
`name`
varchar(
20)
NOT
NULL
COMMENT
'名字',
-
`remark`
varchar(
50)
default
NULL
COMMENT
'备注',
-
`isValid`
varchar(
4)
default
'Y'
COMMENT
'是否有效,Y有效,其他无效',
-
PRIMARY
KEY (
`id`)
-
)
ENGINE=
InnoDB
DEFAULT
CHARSET=utf8;
宿舍楼与管理员关系表(用来指定 宿舍管理员所拥有的宿舍楼权限)
-
//宿舍楼与管理员关系表
-
CREATE
TABLE
`manage_build_rel` (
-
`id`
int(
11)
NOT
NULL auto_increment
COMMENT
'主键',
-
`user_id`
int(
11)
default
NULL
COMMENT
'管理员id',
-
`build_id`
int(
11)
default
NULL
COMMENT
'宿舍楼id',
-
PRIMARY
KEY (
`id`)
-
)
ENGINE=
InnoDB
DEFAULT
CHARSET=utf8;
宿舍表
-
//宿舍
-
CREATE
TABLE
`dorm` (
-
`id`
int(
11)
NOT
NULL auto_increment
COMMENT
'主键',
-
`name`
varchar(
20)
NOT
NULL
COMMENT
'名字',
-
`remark`
varchar(
50)
default
NULL
COMMENT
'备注',
-
`build_id`
int(
11)
default
NULL
COMMENT
'宿舍楼id',
-
`max_num`
int(
11)
default
0
COMMENT
'最大人数',
-
PRIMARY
KEY (
`id`)
-
)
ENGINE=
InnoDB
DEFAULT
CHARSET=utf8;
考勤表
-
// 考勤表
-
CREATE
TABLE
`record` (
-
`id`
int(
11)
NOT
NULL auto_increment
COMMENT
'主键',
-
`student_id`
int(
11)
default
NULL
COMMENT
'学生id',
-
`date`
date
default
NULL
COMMENT
'考勤日期',
-
`record_type`
varchar(
2)
default
'1'
COMMENT
'考勤类型',
-
`remark`
varchar(
50)
default
NULL
COMMENT
'备注',
-
PRIMARY
KEY (
`id`)
-
)
ENGINE=
InnoDB
DEFAULT
CHARSET=utf8;
功能菜单表
-
CREATE
TABLE
`menu` (
-
`id`
int(
11)
NOT
NULL,
-
`menuCode`
varchar(
8)
default
NULL
COMMENT
'菜单编码',
-
`menuName`
varchar(
16)
default
NULL
COMMENT
'菜单名字',
-
`menuLevel`
varchar(
2)
default
NULL
COMMENT
'菜单级别',
-
`menuParentCode`
varchar(
8)
default
NULL
COMMENT
'菜单的父code',
-
`menuClick`
varchar(
16)
default
NULL
COMMENT
'点击触发的函数',
-
`menuRight`
varchar(
8)
default
NULL
COMMENT
'权限2表示学生,1表示管理员,0超级管理员,可以用逗号组合使用',
-
PRIMARY
KEY (
`id`)
-
)
ENGINE=
InnoDB
DEFAULT
CHARSET=utf8;
菜单表和用户表需初始配置的数据脚本(用户表只插入超级管理员的即可)
-
INSERT
INTO
`menu`
VALUES (
'1',
'001',
'宿舍管理员管理',
'1',
null,
'adminManage',
'0');
-
INSERT
INTO
`menu`
VALUES (
'2',
'002',
'学生管理',
'1',
null,
'studentManage',
'0,1');
-
INSERT
INTO
`menu`
VALUES (
'3',
'003',
'宿舍楼管理',
'1',
null,
'buildManage',
'0');
-
INSERT
INTO
`menu`
VALUES (
'4',
'004',
'宿舍管理',
'1',
null,
'dormManage',
'0,1');
-
INSERT
INTO
`menu`
VALUES (
'5',
'005',
'考勤管理',
'1',
null,
'recordManage',
'0,1,2');
-
INSERT
INTO
`menu`
VALUES (
'6',
'006',
'修改密码',
'1',
null,
'modPwd',
'0,1,2');
-
-
INSERT
INTO
`user`
VALUES (
'1',
'超级管理员1',
'123456',
'sa',
null,
null,
'1',
'123445',
'0',
null);
系统模块介绍
宿舍管理员管理
超级管理员才有的权限,可以增加宿舍管理员,并且分配宿舍楼,让其对指定的宿舍楼有对应的操作权限,也可以修改、删除。
学生管理
超级管理员和宿舍管理员均可以操作,区别是超级管理操作所有,而宿舍管理员只能查询、维护 自己所管理的宿舍楼里面的学生。
宿舍楼管理
超过管理员才有的权限
宿舍管理
超级管理员和宿舍管理员均可以操作,区别是超级管理操作所有,而宿舍管理员只能维护自己管理宿舍楼的房间。
考勤管理
3个角色都有权限,但学生只有查询权限,没有维护权限。
修改密码
代码的话是没办法讲了,内容有点多,有兴趣的自己去下载看看咯。
可能存在的问题
1.表设计可能不是特别完善、并且有些功能没加,离校太久有点想不起来了。
2.难免会有些bug吧,不过也不是上线用的,参考学习的话我觉得是足够了。
3.文档我是不会写的,哈哈,运行文档写一个吧,放到源码里面。
看到这里的大佬,动动发财的小手 点赞 + 回复 + 收藏 ,能关注一波就更好了。
源码下载
方式1:完整代码下载、需少量积分
方式2:关注下方公众号,回复 【 sushe 】 下载代码
★ 更多源码
♥ 学生成绩管理系统♥
转载:https://blog.csdn.net/dkm123456/article/details/116272578