ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:133.60KB ,
资源ID:12924845      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12924845.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生请假管理系统.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

学生请假管理系统.docx

1、学生请假管理系统 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】学生请假管理系统中原工学院软件学院软件工程实践一设计任务书姓名* 软件工程 专业 JAVA123 班题目学生请假管理系统的开发设计任务开发一个基于Web的学生请假管理系统,包括教师端和学生端。主要功能包括:1.UI设计:界面(参与)2.学生端:请假申请、销假申请、查询自己请假记录;(独立完成)3. 教师端:请假审批、销假审批、查询学生请假记录;(参与)开发工具:Java、JSP、MySQL、Photoshop、 时 间 进 度第1周(9-99-13):完成需求分析、UI设计第2周(

2、9-169-21):完成代码第3周(9-249-29):完成报告原 主始 要资 参料 考与 文 献01 02叶和亚.陈立.java2程序设计实用教程例M北京:电子工业出版社. 03李兆峰.庞永庆.java程序设计与项目实践M北京:电子工业出版社.指导教师签字: 年 月 日学生请假管理系统摘 要当前信息化时代,讲究高效,准确,及时的完成事情,近年来学校都在开展信息化部署,实现了多媒体教学,网上提交作业,在线考试等学生考勤对学校教务管理是至关重要,在以前,学生请假要去找班主任或者领导批准,并且不一定每次都能顺利的找到班主任,完成请假批准。如果学生不在学校,没办法向班主任提交请假单;对于学生出勤检查

3、,是学生会根据纸制名单逐一点名,或老师根据学生上交课堂作业来判断学生是否来上课。这些方法往往具有考勤差错率比较高,考勤效率也比较慢,没有一个总体的的记录和整理,并且纸制的点名册容易丢失遗漏,耽误时间等缺点。针对以上的问题,开发一种针对学生请假的考勤网上管理系统,通过请假管理系统,任课老师可以在课堂上直接登录考勤记录网站进行课堂查看哪些学生请假,记录学生考勤情况等。此外,在其他时间,班主任以及其他老师也可以登录该网站查询学生在某课程的出勤情况。该系统是基于Java web的简单型设计,它体现了对一些简单的JSP标签语言的运用,该系统界面简单、操作方便。根据实际需要将系统分为学生端和教师端,学生请

4、假和教师批假都需要首先登录,学生端实现了学生申请请假、申请销假、查询自己请假记录功能;教师端实现了教师对学生请假的批准、销假批准以及查询学生的请假记录功能。关键词: 学生; 请假管理; Java Web第1章 项目分析随着计算机的发展与不断进步,各个领域都出现了新的技术,曾经各种规模之间的竞争已经发展成为技术之间的竞争,管理和人才之间的竞争,然而计算机技术的发展也离不开软件的更新,在软件不断更新和替换的过程中已经渗透到各个领域,政府机关,各大高校等都不断向智能方向发展,学生请假也成为一件棘手的事情,为了请假学生需要写请假条找老师批准,结果是这个时候老师不一定在,另外学生需要请假时不一定在学校,

5、所以为了给广大师生提供方便,我们需要开发软件系统学生请假管理系统。 问题描述要完成这个系统最大的问题就是所学知识是有限的,在完成其中某些功能时候所需要的可能就完全没有接触过,所以只能用一些简单的功能代替或者替换掉那些用目前的水平所不能实现的功能,再者就是对目前所需求的不是很明确,比如要做出一个请假管理如何去设置友好界面让大家都喜欢适应去使用,如何把系统做到什么程度才能够投入使用,这些都是所面临的棘手问题。技术分析该系统用到MVC设计模式,总共建立了五个包,界面View、数据对象DO、数据库连接DB、数据库操作DAO、控制层Control、业务层BO;DO层是对数据对象的封装,DB层是连接数据库

