学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现Word下载.doc
《学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现Word下载.doc》由会员分享,可在线阅读,更多相关《学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现Word下载.doc(23页珍藏版)》请在冰点文库上搜索。
![学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现Word下载.doc](https://file1.bingdoc.com/fileroot1/2023-4/30/98c234d3-b44e-4a18-afa1-b86905301cd3/98c234d3-b44e-4a18-afa1-b86905301cd31.gif)
目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
因此,请假管理系统能够解决这种请假方式所带来的很多麻烦。
1.2要求
请假管理系统要达到以下功能:
增删查改:
学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理
业务功能:
学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
1.3目标
请假管理系统的基本目标是方便学生请假和校方的批假工作,系统实现后,应做该到:
方便学生:
学生可以通过登录本系统填写请假原因向校方申请请假,不用通过手写请假条后找到导员请假。
方便校方:
学生在系统中申请请假后可以进入本系统进行审核,方便了校方很多请假方面的工作。
2.需求分析
2.1功能需求描述
2.2用户需求描述
2.2.1学生用户需求描述
学生对本系统的主要需求是:
学生填写请假理由进行请假、打印请假条、查看请假记录、修改密码。
2.2.2任课教师用户需求描述
校方对本系统的主要需求是:
学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理、对学生的请假申请进行审核、打印、和查看请假记录。
3.数据库设计
请假管理系统涉及到学生用户、教师用户和管理员。
根据实际应用的需要,最大限度的提高系统的性能,本系统涉及到8张表,分别是管理员表、学生表、教师表、请假表、审核表、岗位表、管理员表、权限表。
学生表(student):
字段
类型
长度
主键
是否为空
注释
id
int
50
1
stu_num
vachar
学号
stu_name
学生姓名
stu_sex
性别
stu_class
班级
leava_times
请假次数
stu_phone
联系电话
stu_yuanxi
所属院系
root_type
权限类型(岗位名称)
教师表(teacher):
int
tch_num
教师编号
tch_name
教师姓名
tch_sex
教师性别
lavel
级别(辅导员,领导)
yuanxi
tch_phone
vacahr
请假表(leave):
leave_num
请假流水号
leave_start
请假开始时间
leave_end
请假结束时间
leave_days
请假天数
leave_reason
请假原因
请假学号
审核表(audit):
audit_name
审核人
audit_status
审核状态
audit_time
审核时间
audit_posi
审核岗位
audit_note
150
批注
岗位表(position):
posi_num
岗位编号
posi_name
岗位名称
管理员表(admin):
admin_num
管理员编号
admin_name
管理员名字
admin_phone
10
权限表(root):
权限类型(学生,辅导员,领导)
root_list
权限集合
root_num
权限编号
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:
<
actionname="
leave_*"
class="
com.qjglms.struts.action.LeaveAction"
method="
{1}"
>
<
resultname="
success"
${forwardpage}<
/result>
<
/action>
LeaveServiceImpl:
*填写请假表(第一岗)
*@paramleave请假表对象
*@paramauditName审核人,请假学生
*@paramauditPosi审核岗位
*@paramauditStatus审核状态1-未审核,2-已审核,3-审核不通过
@Override
publicvoiddoFirstAudi(Leaveleave,StringauditName,StringauditPosi){
保存请假表,生成第一岗记录----------"
//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.setStuName(auditName);
audit2.setAuditPosi("
辅导员"
audit2.setAuditStatus
(1);
auditDAO.save(audit2);
5.2审核功能的实现
学生提交请假申请后,提交到辅导员岗进行审核,如果请假时间小于或等于3天,辅导员审核通过后生成请假记录,未通过,请假流程结束,如果请假时间大于3天,若未审核未通过则请假流程结束,若在辅导员岗审核通过,则提交到院领导岗进行审核,审核通过后生成请假记录,未通过则请假流程结束;
如图5-2-0和图5-2-1
图5-1-0
图5-2-1
其部分代码如下
LeaveAction:
*第二岗
publicStringdoSecond(){
审核信息+"
审核批注+"
+leave.getAuditNote());
leaveService.doSecond(leave,username,rootType);
returnnull;
/**
*最后一岗
publicStringdoEnd(){
院领导审核信息+"
院领导审核批注+"
leaveService.doEnd(leave,username,rootType);
*办结第二岗
*@paramauditNote审核批注
*@paramauditName审核人
*@paramauditPosi审核人
publicvoiddoSecond(Leaveleave,StringauditName,StringauditPosi){
intdays=Integer.parseInt(leave.getLeaveDays());
Auditaudit1=newAudit();
audit1.setLeaveNum(leave.getLeaveNum());
audit1.setAuditName(auditName);
audit1.setAuditPosi("
audit1.setAuditNote(leave.getAuditNote());
audit1.setAuditStatus
(2);
if(days<
=3){//小于等于3天,成功标志设置为1
audit1.setAuditEnd
(1);
Leavelea=newLeave();
lea.setAuditName(auditName);
lea.setAuditNote(leave.getAuditNote());
lea.setLeaveNum(leave.getLeaveNum());
leaveDAO.updateLeave(lea);
}else{
audit1.setAuditEnd(0);
}
auditDAO.updateByLeaveNum(audit1);
if(days>
3){//大于3天,生成下一岗记录
Auditaudit2=newAudit();
audit2.setLeaveNum(leave.getLeaveNum());
audit2.setStuName(leave.getStuName());
audit2.setAuditPosi("
院领导"
audit2.setAuditStatus
(1);
auditDAO.save(audit2);
*办结最后一岗
publicvoiddoEnd(Leaveleave,StringauditName,StringauditPosi){
Auditaudit=newAudit();
audit.setLeaveNum(leave.getLeaveNum());
audit.setAuditName(auditName);
audit.setAuditPosi("
audit.setAuditNote(leave.getAuditNote());
audit.setAuditStatus
(2);
audit.setAuditEnd
(1);
Leavelea=newLeave();
lea.setAuditName(auditName);
lea.setAuditNote(leave.getAuditNote());
lea.setLeaveNum(leave.getLeaveNum());
leaveDAO.updateLeave(lea);
auditDAO.updateByLeaveNum(audit);
5.3权限修改功能
如图:
图5-3
RoleAction:
publicStringupdateRole()throwsIOException{
System.out.println("
更新的权限列表:
+role.getRootList());
roleService.updateUser(role);
setForwardpage(JSP_ROLE_LIST);
tips="
修改成功!
;
returnSUCCESS;
*根据角色id查找权限列表返回前台设置单选框的状态
*@throwsIOException
publicStringfindListByRootID()throwsIOException{
StringrootType=role.getRootType();
role=roleService.findListByRootID(rootType);
返回数据json:
+role);
return"
json2"
}
RoleServiceImpl:
*根据rootType获取权限对象
*@returnRole
publicRolefindListByRootID(StringrootType){
returnroleDao.findRootListByRoottype(rootType);
*更新角色权限
*@paramrole权限对象
publicvoidupdateUser(Rolerole){
Rolerole_1=null;
Listlist=roleDao.findByRootType(role.getRootType());
if(list.size()>
0){
role_1=(Role)list.get(0);
}
role_1.setRootList(role.getRootList());
try{
roleDao.merge(role_1);
}catch(Exceptione){
e.printStackTrace();
5.4导入功能
学生、教师基本信息可以通过导入excel表格的方式进行批量添加,其部分代码如下:
JSP:
formaction="
%=path%>
/teacher_importTchExcel.action"
post"
enctype="
multipart/form-data"
a>
教师信息导入<
/a>
br>
ServiceImpl:
*导入教师信息表格
publicvoidimportTchExcel(Teacherteacher,Stringpwd){
Useruser=newUser();
user.setPassword(pwd);
user.setUsername(teacher.getTchName());
user.setUserNum(teacher.getTchNum());
user.setRootType(teacher.getRootType());
userDAO.save(user);
teacherDAO.save(teacher);
6.系统的运行环境需求
1)内存:
需要至少512MHZ
2)硬盘:
40G以上
1)操作系统:
WindowsXP/WIndows7或Windows更高服务器版本
2)数据库:
Mysql5.5
3)浏览器:
IE8.0或更高版本、Chrome浏览器等主流浏览器
7.测试结果与分析
7.1主要测试内容
本次测试主要针对本次开发的请假管理信息系统进行系统测试主要包括功能测试、界面测试、负载测试文档测试。
7.2软件测试的目的软件质量是由几个方面来衡量的
1)在有限的时间里有效的把一个工作正确无误完成。
2)符合应用标准的要求不同地区不同国家的用户使用习惯不同项目工程中的可维护性、可测试性等要求。
3)质量就是软件达到了最开始客户所