1、请假管理系统设计与应用北方民族大学学士学位论文 论文题目: 请假管理系统设计与应用 北方民族大学教务处制 44 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(
2、论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位
3、论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日请假管理系统设计与应用摘 要当前信息化时代,讲究高效,准确,及时的完成事情,近年来学校都在开展信息化部署,实现了多媒体教学,网上提交作业,在线考试等学生考勤对学校教务管理是至关重要,在以前,学生请假要去找班主任或者院长批准,并且不一定每
4、次都能顺利的找到班主任,完成请假批准。要是3天以上的请假还要去找院长审批,这样就麻烦;再者如果学生不在学校,没办法向班主任提交请假单;对于学生出勤检查,是学生会根据纸制名单逐一点名,或老师根据学生上交课堂作业来判断学生是否来上课。这些方法往往具有考勤差错率比较高,考勤效率也比较慢,没有一个总体的的记录和整理,并且纸制的点名册容易丢失遗漏,耽误时间等缺点。针对以上的问题,开发一种针对学生请假的考勤网上管理系统,通过请假管理系统,任课老师可以在课堂上直接登录考勤记录网站进行课堂查看那些学生打卡,记录学生考勤情况等。此外,在其他时间,班主任以及学校领导也可以登录该网站查询学生在某课程的出勤情况。本毕
5、业设计的内容是设计并且实现一个基于Web技术的学生请假管理系统,故而系统主要以J2EE作为开发基础,主要使用了Struts2+Spring+Hibernate等多种框架的结合使用,用MyEclipse作为开发工具,使用MYSQL作为数据库,使用JAVA语言开发,页面采取JSP动态页面开发技术。该系统界面简单、操作方便,容易维护。关键词:请假管理系统 ,S.S.H(Struts2,Spring,Hibernate ),JAVA , JSP Design and implementation of attendance management systemAbstractThe current in
6、formation age, pay attention to the effective, accurate and timely completion of things, in recent years, schools carry out information technology deployment, to achieve a multi-media teaching, submission of online homework, online examnation, student attendance is critical for school educational ad
7、ministration. Previously, students leave to go to the class teacher or the president to be approved , and does not always able to find teacher completion of the leave of absence approved if more than 3 days leave should go to the president for approval, so that trouble; Furthermore if students do no
8、t exist in school, can not submit leave form application; For student attendance checking, teacher will check the name which according to the paper list one by one, or turned over to the classroom teachers based on student job to determine whether students come to class. These methods tend to have r
9、elatively high error rate of attendance, attendance efficiency is relatively slow, does not have an overall record and finishing, and paper point the roster easily to lost, delay time and other shortcomings. For above problems, the development of an online attendance management system for students t
10、o leave, leave management system, the classroom teacher in the classroom directly log attendance records website classroom to see those students punch record student attendance. In addition, at other times, the class teacher and school leaders can log on to the website the attendance of students in
11、a course.The graduation paper is to design and implement a web-based technology students leave management system,so the system as the basis for the development of J2EE, mainly use the Struts2 +Spring+Hibernate and other frameworks used in conjunction, Use MyEclipse as the development tools,and use M
12、ySQL as a database, developed using JAVA language, the interface take the JSP dynamic page development technology. The system interface is simple, easy to operate and maintain.KeyWords: Student attendance management system, S.S.H(Struts2,Spring,Hibernate ),JAVA , JSP 目录摘 要IABSTRACTII1 绪 论12 系统需求分析22
13、.1可行性分析22.1.1 技术可行性22.1.2 经济可行性22.1.3 运行可行性22.2功能需求23 系统的开发环境及技术简介43.1 系统开发环境43.1.1 MyEclipse43.1.2 数据库简介43.1.3 Tomcat43.2系统开发的思想与技术53.2.1 JSP技术与MVC模式以及系统的基本框架53.2.2 S.S.H框架的优点54 系统总体设计84.1 总体功能模块84.2系统管理员的功能模块94.3院长的功能模块94.4任课老师的功能模块104.5班主任的功能模块104.6学生用户的功能模块104.7 系统业务描述115 系统详细设计与实现135.1系统和数据库的配置
14、135.2概念模型设计135.3数据库逻辑模型145.4数据库表结构145.5平台数据表的设计166 系统功能实现206.1程序的类图206.1.1班级Class类图206.1.2考勤记录Attendance类图206.1.3科目Subject类图216.1.4 课程Course类图216.1.5请假单Application类图226.1.6用户User类图226.2程序的流程图236.2.1班级信息模块程序流程图236.2.2考勤记录模块程序流程图236.2.3科目信息模块程序流程图236.2.4课程信息模块程序流程图246.2.5用户信息模块程序流程图256.3系统功能实现的主要框架256
15、.3.1 SSH框架256.3.2 Hibernate配置文件266.3.3 Struts配置文件276.3.4 Spring配置文件286.4系统功能实现的主要模块296.4.1 登陆页面296.4.2 班级管理主页面306.4.3 课程管理主页面317 系统的调试与测试337.1主要测试内容337.2软件测试的目的337.3软件测试的任务337.4测试方法347.5 测试环境347.6 系统具体测试347.6.1 登录测试347.6.2 学生添加请假单测试357.6.3 主要功能流程测试36结束语37致 谢38参考文献391 绪 论随着计算机的发展,数据电子化成为趋势,计算机处理数据给我们
16、生活带来方便,我们不需要手工的一次又一次的抄写数据,用计算机,录入一次多次使用;可以不用出门,就可以开远程会议;可以使用计算机计算庞大而又复杂的数据运算等。这样我们上班,上学的考勤也可以用计算机实现,不在需要我们来来回回的跑去找老师请假,节省时间和精力去做该做的事情,在现在的校园信息化不断完善中,网络的办事效率比多部门人事管理效率要快好几十倍。如今高校的招生就业系统,主页展示系统,教务管理系统,论坛BBS等系统在各大高校纷纷出现,对学校的老师和学生的学习生活带来了便利。因此学生请假进行无纸化管理能进一步加强学生考勤管理,维护正常的教学教务秩序,给老师管理学生在校考勤带来便利。目前学校对请假的管
17、理以任课老师上课点名,记录学生上课情况,对于时间比较长的请假,需要通过递交请假申请让班主任、院系领导都批准方能生效。这种的模式在目前高校管理中暴露了不可避免的弊端: 1)学生请假不方便; 2)学生请假对任课老师不透明; 3)学生对自己整个学期的上课出勤情况没有整体的统计信息; 4)班主任对本班学生整个学期的上课出勤情况不易查看; 5)院系领导、学校领导不容易把握学生上课的出勤情况10。对于上述弊端,如果通过信息化管理,就可以减少或者消除。在学生请假管理系统中,学生提交请假单,得到班主任批准后,任课老师就会看见那些学生已经提交请假,那些学生是无故旷课,对于长假的管理也比纸制的请假单效率高,长假由
18、校领导批准后,会一直显示到请假结束,这样任课老师就时时的知道学生的情况,对于班主任就可以方便的统计每个学期,各个学生的出勤情况,根据相应出勤率,给学生学习评价。 因此一个好的学生请假管理系统在一定程度上可以解决这些弊端,本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。2 系统需求分析2.1可行性分析2.1.1 技术可行性根据新系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员水平和数量等方面去考虑和分析,这次毕业设计,使用比较熟悉的java编程语言,使用轻量级的MySQL数据库和Tomcat服务器开发。2.1.2 经济可行性根据系统的总体
19、评估系统所要付出的费用,该毕业设计所设计的费用,主要是个人劳动时间的消耗,和打印费用,经济可行性容易满足。2.1.3 运行可行性系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充、分析在给定时间里能否完成预定的系统开发任务等。按上述三方面进行可行性分析、研究后,我们认为该项目是可行的。2.2功能需求根据用户的需求,应当具备学生和老师的请假功能、对班主任对本班学生的考勤管理、管理员对用户,课程等内容管理这三大主要功能。请假管理:通过学生遇到事情需要请假,提交请假单,由班主任审批,然后任课老师根据请假的批复情况填写学生的考
20、勤。考勤管理:任课老师通过考勤管理,对学生上课出勤信息进行公开,但是对学生具体请假不作管理,只需要把情况提示给班主任。后台管理:后台管理主要是管理员操作的数据,因为高校每年,有新生入学,也有学生毕业,要对学生信息进行管理。请假系统由班主任安排完成,学生的请假大部分由班主任批准,3天以上的要提交到院系批准,考勤管理系统要借助请假系统、班级课表安排才能完成,根据不同年级不同系院课表不同,因此必须要求管理员对学校的课表能根据系统需求,动态的、准确的更新课表。3 系统的开发环境及技术简介3.1 系统开发环境3.1.1 MyEclipse在Java项目开发中,MyEclipse是作为一个项目开发工具,使
21、用方便,功能强大,MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的一种扩展,利用MyEclipse,我们可以在数据库和J2EE的开发、发布,以及在应用程序服务器的整合当中极大地提高系统的工作效率。MyEclipse中包括了完美的编码、系统调试、和系统发布功能,完整支持HTML, JSP, CSS, Javascript,Spring,Struts, DB,SQL, Hibernate。对于每一个功能类别,MyEclipse有相对应的功能部件,只要导入相应插件实现。模块化了这些功能,每个模块单独
22、进行安装、扩展、升级,不会影响其他模块功能。简单而言,MyEclipse是一款J2EE集成开发环境,是Eclipse的插件,支持代码编写、配置、测试以及除错。3.1.2 数据库简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。MySQL开源,被广泛的应用于中小型网站中,由于成本比较低,速度比较快,体积比较小,企业为了减低成本,使用广泛,因为MySQL的广泛使用,MySQL的SQL语言也是用于访问数据库最常用的的标准之一。3.1.3 TomcatTomcat 因为它运行时占用的系统资源小,扩展性强,支持功能多,因此Tomcat被广泛应用,受到广大程序员青睐 ;有强大
23、的技术支持后盾,Tomcat在不断的更新,因为其开源,全世界的程序员,只要你有兴趣为它做改进,做完善都可以给Tomcat添加新功能。 Tomcat 是一个轻量级应用服务器,特别是应用在中小型系统中,对JSP完美的支持就像Server系列对ASP一样结合很完美。安装比较方便,只需要下载解压完成,把网站代码拷贝到Tomcat空间就可以访问本地网站了。实际上Tomcat 部分是Apache 服务器的扩展。 3.2系统开发的思想与技术3.2.1 JSP技术与MVC模式以及系统的基本框架本系统采用Jsp技术,基于MVC模式开发,使用SSH框架(Struts2、Spring、Hibernate)来增加系统
24、的开发速度。所谓的MVC模式是Model-View-Controller的缩写,中文翻译为模式-视图-控制器。程序就是用Struts2作为系统的控制层连接视图层和数据逻辑层和Hibernate实现对JDBC的封装,作为数据逻辑层,Jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,Jsp页面请求先到Action,再到Dao,再回到Action,回到Jsp页面,Action主要处理来自页面的请求,Dao主要是和数据库的交互,Struts2主要用在Action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在Dao,包括对数据库的增、删、改、查的操作,Spr
25、ing作为一个大的工厂,把Web,Action,Service,Dao,JoPo等中间层无缝对接6。3.2.2 S.S.H框架的优点S.S.H框架是J2EE应用中Struts2+Spring+Hibernate三大免费开源框架的结合使用。使用后很好的提高了我们开发的开发效率,缩短了开发周期,SSH框架编码格式优美提高我们软件产品的可维护性、对系统分模块化提高可扩展性。SSH框架里面有很多优秀的设计理念及模式应用。比如,Struts2属于MVC框架,关键是要了解MVC的概念及大致原理;而Hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而Spr
26、ing属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,它由以下3个框架构成:1)Struts2框架Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持对Servlet进行封装,它采用的主要技术是Servlet,JSP和Custom tag library。优点:一是有强大的标签技术,使用的好,会大大的提高开发效率;二是页面导航,这功能能把一个系统的总体关系清晰的表现,是以后软件开发发展的趋势。其基本构成如图3-1所示。图3-1
27、Struts2框架工作流程1)Spring框架 Spring 的核心是个轻量级的容器,它是实现IOC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web 框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts
28、、JSF、Hibernate 等),Spring 也提供了与它们相整合的方案,相当于一个超级工厂。Spring框架由以下7个部分组成如下图3-2所示图3-2 Spring框架构成 3)Hibernate框架 Hibernate 是一个开放源码的 ORM 持久层框架。作为优秀的持久层框架实现,Hibernate 框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计思想进行持久层开发。简单的说,Hibernate 只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成
29、对数据库表数据的插入、删除、修改、读取等操作8。图3-3 Hibernate框架4 系统总体设计4.1 总体功能模块 本系统分系统管理员,系院长,任课老师,班主任,学生5个用户角色,不同的角色有不同的权限,管理员负责进行角色的增删改查,赋给用户权限,然后用户根据各自的权限,进行操作,不得操作权限以外的业务。总功能图如图4-1所示。 图4-1系统功能模块图 图4-2系统总体架构图(MVC)4.2系统管理员的功能模块系统管理员的主要功能有班级管理、学科管理、用户管理包括(系统管理员、系院主任、任课老师、班主任、学生的增,删,改,查)、课程管理。管理员登录后可以进行学院班级分配,确定学院有哪些班级,
30、添加班级,对已经无效的班级进行修改或者删除;对新入学的学生或者新聘任的教师进行注册,授权,这样学生和老师就有想对应的操作权限;管理员还负责安排每个班级的课程表,对课程表管理。系统管理员用户功能图如下4-3所示 图4-3.系统管理员的功能图4.3院长的功能模块院长的主要功能有课程表查询、学生请假管理(审核3天以上的请假)、考勤情况管理(包括考勤情况记录的添加和批量添加)。本系统系院长主要的工作是审批3天以上的请假,对于课程安排和教师管理都是附属功能。院长的功能图如图4-4所示 图4-4.院长的功能图4.4任课老师的功能模块任课老师的主要功能有课程表查询、学生请假管理、考勤情况管理(包括考勤情况记
31、录的添加和批量添加)。该系统中任课老师的主要任务是对学生考勤的管理,对每节课学生是否到课,进行管理。附带一些对学生到校情况查询。任课老师的功能图如图4-5所示图4-5.任课老师的功能图4.5班主任的功能模块班主任的主要功能有课程表查询、学生请假管理(审核3天以内的请假)、考勤情况管理(包括考勤情况记录的添加和批量添加)。该系统中班主任的操作业务是一个重点,对学生的情况进行综合查询,有综合管理的功能,可以统计出本班该学期的出勤情况,每个学生的出勤情况,然后根据学生情况,给学生年终评定。班主任的功能图如图4-6所示图4-6.班主任的功能图4.6学生用户的功能模块学生的主要功能有课程表查询,学生请假
32、申请、查询,考勤情况查询。本系统中学生扮演着重要角色,所有的操作都是因为学生的操作,来影响其他权限用户的操作。如 学生填写完请假单提交给班主任,班主任考虑学生请假原因是否给予批准,如果是3天以上的请假,就要提交给院长批准,批准的请假单,任课老师就可以看见学生没来上课是请假了,任课老师就会修改学生考勤情况,这是一张请假单的整体流程。学生用户的功能图如图4-7所示图4-7.学生用户的功能图4.7 系统业务描述本系统分系统管理员,系院长,任课老师,班主任,学生5个用户角色。系统管理员的主要功能有班级管理、学科管理、用户管理包括(系统管理员,系院主任,任课老师,班主任,学生的增,删,改,查)、课程管理
33、。系院长的主要功能有课程表查询、学生请假管理(审核3天以上的请假)、考勤情况管理(包括考勤情况记录的添加和批量添加)。任课老师的主要功能有课程表查询、学生请假管理、考勤情况管理(包括考勤情况记录的添加和批量添加)。班主任的主要功能有课程表查询、学生请假管理(审核3天以内的请假)、考勤情况管理(包括考勤情况记录的添加和批量添加)。学生的主要功能有课程表查询,学生请假申请、查询,考勤情况查询。请假审批业务流程图如图4-8所示 图4-8请假业务流程图用例图4-9如下 图4-9用例图5 系统详细设计与实现5.1系统和数据库的配置系统按通用的B/S(浏览器、服务器)模式进行设计(如图5-1) 图5-1
34、B/S架构图数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。5.2概念模型设计概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述现实世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的事物的联系,从概念上表示一个数据库的信息组织情况。本系统E-R图5-2如下图5-2 系统E-R图5.3数据库逻辑模型班级表信息(主键、班级名、添加时间、院系、专业)考勤表信息(主键、班级号、学号、添加时间
35、、是否旷课、课程名、旷课数量、日期、任课老师)课程表信息(主键、班级、班级号、添加时间、是否删除标志、课程名)请假单表信息(主键、班级号、学号、添加时间、开始请假时间、结束请假时间、审核情况、审核意见、用户名)学科表信息(主键、添加时间、学科名,任课老师)用户表信息(主键、地址、班级号、学号、添加时间、密码、联系方式、用户权限、所在宿5.4数据库表结构表5-1 班级表class名称类型空备注classIdInt(11)no主键classNamevarchar(255)yes班级名classNovarchar(255)yes班级号,外键createTimeDatetimeyes添加时间depar
36、tmentvarchar(255)yes院系majorvarchar(255)yes专业表5-2 考勤表attendance名称类型空备注aidInt(11)no主键aclassNovarchar(255)yes班级号,外键codeNovarchar(255)yes学号createTimevarchar(255)yes添加时间isAbsentInt(11)no是否旷课courseNamevarchar(255)yes课程名absentNumInt(11)yes旷课数量adatevarchar(255)yes日期teachervarchar(255)yes任课老师表5-3 课程表course名称
37、类型空备注cidInt(11)no主键classNamevarchar(255)no班级classNovarchar(255)yes班级号,外键createTimeDatetimeyes添加时间courseStatusInt(11)no是否删除标志,0表示未删除,1表示删除courseName1varchar(255)yes课程名一courseName2varchar(255)yes课程名二courseName3varchar(255)yes课程名三courseName4varchar(255)yes课程名四courseName5varchar(255)yes课程名五courseName6va
38、rchar(255)yes课程名六courseName7varchar(255)yes课程名七表5-4 请假单表application名称类型空备注aidInt(11)no主键classvarchar(255)yes班级classNovarchar(255)yes班级号,外键createTimeDatetimeyes添加时间startTimevarchar(255)yes开始请假时间endTimevarchar(255)yes结束请假时间reviewvarchar(255)yes审核情况contentvarchar(255)yes审核意见userNamevarchar(255)yes用户名表5
39、-5 学科表subject名称类型空备注sidInt(11)no主键createTimeDatetimeyes添加时间subjectNamevarchar(255)yes学科名unamevarchar(20)yes任课教师姓名,外键表5-6 学科表users名称类型空备注uidInt(11)no主键addressvarchar(255)yes地址classNovarchar(255)yes班级号,外键codeNovarchar(255)yes学号,外键createTimeDatetimeyes添加时间passwordvarchar(255)yes密码phonevarchar(255)yes联系
40、方式roleInt(11)yes用户权限roomvarchar(255)yes所在宿舍userStatusInt(11)Yes,是否删除标志,0表示未删除,1表示删除userNamevarchar(255)yes用户名5.5平台数据表的设计根据平台的需求分析和功能模块的划分,所涉及的实体有班级,班级,课程,请假单,学科, 用户。因此系统的定义数据库主要包含6张表:班级表class,考勤表attendance,课程表course,请假单表application,学科表subject,用户表users。班级表class建表的sql语句为:CREATE TABLE class ( classId i
41、nt(11) NOT NULL auto_increment, className varchar(255) default null, classNo varchar(255) default null, createTime datetime default null, department varchar(255) default null, major varchar(255) default null, PRIMARY KEY (classId) ENGINE=InnoDB DEFAULT CHARSET=utf8;考勤表attendance建表的sql语句为:CREATE TABL
42、E attendance ( aid int(11) NOT NULL auto_increment, classNo varchar(255) default null, codeNo varchar(255) default null, createTime datetime default null, isAbsent int(11) not null, courseName varchar(255) default null, absentNo int(11) not null, adate varchar(255) default null, teacher varchar(255)
43、 default null, PRIMARY KEY (aid) ENGINE=InnoDB DEFAULT CHARSET=utf8;课程表course建表的sql语句为:CREATE TABLE course ( cid int(11) not null auto_increment, className varchar(255) default null, classNo varchar(255) default null, createTime datetime default null, courseStatus int(11) not null, coursename1 varchar(255) default null, coursename2 varchar(255) default null, coursename3 varchar(255) default null, coursename4 varchar(255) default null,coursename5 varchar(255) default null, coursename6 varchar(255) default null, coursename7 varchar(255) default null,PRIMARY KEY (cid)