6、,DAO层是包含对数据标的基本操作,BO层是所有和业务相关的关于对数据的判断等,调用的是DAO层然后返回一个结果,Control层是为了获取用户参数并封装,同时调用BO层,再根据调用得到的不同的结果在调用不同的View层,将处理结果显示给用户。图 包图工程进度计划实际开发过程中,开发周期可以分为三个阶段:第一阶段:成果:(1)需求分析(2)对数据库进行设计目标:设计出适合学生请假管理系统的数据库;完成数据库的连接 时间:一周第二阶段:成果:完成JSP页面和系统代码目标:能在编译器中有效正确运行。时间:一周第三阶段:成果:写报告;目标:完成系统报告。时间:一周第2章 系统分析与设计学生请假管理系

7、统必须通过正确的用户名的密码方能进入系统,系统分为两大模块,学生端和教师端,学生端和教师端分别有三个模块,学生端分为请假申请、销假申请、个人请假记录查询,教师端分为请假审批、销假审批和学生请假记录查询;学生提交的请假申请需要教师的审批,只有批准之后学生方可提出销假申请。 系统分析该系统有两个参与者,分别为学生和教师,学生请假需首先得到教师的批准方可奏效,学生与教师都需使用自己的工号作为用户名和密码进行登录。2.1.1 参与者学生、教师2.1.2 用例图图 用例图2.1.3 用例及用例规约请假管理系统学生端共包含1个参与者、4个用例。用例的编号及名称如表1所示:表 用例列表用例编号用例名称参与者

8、UC-001登录学生UC-002申请请假学生UC-003申请销假学生UC-004查询请假记录学生 UC001登录参与者学生需要用户名和密码登录到系统,才能进行相应的操作,系统中设置学生的登录用户名为学号,初始化密码为学号.表功能编号UC-001功能名称登录前置条件参与者通过浏览器打开请假管理系统的登录页面基本事件流1.系统要求参与者填写用户名和密码。2.参与者填写相应信息,学生输入学号作为用户名,密码初始值为学号。3.系统验证用户输入信息是否正确备选流1.用户名和密码输入错误如果系统检测到用户输入的用户名和密码与数据库中不一致,给予用户“用户名和密码不正确”的错误提示,并要求用户重新输入。后置

9、条件如果用例成功,系统进入相应权限页面界面原型参与者学生 UC002申请请假该用例的主要参与者为学生,学生通过系统填写请假申请单,请假申请单将会提交给辅导员审批。表功能编号UC-002功能名称申请请假用例描述学生创建新的请假申请单,录入请假资料,创建一个请假申请流程前置条件学生正常登录到系统中,并打开请假管理页面基本事件流1、学生选择创建请假申请单,系统自动查询当前的学生是否存在没有销假的记录,如果存在没有销假的请假记录,执行异常流,如果不存在未销假记录,执行基本事件流22、系统展示申请单录入界面3、学生录入学生学号、姓名、请假事由(原因、去向),开始时间、结束时间,联系方式(个人联系方式、家

10、长联系方式)4、学生提交申请单,系统进行数据校验,依据业务规则C,如果数据校验不合法,执行分支流,如果数据校验合法,执行基本事件流55、系统为当前的请假申请单生成唯一的编号,保存该请假申请单6、将该流程推进到下一环节系统应该向学生展现请假申请单的最终页面,用例结束分支流请假信息填写有误,显示填写不正确的信息提示,并要求学生重新填写,显示填写请假申请单的页面。异常流系统显示学生没有销假的记录详情学生确认自己的请假记录是否属实,用例终止后置条件1、系统将保存该条请假记录。2、创建新的请假单并生成唯一的申请编号3、创建新的请假申请流程实例4、记录提交后不能够再修改界面原型无业务规则A、包括学生姓名、

