学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.doc
《学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.doc》由会员分享,可在线阅读,更多相关《学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.doc(23页珍藏版)》请在冰豆网上搜索。
2014-2015学年第2学期
1.总体目标 4
1.1背景 4
1.1.1引言 4
1.2要求 4
1.3目标 4
2.需求分析 5
2.1功能需求描述 5
2.1.1基本功能:
5
2.1.2业务功能:
5
2.2用户需求描述 5
2.2.1学生用户需求描述 5
2.2.2任课教师用户需求描述 5
3.数据库设计 5
4.功能模块设计 7
4.1系统流程 8
5.主要功能的具体实现 11
5.1请假功能的实现 11
5.2审核功能的实现 14
5.3权限修改功能 18
5.4导入功能 20
6.系统的运行环境需求 21
6.1硬件环境:
21
6.2.软件环境:
21
7.测试结果与分析 21
7.1主要测试内容 21
7.2软件测试的目的 22
7.3软件测试的任务 22
7.4.1功能测试 22
7.4.2负载测试 22
7.4.3文档测试 22
7.5测试环境 23
7.6系统具体测试 23
8.课程设计总结 24
1.总体目标
1.1背景
1.1.1引言
目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
因此,请假管理系统能够解决这种请假方式所带来的很多麻烦。
1.2要求
请假管理系统要达到以下功能:
增删查改:
学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理
业务功能:
学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
1.3目标
请假管理系统的基本目标是方便学生请假和校方的批假工作,系统实现后,应做该到:
方便学生:
学生可以通过登录本系统填写请假原因向校方申请请假,不用通过手写请假条后找到导员请假。
方便校方:
学生在系统中申请请假后可以进入本系统进行审核,方便了校方很多请假方面的工作。
2.需求分析
2.1功能需求描述
2.1.1基本功能:
学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理
2.1.2业务功能:
学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
2.2用户需求描述
2.2.1学生用户需求描述
学生对本系统的主要需求是:
学生填写请假理由进行请假、打印请假条、查看请假记录、修改密码。
2.2.2任课教师用户需求描述
校方对本系统的主要需求是:
学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理、对学生的请假申请进行审核、打印、和查看请假记录。
3.数据库设计
请假管理系统涉及到学生用户、教师用户和管理员。
根据实际应用的需要,最大限度的提高系统的性能,本系统涉及到8张表,分别是管理员表、学生表、教师表、请假表、审核表、岗位表、管理员表、权限表。
学生表(student):
字段
类型
长度
主键
是否为空
注释
id
int
50
1
0
id
stu_num
vachar
50
0
0
学号
stu_name
vachar
50
0
0
学生姓名
stu_sex
vachar
50
0
0
性别
stu_class
vachar
50
0
0
班级
leava_times
int
50
0
0
请假次数
stu_phone
vachar
50
0
0
联系电话
stu_yuanxi
vachar
50
0
0
所属院系
root_type
vachar
50
0
0
权限类型(岗位名称)
教师表(teacher):
字段
类型
长度
主键
是否为空
注释
id
int
50
1
0
id
tch_num
vachar
50
0
0
教师编号
tch_name
vachar
50
0
0
教师姓名
tch_sex
vachar
50
0
0
教师性别
lavel
vachar
50
0
0
级别(辅导员,领导)
yuanxi
vachar
50
0
0
所属院系
tch_phone
vachar
50
0
0
联系电话
root_type
vacahr
50
0
0
权限类型(岗位名称)
请假表(leave):
字段
类型
长度
主键
是否为空
注释
id
int
50
1
0
id
leave_num
vachar
50
0
0
请假流水号
leave_start
vachar
50
0
0
请假开始时间
leave_end
vachar
50
0
0
请假结束时间
leave_days
vachar
50
0
0
请假天数
leave_reason
vachar
50
0
0
请假原因
stu_num
vachar
50
0
0
请假学号
stu_name
vachar
50
0
0
学生姓名
审核表(audit):
字段
类型
长度
主键
是否为空
注释
id
int
50
1
0
id
leave_num
vachar
50
0
0
请假流水号
audit_name
vachar
50
0
0
审核人
audit_status
int
50
0
0
审核状态
audit_time
vachar
50
0
0
审核时间
audit_posi
vachar
50
0
0
审核岗位
audit_note
vachar
150
0
0
批注
岗位表(position):
字段
类型
长度
主键
是否为空
注释
id
int
50
1
0
id
posi_num
vachar
50
0
0
岗位编号
posi_name
vachar
50
0
0
岗位名称
管理员表(admin):
字段
类型
长度
主键
是否为空
注释
id
int
50
1
0
id
admin_num
vachar
50
0
0
管理员编号
admin_name
vacahr
50
0
0
管理员名字
admin_phone
int
10
0
0
联系电话
权限表(root):
字段
类型
长度
主键
是否为空
注释
id
int
50
1
0
id
root_type
vachar
50
0
0
权限类型(学生,辅导员,领导)
root_list
vachar
50
0
0
权限集合
root_num
vachar
50
0
0
权限编号
4.功能模块设计
请假管理系统涉及到学生用户、教师用户和管理员,主要的功能模块为学生管理模块、教师管理模块、请假管理模块、角色管理模块。
本系统的功能模块图如图:
4-0
图4-0
4.1系统流程
4.1.1登陆流程:
如图4-1-1
图4-1-1
4.1.2请假流程:
需要请假的学生可以在系统中填写请假条进行请假申请,提交请假申请后,提交到辅导员岗进行审核,如果请假时间小于或等于3天,辅导员审核通过后生成请假记录,未通过,请假流程结束,如果请假时间大于3天,若未审核未通过则请假流程结束,若在辅导员岗审核通过,则提交到院领导岗进行审核,审核通过后生成请假记录,未通过则请假流程结束;如图4-1-2
图4-1-2
4.1.3权限设置流程:
系统管理员可以通过权限设置进行添加不同的登录角色并可以赋予不同的权限;如图4-1-3
图4-1-3
4.1.4修改权限:
系统管理员可以通过查询出系统不同用户类型的权限并可以进行各种权限的添加或者删除进行修改;如图4-1-4
图4-1-4
5.主要功能的具体实现
5.1请假功能的实现
学生在需要请假时,进入系统按照要求填写好请假条的内容确认后则提交请假申请交由辅导员进行审核。
如图所示:
其部分代码如下:
Action:
/**
*保存请假条信息
*@return
*/
publicStringaddLeave(){
System.out.println("请假表信息:
"+leave);
Stringusername=(String)getRequest().getSession().getAttribute("username");
StringrootType=(String)getRequest().getSession().getAttribute("rootType");
leaveService.doFirstAudi(leave,username,rootType);
returnSUCCESS;
}
Struct.xml:
${forwardpage}
LeaveServiceImpl:
/**
*填写请假表(第一岗)
*@paramleave请假表对象
*@paramauditName审核人,请假学生
*@paramauditPosi审核岗位
*@paramauditStatus审核状态1-未审核,2-已审核,3-审核不通过
*/
@Override
publicvoiddoFirstAudi(Leaveleave,StringauditName,StringauditPosi){
System.out.println("保存请假表,生成第一岗记录----------");
//0-生成流水号
UUIDuuid=UUID.randomUUID();
leave.setLeaveNum(uuid.toString());
//保存请假表
leaveDAO.save(leave);
//3-保存审核表
//1.申请登记(学生自己)
//
(1)办结本岗,流水号、审核人、岗位名称、状态=2(已审核)
Auditaudit1=newAudit();
audit1.setLeaveNum(uuid.toString());
audit1.setAuditName(auditName);
audit1.setAuditPosi(auditPosi);
audit1.setStuName(auditName);
audit1.setAuditStatus
(2);
auditDAO.save(audit1);
//
(2)初始化辅导员岗位,流水号、岗位名称、状态=1(未审核)
Auditaudit2=newAudit();
audit2.setLeaveNum(uuid.toString());
audit2.setStuNa