学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx

上传人:b****7 文档编号:23339655 上传时间:2023-05-16 格式:DOCX 页数:25 大小:285.55KB
下载 相关 举报
学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx_第1页
第1页 / 共25页
学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx_第2页
第2页 / 共25页
学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx_第3页
第3页 / 共25页
学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx_第4页
第4页 / 共25页
学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx

《学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx》由会员分享,可在线阅读,更多相关《学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx(25页珍藏版)》请在冰豆网上搜索。

学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现.docx

学生请假管理系统需求分析设计文档附待部分核心代码ssh框架实现

2014-2015学年第2学期

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.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:

/**

*第二岗

*@return

*/

publicStringdoSecond(){

System.out.println("审核信息+"+leave);

System.out.println("审核批注+"+leave.getAuditNote());

Stringusername=(String)getRequest().getSession().getAttribute("username");

StringrootType=(String)getRequest().getSession().getAttribute("rootType");

leaveService.doSecond(leave,username,rootType);

returnnull;

}

/**

*最后一岗

*@return

*/

publicStringdoEnd(){

System.out.println("院领导审核信息+"+leave);

System.out.println("院领导审核批注+"+leave.getAuditNote());

Stringusername=(String)getRequest().getSession().getAttribute("username");

StringrootType=(String)getRequest().getSession().getAttribute("rootType");

leaveService.doEnd(leave,username,rootType);

returnnull;

}

LeaveServiceImpl:

/**

*办结第二岗

*@paramleave请假表对象

*@paramauditNote审核批注

*@paramauditName审核人

*@paramauditPosi审核人

*/

publicvoiddoSecond(Leaveleave,StringauditName,StringauditPosi){

//

(1)办结本岗,流水号、审核人、岗位名称、状态=2(已审核)

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);

}

}

/**

*办结最后一岗

*@paramleave请假表对象

*@paramauditNote审核批注

*@paramauditName审核人

*@paramauditPosi审核人

*/

publicvoiddoEnd(Leaveleave,StringauditName,StringauditPosi){

//

(1)办结本岗,流水号、审核人、岗位名称、状态=2(已审核)

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

图5-3

其部分代码如下

RoleAction:

publicStringupdateRole()throwsIOException{

System.out.println("更新的权限列表:

"+role.getRootList());

roleService.updateUser(role);

setForwardpage(JSP_ROLE_LIST);

tips="修改成功!

";

returnSUCCESS;

}

/**

*根据角色id查找权限列表返回前台设置单选框的状态

*@return

*@throwsIOException

*/

publicStringfindListByRootID()throwsIOException{

StringrootType=role.getRootType();

role=roleService.findListByRootID(rootType);

System.out.println("返回数据json:

"+role);

return"json2";

}

RoleServiceImpl:

/**

*根据rootType获取权限对象

*@returnRole

*/

@Override

publicRolefindListByRootID(StringrootType){

returnroleDao.findRootListByRoottype(rootType);

}

/**

*更新角色权限

*@paramrole权限对象

*/

@Override

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:

/teacher_importTchExcel.action"method="post"enctype="multipart/form-data">

教师信息导入

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.系统的运行环境需求

6.1硬件环境:

1)内存:

需要至少512MHZ

2)硬盘:

40G以上

6.2.软件环境:

1)操作系统:

WindowsXP/WIndows7或Windows更高服务器版本

2)数据库:

Mysql5.5

3)浏览器:

IE8.0或更高版本、Chrome浏览器等主流浏览器

7.测试结果与分析

7.1主要测试内容

本次测试主要针对本次开发的请假管理信息系统进行系统测试主要包括功能测试、界面测试、负载测试文档测试。

7.2软件测试的目的软件质量是由几个方面来衡量的

1)在有限的时间里有效的把一个工作正确无误完成。

2)符合应用标准的要求不同地区不同国家的用户使用习惯不同项目工程中的可维护性、可测试性等要求。

3)质量就是软件达到了最开始客户所想要的需求而代码的优美或精巧的技巧并不代表软件的高质量。

4)质量也代表着它符合客户的需要。

作为软件测试这个行业最重要的一件事就是从客户的需求出发从客户的角度去看产品客户会怎么去使用这个产品使用过程中会遇到什么样的问题。

7.2软件测试的目的

第一是确认软件的质量能正确的完成任务其一方面是确认软件做了你所期望的事情另一方面是确认软件以正确的方式来做了这个事件。

第二是提供反馈信息比如提供给开发人员或程序经理的反馈信息为风险评估所准备的信息。

7.3软件测试的任务

1)寻找Bug

2)避免软件开发过程中的缺陷

3)衡量软件的品质

4)关注用户的需求。

总的目标是:

确保软件的质量

7.4测试方法整个系统测试方法包括功能测试、负载测试、文档测试。

7.4.1功能测试

对需求规格说明书中描述的所有功能通过配置Tomcat服务器让客服端进行功能测试。

测试中需要考虑恶意测试和正常的测试测试出系统的各种功能死角。

7.4.2负载测试

负载测试主要测试系统在多用户在线登陆操作时候系统的运行情况不出现系统故障。

负载测试利用自动测试工具开展

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1