11、辅导员姓名、请假开始时间(必须选择当天及当天之后的时间)、请假结束时间(大于请假开始时间),请假理由,家长联系电话B、系统首先判断是否存在没有销假的记录,存在的话,将该记录显示给当前学生学生进行确认,如果确认是没有销假,学生继续执行销假流程,否则,辅导员进行异常处理C、学生姓名、辅导员姓名、请假开始时间(必须选择当天及当天之后的时间)、请假结束时间(大于请假开始时间),请假理由,家长联系电话信息为必填,不能为空。联系方式是否合法,请假开始时间是否在请假结束时间之前。执行者学生涉及的实体1、学生属性:学号、姓名、班级、性别、联系方式、宿舍、标志变量(tag=1)2、请假申请单属性:学生(学号、姓

12、名),请假事由(原因、去向),开始时间、结束时间,联系方式(个人联系方式、家长联系方式)、操作1(已批准、待批准)、操作2(申请销假、已销假、未销假)UC003申请销假该用例的主要参与者为学生,学生通过系统提出销假申请,若申请成功,此时请假信息中操作2的状态将修改为申请销假,否则提示申请销假失败。表功能编号UC-003功能名称申请销假前置条件参与者通过浏览器打开请假管理系统的登录页面成功登录进入系统主页面基本事件流1.学生发出销假申请,并等待系统验证2.如果提示申请成功,执行基本事件流33.等待辅导员销假4.如果提示申请失败,执行基本事件流55.提示申请销假失败,请重新申请备选流无后置条件如果

13、用例成功,系统进入相应权限页面界面原型无参与者学生UC004查询请假记录该用例的参与者为学生,学生通过系统提出请假记录查询,若查询成功,学生请假的记录将会显示在页面上。表功能编号UC-004功能名称查询请假记录前置条件参与者通过浏览器打开请假管理系统的登录页面成功登录进入系统主页面基本事件流1.学生发出查询请假记录,并等待系统验证2.如果提示验证成功,执行基本事件流33.显示请假记录4.如果提示验证失败,执行基本事件流55.提示查询失败或者无请假记录,请重新申请备选流无后置条件如果用例成功,系统进入相应权限页面界面原型无参与者学生 系统设计该系统分为3个部分,第一部分是登录,学生和教师都需要登

14、录,第二部分是学生端,学生端3个功能学生申请请假、学生申请销假、查询个人请假记录,第三个部分是教师端,教师端3个功能教师批准请假申请、教师批准销假申请、教师查询学生请假记录。2.2.1顺序图图 登录时序图图 学生请假申请时序图图 学生销假申请时序图图 学生请假查询时序图2.2.2类图图 类图2.2.3系统体系结构设图 体系结构图该系统包括基本的3各模块,登录、学生端、教师端。学生和教师在登录成功时分别进入不同的页面进行操作,学生端进行请假申请、销假申请、查询个人请假;教师审批请假、审批销假、查询学生请假记录。 设计时序图图 登录设计时序图该图是学生端登录设计时序图,首先学生发送请求到控制类,然

15、后跳出登录页面,学生填写登录信息并提交到控制类,控制类封装数据创建对象调用逻辑层进行数据校验并返回结果,逻辑层调用DAO层最终根据结果判断如果登录成功将跳转到学生端主页,如果登录失败将给以提示信息并请重新登录。图 请假申请设计时序图该图是学生请假申请设计时序图,首先学生需要成功登录,发出请假申请,这时候控制类会自发调用逻辑层,逻辑层调用DAO层,如果该学生之前请过假并且未曾销假,这时该学生是不能够再请假的,倘若该学生发出请假申请,系统将会把该学生之前的请假未销假记录显示出来,如果没有未销假记录,将会显示请假申请页面,学生需要填写请假申请单将请假详细信息填写并提交倘若正确无误,系统将会提示请假申

