学生请假管理系统文档格式.docx
- 文档编号:19166994
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:26
- 大小:130.60KB
学生请假管理系统文档格式.docx
《学生请假管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《学生请假管理系统文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
献
[01]
[02]叶和亚.陈立.java2程序设计实用教程例[M]北京:
电子工业出版社.2003.5
[03]李兆峰.庞永庆.java程序设计与项目实践[M]北京:
电子工业出版社.2011.6
指导教师签字:
年月日
摘要
当前信息化时代,讲究高效,准确,及时的完成事情,近年来学校都在开展信息化部署,实现了多媒体教学,网上提交作业,在线考试等学生考勤对学校教务管理是至关重要,在以前,学生请假要去找班主任或者领导批准,并且不一定每次都能顺利的找到班主任,完成请假批准。
如果学生不在学校,没办法向班主任提交请假单;
对于学生出勤检查,是学生会根据纸制名单逐一点名,或老师根据学生上交课堂作业来判断学生是否来上课。
这些方法往往具有考勤差错率比较高,考勤效率也比较慢,没有一个总体的的记录和整理,并且纸制的点名册容易丢失遗漏,耽误时间等缺点。
针对以上的问题,开发一种针对学生请假的考勤网上管理系统,通过请假管理系统,任课老师可以在课堂上直接登录考勤记录网站进行课堂查看哪些学生请假,记录学生考勤情况等。
此外,在其他时间,班主任以及其他老师也可以登录该网站查询学生在某课程的出勤情况。
该系统是基于Javaweb的简单型设计,它体现了对一些简单的JSP标签语言的运用,该系统界面简单、操作方便。
根据实际需要将系统分为学生端和教师端,学生请假和教师批假都需要首先登录,学生端实现了学生申请请假、申请销假、查询自己请假记录功能;
教师端实现了教师对学生请假的批准、销假批准以及查询学生的请假记录功能。
关键词:
学生;
请假管理;
JavaWeb
摘要2
第1章项目分析1
1.1问题描述1
1.2技术分析1
1.3工程进度计划2
第2章系统分析与设计3
2.1系统分析3
2.1.1参与者3
2.1.2用例图3
2.1.3用例及用例规约4
UC—001登录4
2.1.3.2UC—002申请请假5
UC—003申请销假6
查询请假记录7
2.2系统设计7
2.2.1顺序图8
2.2.2类图11
2.2.3系统体系结构设计11
2.2.4设计时序图12
图2.10学生销假申请设计时序图14
2.3数据库设计14
图15
2.3.2关系模式16
2.3.3表的设计16
第3章实现与测试19
3.1请假申请功能20
3.1.1活动图21
3.1.2界面21
3.1.3代码21
3.1.4测试用例22
3.2销假申请功能22
3.2.1活动图22
3.2.2界面22
3.2.3代码22
3.2.4测试用例22
3.3请假记录查询22
3.3.1活动图23
3.3.2界面23
3.3.3代码23
3.3.4测试用例23
3.4登录功能23
3.4.1活动图23
3.4.2界面23
3.4.3代码24
3.5.4测试用例24
第4章结束语25
附录A:
附加图、表29
附录B:
主要源程序29
第1章项目分析
随着计算机的发展与不断进步,各个领域都出现了新的技术,曾经各种规模之间的竞争已经发展成为技术之间的竞争,管理和人才之间的竞争,然而计算机技术的发展也离不开软件的更新,在软件不断更新和替换的过程中已经渗透到各个领域,政府机关,各大高校等都不断向智能方向发展,学生请假也成为一件棘手的事情,为了请假学生需要写请假条找老师批准,结果是这个时候老师不一定在,另外学生需要请假时不一定在学校,所以为了给广大师生提供方便,我们需要开发软件系统学生请假管理系统。
1.1问题描述
要完成这个系统最大的问题就是所学知识是有限的,在完成其中某些功能时候所需要的可能就完全没有接触过,所以只能用一些简单的功能代替或者替换掉那些用目前的水平所不能实现的功能,再者就是对目前所需求的不是很明确,比如要做出一个请假管理如何去设置友好界面让大家都喜欢适应去使用,如何把系统做到什么程度才能够投入使用,这些都是所面临的棘手问题。
1.2技术分析
该系统用到MVC设计模式,总共建立了五个包,界面View、数据对象DO、数据库连接DB、数据库操作DAO、控制层Control、业务层BO;
DO层是对数据对象的封装,DB层是连接数据库,DAO层是包含对数据标的基本操作,BO层是所有和业务相关的关于对数据的判断等,调用的是DAO层然后返回一个结果,Control层是为了获取用户参数并封装,同时调用BO层,再根据调用得到的不同的结果在调用不同的View层,将处理结果显示给用户。
图1.1包图
1.3工程进度计划
实际开发过程中,开发周期可以分为三个阶段:
第一阶段:
成果:
(1)需求分析
(2)对数据库进行设计
目标:
设计出适合学生请假管理系统的数据库;
完成数据库的连接
时间:
一周
第二阶段:
完成JSP页面和系统代码
能在编译器中有效正确运行。
第三阶段:
写报告;
完成系统报告。
第2章系统分析与设计
学生请假管理系统必须通过正确的用户名的密码方能进入系统,系统分为两大模块,学生端和教师端,学生端和教师端分别有三个模块,学生端分为请假申请、销假申请、个人请假记录查询,教师端分为请假审批、销假审批和学生请假记录查询;
学生提交的请假申请需要教师的审批,只有批准之后学生方可提出销假申请。
2.1系统分析
该系统有两个参与者,分别为学生和教师,学生请假需首先得到教师的批准方可奏效,学生与教师都需使用自己的工号作为用户名和密码进行登录。
2.1.1参与者
学生、教师
2.1.2用例图
图2.1用例图
2.1.3用例及用例规约
请假管理系统学生端共包含1个参与者、4个用例。
用例的编号及名称如表1所示:
表2.1用例列表
用例编号
用例名称
参与者
UC-001
登录
学生
UC-002
申请请假
UC-003
申请销假
UC-004
查询请假记录
UC—001登录
参与者学生需要用户名和密码登录到系统,才能进行相应的操作,系统中设置学生的登录用户名为学号,初始化密码为学号.
表2.2
功能编号
功能名称
前置条件
参与者通过浏览器打开请假管理系统的登录页面
基本事件流
1.系统要求参与者填写用户名和密码。
2.参与者填写相应信息,学生输入学号作为用户名,密码初始值为学号。
3.系统验证用户输入信息是否正确
备选流
1.用户名和密码输入错误
如果系统检测到用户输入的用户名和密码与数据库中不一致,给予用户“用户名和密码不正确”的错误提示,并要求用户重新输入。
后置条件
如果用例成功,系统进入相应权限页面
界面原型
2.1.3.2UC—002申请请假
该用例的主要参与者为学生,学生通过系统填写请假申请单,请假申请单将会提交给辅导员审批。
表
用例描述
学生创建新的请假申请单,录入请假资料,创建一个请假申请流程
学生正常登录到系统中,并打开请假管理页面
1、学生选择创建请假申请单,系统自动查询当前的学生是否存在没有销假的记录,如果存在没有销假的请假记录,执行异常流1.1,如果不存在未销假记录,执行基本事件流2
2、系统展示申请单录入界面
3、学生录入学生学号、姓名、请假事由(原因、去向),开始时间、结束时间,联系方式(个人联系方式、家长联系方式)
4、学生提交申请单,系统进行数据校验,依据业务规则C,如果数据校验不合法,执行分支流4.1,如果数据校验合法,执行基本事件流5
5、系统为当前的请假申请单生成唯一的编号,保存该请假申请单
6、将该流程推进到下一环节系统应该向学生展现请假申请单的最终页面,用例结束
分支流
4.1请假信息填写有误,显示填写不正确的信息提示,并要求学生重新填写,显示填写请假申请单的页面。
异常流
1.1系统显示学生没有销假的记录详情
1.1学生确认自己的请假记录是否属实,用例终止
1、系统将保存该条请假记录。
2、创建新的请假单并生成唯一的申请编号
3、创建新的请假申请流程实例
4、记录提交后不能够再修改
无
业务规则
A、包括学生姓名、辅导员姓名、请假开始时间(必须选择当天及当天之后的时间)、请假结束时间(大于请假开始时间),请假理由,家长联系电话
B、系统首先判断是否存在没有销假的记录,存在的话,将该记录显示给当前学生学生进行确认,如果确认是没有销假,学生继续执行销假流程,否则,辅导员进行异常处理
C、学生姓名、辅导员姓名、请假开始时间(必须选择当天及当天之后的时间)、请假结束时间(大于请假开始时间),请假理由,家长联系电话信息为必填,不能为空。
联系方式是否合法,请假开始时间是否在请假结束时间之前。
执行者
涉及的实体
1、学生
属性:
学号、姓名、班级、性别、联系方式、宿舍、标志变量(tag=1)
2、请假申请单
学生(学号、姓名),请假事由(原因、去向),开始时间、结束时间,联系方式(个人联系方式、家长联系方式)、操作1(已批准、待批准)、操作2(申请销假、已销假、未销假)
UC—003申请销假
该用例的主要参与者为学生,学生通过系统提出销假申请,若申请成功,此时请假信息中操作2的状态将修改为申请销假,否则提示申请销假失败。
表2.4
参与者通过浏览器打开请假管理系统的登录页面成功登录进入系统主页面
1.学生发出销假申请,并等待系统验证
2.如果提示申请成功,执行基本事件流3
3.等待辅导员销假
4.如果提示申请失败,执行基本事件流5
5.提示申请销假失败,请重新申请
UC—004查询请假记录
该用例的参与者为学生,学生通过系统提出请假记录查询,若查询成功,学生请假的记录将会显示在页面上。
表2.5
1.学生发出查询请假记录,并等待系统验证
2.如果提示验证成功,执行基本事件流3
3.显示请假记录
4.如果提示验证失败,执行基本事件流5
5.提示查询失败或者无请假记录,请重新申请
2.2系统设计
该系统分为3个部分,第一部分是登录,学生和教师都需要登录,第二部分是学生端,学生端3个功能学生申请请假、学生申请销假、查询个人请假记录,第三个部分是教师端,教师端3个功能教师批准请假申请、教师批准销假申请、教师查询学生请假记录。
2.2.1顺序图
图2.2登录时序图
图2.3学生请假申请时序图
图2.4学生销假申请时序图
图2.5学生请假查询时序图
2.2.2类图
图2.6类图
2.2.3系统体系结构设
图2.7体系结构图
该系统包括基本的3各模块,登录、学生端、教师端。
学生和教师在登录成功时分别进入不同的页面进行操作,学生端进行请假申请、销假申请、查询个人请假;
教师审批请假、审批销假、查询学生请假记录。
2.2.4设计时序图
图2.8登录设计时序图
该图是学生端登录设计时序图,首先学生发送请求到控制类,然后跳出登录页面,学生填写登录信息并提交到控制类,控制类封装数据创建对象调用逻辑层进行数据校验并返回结果,逻辑层调用DAO层最终根据结果判断如果登录成功将跳转到学生端主页,如果登录失败将给以提示信息并请重新登录。
图2.9请假申请设计时序图
该图是学生请假申请设计时序图,首先学生需要成功登录,发出请假申请,这时候控制类会自发调用逻辑层,逻辑层调用DAO层,如果该学生之前请过假并且未曾销假,这时该学生是不能够再请假的,倘若该学生发出请假申请,系统将会把该学生之前的请假未销假记录显示出来,如果没有未销假记录,将会显示请假申请页面,学生需要填写请假申请单将请假详细信息填写并提交倘若正确无误,系统将会提示请假申请成功。
图2.10学生销假申请设计时序图
该图是学生销假申请设计时序图,在学生成功登录之后,学生在申请请假时候必须不存在未销假记录,所以在学生请假完成到校报到后必须进行销假,然而这时需要发出销假申请,这时候在业务逻辑层将会给予判断,如果销假申请成功将会提示申请成功,如果有错误将会提示申请失败或者不存在未销假记录。
2.3数据库设计
数据库在该系统中是为了存储数据,学生所提交的请假记录是通过保存到数据库中来实现申请请假、销假等功能的,在我们目前所学的有限的知识内,没有数据库该系统是没法运行和实现的。
2.3.1关系模式
(1)学生信息:
(学号、姓名、班级、性别、宿舍、联系方式、tag)
(2)教师信息:
(工号、姓名、联系方式、性别、年级、tag)
(3)登录:
(用户名(学号、工号),密码)
(4)请假信息:
(学号、姓名、事由、请假开始时间、请假结束时间、联系方式)
2.3.2E-R图
E-R图在数据库设计里面是至关重要的一步,它是整个数据库设计的关键,下面使用实体联系(E-R)模型来描述系统的概念结构,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑设计打下基础。
图2.11E-R图
2.3.3表的设计
表2.6用户登录信息表(login)
编号
字段名称
数据类型
约束条件
说明
1
userid
Varchar(14)
学号、工号
2
password
Varchar(12)
密码
3
Tag
Varchar
(2)
标志
该表是用户登录信息表,表中包括3个属性,用户名和密码、还有标志变量tag,tag是为了控制学生端和教师端,用户名分别为学号和教师的工号;
表2.7学生信息表(Student)
sid
学号
Sname
Varchar(20)
Classes
班级
4
Ssex
Varchar(6)
性别
5
Sphone
联系电话
6
Dormitory
宿舍
7
该表是学生信息表,表中包括7个属性,都是字符串类型,其中tag标志变量默认为1,并且不可修改;
表2.8教师信息表(teacher)
tid
工号
tname
Varchar(16)
tsex
Varchar(4)
grades
所带年级
tphone
电话
tag
该表是教师信息表,表中包括6个属性,都是字符串类型,教师也包括一个标志变量tag,也存在一个默认值为2,并且不能修改;
表2.8请假信息表(leaverecords)
Starttime
date
开始时间
endtime
截止时间
Operate1
操作1
Operate2
操作2
8
reason
Varchar(255)
理由
该表示请假信息表,包括8个属性,其中有字符串和日期类型,操作1和操作2分别是默认值,其值是根据学生的请假申请成功,销假以及教师的审批有关。
第3章实现与测试
每一个项目的核心部分都是功能的实现,功能的完成标志着一个系统的完成,然而这些结果都需要一个需求和设计来作为基本的要求,以下就是该系统详细功能的实现过程:
需求分析:
需求分析阶段我采用了StarUML工具做了详细的分析,根据自己的需要画出了包图、时序图、用例图、类图、活动图、设计时序图等所需要的几类基本图,项目的框架是根据包图来创建的,时序图主要就是项目的每一个功能所要求的基本流程,设计时序图就是将时序图给详细化,具体到每一步所走的流程返回什么样的数据或者类型,也就是说画设计时序图时基本上已经把代码在脑子里有了型,用例图其实就是项目所有的功能,每一个用例就代表一个基本的功能,数据库的设计是根据类图来实现的,类图就表示了数据库中的表以及各表之间的关系。
界面设计:
用户界面设计要求友好合理,要充分考虑到用户的操作习惯,而且要有良好的显示效果。
此外界面的配色方案要协调,使用的主色,背景色,前景色,按钮大小,文字,格式,表格等要统一标准。
由于该系统主要用于公司人员管理的,所以界面框架的主色采用较为严肃的浅蓝色,在此基础上用到了PhotoShop技术,dreamweaver以及css和Javascript等,里面的登录那个信息是一个图片用ps加工修改写上了艺术字,界面的代码是在dreamweaver里面直接设计好的,然后将代码复制粘贴过去,因为在dreamweaver里面设计的界面在MyEclipse里面是不能运行的,需要一个脚本来支持,所以只需要在MyEclipse里面建好jsp页面只需将dreamweaver里面body里面的东西复制粘贴到MyEclipse里面就可以运行了;
每一个界面里面都有一个表格,表格里面有许多其他的元素之类,比如:
按钮,标题,下拉框等许多细小的知识,外面有一个表单,这个表单是必须有的,他是为了在前台与后连接时候提交一个数据来运行这个项目的;
在这些界面里面,时间是用js来完成的,统一的css样式表;
还有就是在查询过程中将所显示的数据设置为某一属性他将无法在查询显示这个页面来任意修改一些信息
功能描述:
首先这个系统除了界面其他的代码分别写在5个包中,第一个DO包,它里面从某种意义上说在这个包里面的每一个类都是创建某一个实例的方法,它里面定义了相对属性,以及get()和set()方法;
第二个是DAO包,它里面是对于每一个管理模块的一些基本小的功能的实现,说白了主要就是增删改查之类的它是对数据库语句的一个应用;
第三个包是DB包,这个包可以说是只为了一件事,就是数据库的连接,之所以这样写专门用一个包来写关于数据库的连接目的只是为了看到数据与的封装,体现一个面向对象的思考,从而在某些方面也能够减少代码的重复率,提高代码的可读性;
第四个包是control包,这个包是最重要的,因为在web应用开发的过程中每一个项目要想与前台数据连接并能够成功把数据相互传递,servelet里面有两个方法,一个是doGet(),一个是doPost(),两者最大的区别就是前者对数据没有保密,就是随时都会泄露一些重要的信息,因为每一提交的表单都会随着浏览器的浏览网址显示出来,然而要想从前台获得数据,就好比添加员工就得用到客户端所发出的请求request.getParameter()得到。
第五个包是BO包,这个是业务逻辑层,主要是调用DAO包里面的方法,数据校验等功能。
在该系统中我主要完成的是学生端的功能,以下为学生端的功能:
3.1请假申请功能
在学生请假申请这个功能里面其实所做的就是对数据的添加,界面是简单采用了CSS样式的界面,如果学生登录成功点击申请请假,如果该学生存在未销假记录系统将会把该学生的未销假记录显示出来,如果不存在未销假记录,此时学生请假信息界面会显示出来,在学生填写完请假信息出发右下方的一个提交按钮,倘若提交成功会提示申请成功,如果失败会跳转到信息填写页面并提示错误信息。
3.1.1活动图
图3.1学生申请请假活动图
3.1.2界面
图3.2学生请假申请页面
3.1.3代码
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("
UTF-8"
);
response.setContentType("
text/html;
charset=UTF-8"
Stringstr="
已销假"
;
Stringtype=request.getParameter("
type"
LeaveRecordDOld=null;
LeaveRecordDOlrd=newLeaveRecordDO();
StudentBOsb=newStudentBO();
if(type.equals("
add"
)){
lrd.setSname(request.getParameter("
sname"
));
lrd.setSid(request.getParameter("
sid"
lrd.setSphone(request.getParameter("
sphone"
lrd.setStarttime(Date.valueOf(request.getParameter("
starttime"
)));
lrd.setEndtime(Date.valueOf(request.getParameter("
endtime"
lrd.setReason(request.getParameter("
reason"
Stringresults=sb.validate(lrd);
if(results==null){
Stringid=request.getParameter("
l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 请假 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)