16、请成功。图 学生销假申请设计时序图该图是学生销假申请设计时序图,在学生成功登录之后,学生在申请请假时候必须不存在未销假记录,所以在学生请假完成到校报到后必须进行销假,然而这时需要发出销假申请,这时候在业务逻辑层将会给予判断,如果销假申请成功将会提示申请成功,如果有错误将会提示申请失败或者不存在未销假记录。 数据库设计数据库在该系统中是为了存储数据,学生所提交的请假记录是通过保存到数据库中来实现申请请假、销假等功能的,在我们目前所学的有限的知识内,没有数据库该系统是没法运行和实现的。关系模式(1)学生信息:(学号、姓名、班级、性别、宿舍、联系方式、tag)(2)教师信息:(工号、姓名、联系方式、

17、性别、年级、tag)(3)登录:(用户名(学号、工号),密码)(4)请假信息:(学号、姓名、事由、请假开始时间、请假结束时间、联系方式) E-R图E-R图在数据库设计里面是至关重要的一步,它是整个数据库设计的关键,下面使用实体联系(E-R)模型来描述系统的概念结构,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑设计打下基础。图 E-R图2.3.3表的设计表 用户登录信息表(login)编号字段名称数据类型约束条件说明1useridVarchar(14)无学号、工号2passwordVarchar(12)无密码3TagVarchar(2)无标志该表是用户登录信息表,表中包括3

18、个属性,用户名和密码、还有标志变量tag,tag是为了控制学生端和教师端,用户名分别为学号和教师的工号;表 学生信息表(Student)编号字段名称数据类型约束条件说明1sidVarchar(14)无学号2SnameVarchar(20)无姓名3ClassesVarchar(20)无班级4SsexVarchar(6)无性别5SphoneVarchar(12)无联系电话6DormitoryVarchar(6)无宿舍7TagVarchar(2)1标志该表是学生信息表,表中包括7个属性,都是字符串类型,其中tag标志变量默认为1,并且不可修改;表 教师信息表(teacher)编号字段名称数据类型约束

19、条件说明1tidVarchar(14)无工号2tnameVarchar(16)无姓名3tsexVarchar(4)无性别4gradesVarchar(20)无所带年级5tphoneVarchar(12)无电话6tagVarchar(2)2标志该表是教师信息表,表中包括6个属性,都是字符串类型,教师也包括一个标志变量tag,也存在一个默认值为2 ,并且不能修改;表 请假信息表(leaverecords)编号字段名称数据类型约束条件说明1sidVarchar(14)无学号2SnameVarchar(16)无姓名3Starttimedate无开始时间4endtimedate无截止时间5SphoneV

20、archar(12)无联系电话6Operate1Varchar(20)操作17Operate2Varchar(20)操作28reasonVarchar(255)无理由该表示请假信息表,包括8个属性,其中有字符串和日期类型,操作1和操作2分别是默认值,其值是根据学生的请假申请成功,销假以及教师的审批有关。第3章 实现与测试每一个项目的核心部分都是功能的实现,功能的完成标志着一个系统的完成,然而这些结果都需要一个需求和设计来作为基本的要求,以下就是该系统详细功能的实现过程:需求分析:需求分析阶段我采用了StarUML工具做了详细的分析,根据自己的需要画出了包图、时序图、用例图、类图、活动图、设计时

21、序图等所需要的几类基本图,项目的框架是根据包图来创建的,时序图主要就是项目的每一个功能所要求的基本流程,设计时序图就是将时序图给详细化,具体到每一步所走的流程返回什么样的数据或者类型,也就是说画设计时序图时基本上已经把代码在脑子里有了型,用例图其实就是项目所有的功能,每一个用例就代表一个基本的功能,数据库的设计是根据类图来实现的,类图就表示了数据库中的表以及各表之间的关系。界面设计:用户界面设计要求友好合理,要充分考虑到用户的操作习惯,而且要有良好的显示效果。此外界面的配色方案要协调,使用的主色,背景色,前景色,按钮大小,文字,格式,表格等要统一标准。由于该系统主要用于公司人员管理的,所以界面

22、框架的主色采用较为严肃的浅蓝色,在此基础上用到了PhotoShop技术,dreamweaver以及css和Java script等,里面的登录那个信息是一个图片用ps加工修改写上了艺术字,界面的代码是在dreamweaver里面直接设计好的,然后将代码复制粘贴过去,因为在dreamweaver里面设计的界面在MyEclipse里面是不能运行的,需要一个脚本来支持,所以只需要在MyEclipse里面建好jsp页面只需将dreamweaver里面body里面的东西复制粘贴到MyEclipse里面就可以运行了;每一个界面里面都有一个表格,表格里面有许多其他的元素之类,比如:按钮,标题,下拉框等许多细

23、小的知识,外面有一个表单,这个表单是必须有的,他是为了在前台与后连接时候提交一个数据来运行这个项目的;在这些界面里面,时间是用js来完成的,统一的css样式表;还有就是在查询过程中将所显示的数据设置为某一属性他将无法在查询显示这个页面来任意修改一些信息功能描述:首先这个系统除了界面其他的代码分别写在5个包中,第一个DO包,它里面从某种意义上说在这个包里面的每一个类都是创建某一个实例的方法,它里面定义了相对属性,以及get()和set()方法;第二个是DAO包,它里面是对于每一个管理模块的一些基本小的功能的实现,说白了主要就是增删改查之类的它是对数据库语句的一个应用;第三个包是DB包,这个包可以

24、说是只为了一件事,就是数据库的连接,之所以这样写专门用一个包来写关于数据库的连接目的只是为了看到数据与的封装,体现一个面向对象的思考,从而在某些方面也能够减少代码的重复率,提高代码的可读性;第四个包是control包,这个包是最重要的,因为在web应用开发的过程中每一个项目要想与前台数据连接并能够成功把数据相互传递,servelet里面有两个方法,一个是doGet(),一个是doPost(),两者最大的区别就是前者对数据没有保密,就是随时都会泄露一些重要的信息,因为每一提交的表单都会随着浏览器的浏览网址显示出来,然而要想从前台获得数据,就好比添加员工就得用到客户端所发出的请求()得到。第五个包

25、是BO包,这个是业务逻辑层,主要是调用DAO包里面的方法,数据校验等功能。在该系统中我主要完成的是学生端的功能,以下为学生端的功能: 请假申请功能在学生请假申请这个功能里面其实所做的就是对数据的添加,界面是简单采用了CSS样式的界面,如果学生登录成功点击申请请假,如果该学生存在未销假记录系统将会把该学生的未销假记录显示出来,如果不存在未销假记录,此时学生请假信息界面会显示出来,在学生填写完请假信息出发右下方的一个提交按钮,倘若提交成功会提示申请成功,如果失败会跳转到信息填写页面并提示错误信息。3.1.1活动图图 学生申请请假活动图3.1.2界面图 学生请假申请页面3.1.3代码public v

26、oid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException (UTF-8); (text/html;charset=UTF-8); String str=已销假; String type=(type); LeaveRecordDO ld=null; LeaveRecordDO lrd=new LeaveRecordDO(); StudentBO sb=new StudentBO(); if(add) (sname); (sid); (sphon

27、e); (starttime); (endtime); (reason); String results=(lrd); if(results=null) String id=(sid); ld=(str,id); if(ld=null) (lrd); (./).forward(request, response); return; else (ld, ld); (./).forward(request, response); return; else (message, results); (./).forward(request, response); return; 3.1.4测试用例表

28、序号功能模块测试数据预期结果1请假申请姓名:韩一正学号:123电话:1理由:回家申请成功3.2请假记录查询在学生请假记录查询里面和学生请假申请基本是一样的,这个实际上的就是对数据库里面的数据的一个查询,并将查询记录显示到网页上,如果不存在请假记录,将不会显示任何记录。界面图 请假记录代码HttpSession session=(); (username, (sid); ArrayList list=(ArrayList) (sid); (list, list);(./).forward(request, response); return;测试用例序号功能模块测试数据预期结果1请假查询学号:1

29、23查询成功登录功能登录是该项目最基本的一个功能,这其实也是一个查询,只不过是根据数据库中的数据和从网页中得到的数据进行对比,如果匹配成功将会进入到另外一个页面,如果登录失败将会进行提示并重新登录,登录过程中在后台数据中定义了标志变量来表示学生和教师,所以在登录时候根据这个属性来判断登录成功后跳转到学生端还是教师端。登录过程中进行了简单的数据校验,就是说用户名和密码不能为空,倘若为空将会提示错误信息并提醒重新登录。代码public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException (UTF-8); (text/html;ch

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2