北方民族大学 学士学位论文
论文题目: 请假管理系统设计与应用
院(部)名 称: 计算机科学与工程学院 学 生 姓 名: 专 业: 学 号: 指导教师姓名: 论文提交时间: 论文答辩时间: 学位授予时间:
北方民族大学教务处制
请假管理系统设计与应用
请假管理系统设计与应用
摘 要
当前信息化时代,讲究高效,准确,及时的完成事情,近年来学校都在开展信息化部署,实现了多媒体教学,网上提交作业,在线考试等学生考勤对学校教务管理是至关重要,在以前,学生请假要去找班主任或者院长批准,并且不一定每次都能顺利的找到班主任,完成请假批准。要是3天以上的请假还要去找院长审批,这样就麻烦;再者如果学生不在学校,没办法向班主任提交请假单;对于学生出勤检查,是学生会根据纸制名单逐一点名,或老师根据学生上交课堂作业来判断学生是否来上课。这些方法往往具有考勤差错率比较高,考勤效率也比较慢,没有一个总体的的记录和整理,并且纸制的点名册容易丢失遗漏,耽误时间等缺点。针对以上的问题,开发一种针对学生请假的考勤网上管理系统,通过请假管理系统,任课老师可以在课堂上直接登录考勤记录网站进行课堂查看那些学生打卡,记录学生考勤情况等。此外,在其他时间,班主任以及学校领导也可以登录该网站查询学生在某课程的出勤情况。
本毕业设计的内容是设计并且实现一个基于Web技术的学生请假管理系统,故而系统主要以J2EE作为开发基础,主要使用了Struts2+Spring+Hibernate等多种框架的结合使用,用MyEclipse作为开发工具,使用MYSQL作为数据库,使用JAVA语言开发,页面采取JSP动态页面开发技术。该系统界面简单、操作方便,容易维护。
关键词:请假管理系统 ,S.S.H(Struts2,Spring,Hibernate ),JAVA , JSP
I
请假管理系统设计与应用
Design and implementation of attendance management system
Abstract
The current information 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 administration. 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 not 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 relatively 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 to 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 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 MySQL 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
II
请假管理系统设计与应用
目录
摘 要 .................................................................... I ABSTRACT ................................................................. II 1 绪 论 .................................................................. 1 2 系统需求分析 ............................................................ 2
2.1可行性分析 ........................................................ 2 2.1.1 技术可行性 ................................................... 2 2.1.2 经济可行性 ................................................... 2 2.1.3 运行可行性 ................................................... 2 2.2功能需求 .......................................................... 2 3 系统的开发环境及技术简介 ............................................... 4
3.1 系统开发环境 ..................................................... 4 3.1.1 MyEclipse .................................................... 4 3.1.2 数据库简介 ................................................... 4 3.1.3 Tomcat ....................................................... 4 3.2系统开发的思想与技术 .............................................. 5 3.2.1 JSP技术与MVC模式以及系统的基本框架 ......................... 5 3.2.2 S.S.H框架的优点 ............................................. 5
4 系统总体设计 ............................................................ 8
4.1 总体功能模块 ...................................................... 8 4.2系统管理员的功能模块 .............................................. 9 4.3院长的功能模块 .................................................... 9 4.4任课老师的功能模块 ............................................... 10 4.5班主任的功能模块 ................................................. 10 4.6学生用户的功能模块 ............................................... 10 4.7 系统业务描述 ..................................................... 11 5 系统详细设计与实现 ..................................................... 13
5.1系统和数据库的配置 ............................................... 13 5.2概念模型设计 ..................................................... 13 5.3数据库逻辑模型 ................................................... 14 5.4数据库表结构 ..................................................... 14 5.5平台数据表的设计 ................................................. 16 6 系统功能实现 ........................................................... 20
6.1程序的类图 ....................................................... 20
III
请假管理系统设计与应用
6.1.1班级Class类图 .............................................. 20 6.1.2考勤记录Attendance类图 ..................................... 20 6.1.3科目Subject类图 ............................................ 21 6.1.4 课程Course类图 ............................................. 21 6.1.5请假单Application类图 ...................................... 22 6.1.6用户User类图 ............................................... 22 6.2程序的流程图 ..................................................... 23 6.2.1班级信息模块程序流程图 ...................................... 23 6.2.2考勤记录模块程序流程图 ...................................... 23 6.2.3科目信息模块程序流程图 ...................................... 23 6.2.4课程信息模块程序流程图 ...................................... 24 6.2.5用户信息模块程序流程图 ...................................... 25 6.3系统功能实现的主要框架 ........................................... 25 6.3.1 SSH框架 ................................................... 25 6.3.2 Hibernate配置文件 .......................................... 26 6.3.3 Struts配置文件 ............................................. 27 6.3.4 Spring配置文件 ............................................ 28 6.4系统功能实现的主要模块 ........................................... 29 6.4.1 登陆页面 .................................................... 29 6.4.2 班级管理主页面 .............................................. 30 6.4.3 课程管理主页面 .............................................. 31
7 系统的调试与测试 ....................................................... 33
7.1主要测试内容 ..................................................... 33 7.2软件测试的目的 ................................................... 33 7.3软件测试的任务 ................................................... 33 7.4测试方法 ......................................................... 34 7.5 测试环境 ......................................................... 34 7.6 系统具体测试 .................................................... 34 7.6.1 登录测试 .................................................... 34 7.6.2 学生添加请假单测试 .......................................... 35 7.6.3 主要功能流程测试 ............................................ 36
结束语 ................................................................... 37 致 谢 .................................................................... 38 参考文献 ................................................................. 39
IV
请假管理系统设计与应用
1 绪 论
随着计算机的发展,数据电子化成为趋势,计算机处理数据给我们生活带来方便,我们不需要手工的一次又一次的抄写数据,用计算机,录入一次多次使用;可以不用出门,就可以开远程会议;可以使用计算机计算庞大而又复杂的数据运算等。这样我们上班,上学的考勤也可以用计算机实现,不在需要我们来来回回的跑去找老师请假,节省时间和精力去做该做的事情,在现在的校园信息化不断完善中,网络的办事效率比多部门人事管理效率要快好几十倍。如今高校的招生就业系统,主页展示系统,教务管理系统,论坛BBS等系统在各大高校纷纷出现,对学校的老师和学生的学习生活带来了便利。因此学生请假进行无纸化管理能进一步加强学生考勤管理,维护正常的教学教务秩序,给老师管理学生在校考勤带来便利。目前学校对请假的管理以任课老师上课点名,记录学生上课情况,对于时间比较长的请假,需要通过递交请假申请让班主任、院系领导都批准方能生效。这种的模式在目前高校管理中暴露了不可避免的弊端: 1)学生请假不方便; 2)学生请假对任课老师不透明; 3)学生对自己整个学期的上课出勤情况没有整体的统计信息; 4)班主任对本班学生整个学期的上课出勤情况不易查看; 5)院系领导、学校领导不容易把握学生上课的出勤情况[10]。对于上述弊端,如果通过信息化管理,就可以减少或者消除。在学生请假管理系统中,学生提交请假单,得到班主任批准后,任课老师就会看见那些学生已经提交请假,那些学生是无故旷课,对于长假的管理也比纸制的请假单效率高,长假由校领导批准后,会一直显示到请假结束,这样任课老师就时时的知道学生的情况,对于班主任就可以方便的统计每个学期,各个学生的出勤情况,根据相应出勤率,给学生学习评价。 因此一个好的学生请假管理系统在一定程度上可以解决这些弊端,本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。
1
请假管理系统设计与应用
2 系统需求分析
2.1可行性分析
2.1.1 技术可行性
根据新系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员水平和数量等方面去考虑和分析,这次毕业设计,使用比较熟悉的java编程语言,使用轻量级的MySQL数据库和Tomcat服务器开发。
2.1.2 经济可行性
根据系统的总体评估系统所要付出的费用,该毕业设计所设计的费用,主要是个人劳动时间的消耗,和打印费用,经济可行性容易满足。 2.1.3 运行可行性
系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充、分析在给定时间里能否完成预定的系统开发任务等。
按上述三方面进行可行性分析、研究后,我们认为该项目是可行的。
2.2功能需求
根据用户的需求,应当具备学生和老师的请假功能、对班主任对本班学生的考勤管理、管理员对用户,课程等内容管理这三大主要功能。
请假管理:通过学生遇到事情需要请假,提交请假单,由班主任审批,然后任课老师根据请假的批复情况填写学生的考勤。
考勤管理:任课老师通过考勤管理,对学生上课出勤信息进行公开,但是对学生具体请
2
请假管理系统设计与应用 假不作管理,只需要把情况提示给班主任。
后台管理:后台管理主要是管理员操作的数据,因为高校每年,有新生入学,也有学生毕业,要对学生信息进行管理。请假系统由班主任安排完成,学生的请假大部分由班主任批准,3天以上的要提交到院系批准,考勤管理系统要借助请假系统、班级课表安排才能完成,根据不同年级不同系院课表不同,因此必须要求管理员对学校的课表能根据系统需求,动态的、准确的更新课表。
3
请假管理系统设计与应用
3 系统的开发环境及技术简介
3.1 系统开发环境
3.1.1 MyEclipse
在Java项目开发中,MyEclipse是作为一个项目开发工具,使用方便,功能强大,MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的一种扩展,利用MyEclipse,我们可以在数据库和J2EE的开发、发布,以及在应用程序服务器的整合当中极大地提高系统的工作效率。MyEclipse中包括了完美的编码、系统调试、和系统发布功能,完整支持HTML, JSP, CSS, Javascript,Spring,Struts, DB,SQL, Hibernate。
对于每一个功能类别,MyEclipse有相对应的功能部件,只要导入相应插件实现。模块化了这些功能,每个模块单独进行安装、扩展、升级,不会影响其他模块功能。
简单而言,MyEclipse是一款J2EE集成开发环境,是Eclipse的插件,支持代码编写、配置、测试以及除错。 3.1.2 数据库简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。MySQL开源,被广泛的应用于中小型网站中,由于成本比较低,速度比较快,体积比较小,企业为了减低成本,使用广泛,因为MySQL的广泛使用,MySQL的SQL语言也是用于访问数据库最常用的的标准之一。 3.1.3 Tomcat
Tomcat 因为它运行时占用的系统资源小,扩展性强,支持功能多,因此Tomcat被广泛应用,受到广大程序员青睐 ;有强大的技术支持后盾,Tomcat在不断的更新,因为其开源,全世界的程序员,只要你有兴趣为它做改进,做完善都可以给Tomcat添加新功能。
Tomcat 是一个轻量级应用服务器,特别是应用在中小型系统中,对JSP完美的支持就像Server系列对ASP一样结合很完美。安装比较方便,只需要下载解压完成,把网站代码拷贝到Tomcat空间就可以访问本地网站了。实际上Tomcat 部分是Apache 服务器的扩展。
4
请假管理系统设计与应用
3.2系统开发的思想与技术
3.2.1 JSP技术与MVC模式以及系统的基本框架
本系统采用Jsp技术,基于MVC模式开发,使用SSH框架(Struts2、Spring、Hibernate)来增加系统的开发速度。所谓的MVC模式是\"Model-View-Controller\"的缩写,中文翻译为\"模式-视图-控制器\"。程序就是用Struts2作为系统的控制层连接视图层和数据逻辑层和Hibernate实现对JDBC的封装,作为数据逻辑层,Jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,Jsp页面请求先到Action,再到Dao,再回到Action,回到Jsp页面,Action主要处理来自页面的请求,Dao主要是和数据库的交互,Struts2主要用在Action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在Dao,包括对数据库的增、删、改、查的操作,Spring作为一个大的工厂,把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的概念及原理有一个总体的了解。而Spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,
它由以下3个框架构成: 1)Struts2框架
Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持对Servlet进行封装,它采用的主要技术是Servlet,JSP和Custom tag library。优点:一是有强大的标签技术,使用的好,会大大的提高开发效率;二是页面导航,这功能能把一个系统的总体关系清晰的表现,是以后软件开发发展的趋势。其基本构成如图3-1所示。
5
请假管理系统设计与应用
图3-1 Struts2框架工作流程
1)Spring框架
Spring 的核心是个轻量级的容器,它是实现IOC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web 框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate 等),Spring 也提供了与它们相整合的方案,相当于一个超级工厂。
Spring框架由以下7个部分组成
如下图3-2所示
图3-2 Spring框架构成
3)Hibernate框架
Hibernate 是一个开放源码的 ORM 持久层框架。作为优秀的持久层框架实现,
6
请假管理系统设计与应用 Hibernate 框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计思想进行持久层开发。简单的说,Hibernate 只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作[8]。
图3-3 Hibernate框架
7
请假管理系统设计与应用
4 系统总体设计
4.1 总体功能模块
本系统分系统管理员,系院长,任课老师,班主任,学生5个用户角色,不同的角色有
不同的权限,管理员负责进行角色的增删改查,赋给用户权限,然后用户根据各自的权限,进行操作,不得操作权限以外的业务。总功能图如图4-1所示。
图4-1系统功能模块图
图4-2系统总体架构图(MVC)
8
请假管理系统设计与应用 4.2系统管理员的功能模块
系统管理员的主要功能有班级管理、学科管理、用户管理包括(系统管理员、系院主任、任课老师、班主任、学生的增,删,改,查)、课程管理。管理员登录后可以进行学院班级分配,确定学院有哪些班级,添加班级,对已经无效的班级进行修改或者删除;对新入学的学生或者新聘任的教师进行注册,授权,这样学生和老师就有想对应的操作权限;管理员还负责安排每个班级的课程表,对课程表管理。 系统管理员用户功能图如下4-3所示
图4-3.系统管理员的功能图
4.3院长的功能模块
院长的主要功能有课程表查询、学生请假管理(审核3天以上的请假)、考勤情况管理(包括考勤情况记录的添加和批量添加)。本系统系院长主要的工作是审批3天以上的请假,对于课程安排和教师管理都是附属功能。
院长的功能图如图4-4所示
图4-4.院长的功能图
9
请假管理系统设计与应用 4.4任课老师的功能模块
任课老师的主要功能有课程表查询、学生请假管理、考勤情况管理(包括考勤情况记录的添加和批量添加)。该系统中任课老师的主要任务是对学生考勤的管理,对每节课学生是否到课,进行管理。附带一些对学生到校情况查询。
任课老师的功能图如图4-5所示
图4-5.任课老师的功能图
4.5班主任的功能模块
班主任的主要功能有课程表查询、学生请假管理(审核3天以内的请假)、考勤情况管理(包括考勤情况记录的添加和批量添加)。该系统中班主任的操作业务是一个重点,对学生的情况进行综合查询,有综合管理的功能,可以统计出本班该学期的出勤情况,每个学生的出勤情况,然后根据学生情况,给学生年终评定。
班主任的功能图如图4-6所示
图4-6.班主任的功能图
4.6学生用户的功能模块
学生的主要功能有课程表查询,学生请假申请、查询,考勤情况查询。本系统中学生扮演着重要角色,所有的操作都是因为学生的操作,来影响其他权限用户的操作。如 学生填写
10
请假管理系统设计与应用 完请假单提交给班主任,班主任考虑学生请假原因是否给予批准,如果是3天以上的请假,就要提交给院长批准,批准的请假单,任课老师就可以看见学生没来上课是请假了,任课老师就会修改学生考勤情况,这是一张请假单的整体流程。 学生用户的功能图如图4-7所示
图4-7.学生用户的功能图
4.7 系统业务描述
本系统分系统管理员,系院长,任课老师,班主任,学生5个用户角色。系统管理员的主要功能有班级管理、学科管理、用户管理包括(系统管理员,系院主任,任课老师,班主任,学生的增,删,改,查)、课程管理。系院长的主要功能有课程表查询、学生请假管理(审核3天以上的请假)、考勤情况管理(包括考勤情况记录的添加和批量添加)。任课老师的主要功能有课程表查询、学生请假管理、考勤情况管理(包括考勤情况记录的添加和批量添加)。班主任的主要功能有课程表查询、学生请假管理(审核3天以内的请假)、考勤情况管理(包括考勤情况记录的添加和批量添加)。学生的主要功能有课程表查询,学生请假申请、查询,考勤情况查询。
请假审批业务流程图如图4-8所示
图4-8请假业务流程图
11
请假管理系统设计与应用
用例图4-9如下
图4-9用例图
12
请假管理系统设计与应用 5 系统详细设计与实现
5.1系统和数据库的配置
系统按通用的B/S(浏览器、服务器)模式进行设计(如图5-1)
图5-1 B/S架构图
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
5.2概念模型设计
概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述现实世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的事物的联系,从概念上表示一个数据库的信息组织情况。 本系统E-R图5-2如下
图5-2 系统E-R图
13
请假管理系统设计与应用
5.3数据库逻辑模型
班级表信息(主键、班级名、添加时间、院系、专业)
考勤表信息(主键、班级号、学号、添加时间、是否旷课、课程名、旷课数量、日期、任课老师)
课程表信息(主键、班级、班级号、添加时间、是否删除标志、课程名)
请假单表信息(主键、班级号、学号、添加时间、开始请假时间、结束请假时间、审核情况、审核意见、用户名)
学科表信息(主键、添加时间、学科名,任课老师)
用户表信息(主键、地址、班级号、学号、添加时间、密码、联系方式、用户权限、所在宿
5.4数据库表结构
表5-1 班级表class
名称 classId className classNo createTime department major Int(11) 类型 no yes yes yes yes yes
空 主键 班级名 备注 varchar(255) varchar(255) Datetime varchar(255) varchar(255) 班级号,外键 添加时间 院系 专业 表5-2 考勤表attendance
名称 aid aclassNo codeNo createTime isAbsent courseName absentNum Int(11) varchar(255) varchar(255) varchar(255) Int(11) varchar(255) Int(11) 类型 no yes yes yes no yes yes 空 主键 班级号,外键 学号 添加时间 是否旷课 课程名 旷课数量 备注 14
请假管理系统设计与应用 adate teacher varchar(255) varchar(255)
yes yes 表5-3 课程表course
日期 任课老师 名称 cid className classNo createTime courseStatus courseName1 courseName2 courseName3 courseName4 courseName5 courseName6 courseName7
Int(11) 类型 no no yes yes no yes yes yes yes yes yes yes varchar(255) varchar(255) Datetime Int(11) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) 空 主键 班级 备注 班级号,外键 添加时间 是否删除标志,0表示未删除,1表示删除 课程名一 课程名二 课程名三 课程名四 课程名五 课程名六 课程名七 表5-4 请假单表application
名称 aid class classNo createTime startTime endTime review content userName Int(11) 类型 no yes yes yes yes yes yes yes yes
varchar(255) varchar(255) Datetime varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) 空 主键 班级 备注 班级号,外键 添加时间 开始请假时间 结束请假时间 审核情况 审核意见 用户名 15
请假管理系统设计与应用 表5-5 学科表subject
名称 sid createTime subjectName uname Int(11) 类型 no yes yes yes
表5-6 学科表users
空 主键 备注 添加时间 学科名 任课教师姓名,外键 Datetime varchar(255) varchar(20) 名称 uid address classNo codeNo createTime password phone role room userStatus userName
Int(11) 类型 no yes yes yes yes yes yes yes yes Yes, yes varchar(255) varchar(255) varchar(255) Datetime varchar(255) varchar(255) Int(11) varchar(255) Int(11) varchar(255) 空 主键 地址 备注 班级号,外键 学号,外键 添加时间 密码 联系方式 用户权限 所在宿舍 是否删除标志,0表示未删除,1表示删除 用户名 5.5平台数据表的设计
根据平台的需求分析和功能模块的划分,所涉及的实体有班级,班级,课程,请假单,学科, 用户。因此系统的定义数据库主要包含6张表:班级表class,考勤表attendance,课程表course,请假单表application,学科表subject,用户表users。
班级表class建表的sql语句为:
16
请假管理系统设计与应用 CREATE TABLE `class` ( `classId` int(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 TABLE `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) default null, PRIMARY KEY (`aid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
17
请假管理系统设计与应用 课程表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,
请假单表application建表的sql语句为: CREATE TABLE `application` ( `aid` int(11) NOT NULL auto_increment, `classNo` varchar(255) default null, `codeNo` varchar(255) default null, `createTime` datetime default null, `startTime` varchar(255) default null, `endTime` varchar(255) default null, `review` varchar(255) default null, `content` varchar(255) default null, `username` varchar(255) default null, PRIMARY KEY (`aid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; PRIMARY KEY (`cid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
18
请假管理系统设计与应用
学科表subject建表的sql语句为: CREATE TABLE `subject` ( `sid` int(11) NOT NULL auto_increment, `createTime` datetime default null, `subjectName` varchar(255) default null, `uname` varchar(255) default null, PRIMARY KEY (`sid`)
用户表users建表的sql语句为: CREATE TABLE `users` ( `uid` int(11) not null auto_increment, `address` varchar(255) default null, `classNo` varchar(255) default null, `codeNo` varchar(255) default null, `createTime` datetime default null, `password` varchar(255) default null, `phone` varchar(255) default null, `role` int(11) not null,
`room` varchar(255) default null, `userStatus` int(11) not null, `username` varchar(255) default null, PRIMARY KEY (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 19
请假管理系统设计与应用 6 系统功能实现
6.1程序的类图
6.1.1班级Class类图
图6-1班级类图主要接口有banjiDao,主要方法有getBanjiDAO(),banjilist(),banjiadd()等方法。
图6-1 班级类图
6.1.2考勤记录Attendance类图
考勤类图主要接口有banjiDao,userDao,subjectDao等,主要方法有getSubjectDao(),getUserDao()等。
图6-2请假单类图
20
请假管理系统设计与应用
6.1.3科目Subject类图
科目类图主要接口有subjectDao,userDao等,主要方法有subjectlist(),subjectadd
()等如图6-3所示:
图6-3 学科类图
6.1.4 课程Course类图
课程类图如下6-4所示,主要接口有banjiDao,subjectDao,主要方法有kechengadd(),
kechenglist()等方法。
图6-4 课程类图
21
请假管理系统设计与应用 6.1.5请假单Application类图
请假单类图主要接口有qingjiadanDAO,banjiDao等,主要有qingjiadanadd(),
qingjiadanlist()等方法 ,如下图6-5所示:
图6-5 请假单类图
6.1.6用户User类图
用户类图主要由userDao,banjiDao等接口,有login(),useradd(),userlist()
等方法,如下图6-6所示。
图6-6 用户类图
22
请假管理系统设计与应用
6.2程序的流程图
6.2.1班级信息模块程序流程图
管理员在后台对班级进行操作,如添加一个新的班级流程:在Jsp页面添加班级信息,通过strust2控制器,调用ClassAction,处理方法ClassService,通过ClassSerice调用ClassDao,然后使用Hibernate对数据库操作,把从数据库得到的数据通result返回给页面。
图6-7 班级流程图
6.2.2考勤记录模块程序流程图
任课老师对学生的考勤管理流程:学生提交完请假单,通过审核后,任课老师后台就会显示所带课程的学生请假情况,根据数据库记录,任课老师对学生考勤管理。流程如下图6-8所示。
图 6-8 考勤流程图
6.2.3科目信息模块程序流程图
管理员在后台对学校开设科目管理流程: 如添加科目,在Jsp页面添加班级信息,通过
23
请假管理系统设计与应用 strust2控制器,调用SubjectAction,处理方法SubjectService,通过SubjectSerice调用SubjectDao,然后使用Hibernate对数据库操作,把从数据库得到的数据通result返回给页面。
图6-9 科目流程图
6.2.4课程信息模块程序流程图
课程信息由管理员管理,其他用户对课程信息有查询权限,不同的班级课表不同,不同的老师查询的课表不同,流程如下图6-10所示。
图 6-10 课程流程图
24
请假管理系统设计与应用 6.2.5用户信息模块程序流程图
用户信息由管理员统一添加,其他用户可以修改自己的信息,老师可以查询所管理的学生信息,流程如下图6-11所示。
图 6-11 用户流程图
6.3系统功能实现的主要框架
6.3.1 SSH框架
SSH框架就是Struts2,Spring,Hibernate的简称,运用3个框架的集成协作使用,可以有效的提高代码编写的效率,从而有效的降低程序开发的周期。
25
请假管理系统设计与应用 6.3.2 Hibernate配置文件
1)这是Hibernate的配置文件,在该文件中 4)都表示当前数据库建立起来的表和试题类之间的映射关系, 26 请假管理系统设计与应用 比如 表示User类和t_user表之间的建立起来的对应关系,其他也都类似 6.3.3 Struts配置文件 这是Struts的配置文件,该文件的作用主要起到来自JSP的请求的跳转分配的作用,对页 面的所有跳转,转发都是通过Struts配置文件控制,该Struts配置文件是个总的配置文件。 27 请假管理系统设计与应用 6.3.4 Spring配置文件 Spring 在本项目中主要用到了IOC的功能,就是把对象实例化 本段代码是把manageAction和courseAction,classAction,SubjectAction,KaoQinLogAction,applicationAction实例化的代码,原理也是Spring的IOC模式。 28 请假管理系统设计与应用 6.4系统功能实现的主要模块 6.4.1 登陆页面 从页面接收到username和password后,通过userDao连接数据库查询操作返回一个user集合,与页面得到username和password进行验证,验证成功则允许登录,否则返回登录页面,提示重新输入登录名和密码。 登录界面如下图6-12所示: 图6-12 登录界面图 登陆代码: public String login() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); String username = request.getParameter(\"username\"); String password = request.getParameter(\"password\"); User user = userDao.selectUserbByusernameByPassword(username, password); if (user!=null) { List 本段代码是程序的登陆代码,首先从获取从页面输入的用户名和密码,然后调用userDao.selectUserbByusernameByPassword方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。 6.4.2 班级管理主页面 班级管理界面如图6-13所示: 图 6-13 班级管理页面图 代码如下: @SuppressWarnings(\"unchecked\") public String classlist() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); int numPerPage = 20; int pageNum = 1; if(request.getParameter(\"pageNum\")!=null && !request.getParameter(\"pageNum\").equals(\"\")){ pageNum = Integer.parseInt(request.getParameter(\"pageNum\")); } if(request.getParameter(\"numPerPage\")!=null){ numPerPage = Integer.parseInt(request.getParameter(\"numPerPage\")); 30 } } int total = classDao.selectAllclassCount(); List 图6-14 班级页面图 代码如下: @SuppressWarnings(\"unchecked\") public String subjcetlist() throws Exception { int numPerPage = 20; int pageNum = 1; if(request.getParameter(\"pageNum\")!=null } if(request.getParameter(\"numPerPage\")!=null){ } int total = subjectDao.selectAllSubjectCount(); List 31 请假管理系统设计与应用 这样实现对数据查询功能的实现,同时在该学科列表页面定义了对学科信息的增加、修改、删除等操作。 6.4.4 用户管理主页面 图6-15 用户页面图 代码如下: public String userlist() { HttpServletRequest request = ServletActionContext.getRequest(); if(request.getParameter(\"pageNum\")!=null && !request.getParameter(\"pageNum\").equals(\"\")){ pageNum = Integer.parseInt(request.getParameter(\"pageNum\")); } \")); if(request.getParameter(\"numPerPage\")!=null){ } int total = userDao.selectAllUserCount(); List 过request.setAttribute方法把查询到的记录传到显示的页面。同时通过return \"success\";方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该用户列表页面定义了对用户信息的增加,修改,删除等操作。 32 请假管理系统设计与应用 7 系统的调试与测试 7.1主要测试内容 本次测试主要针对本次开发的请假管理信息系统进行系统测试,主要包括功能测试、界面测试、负载测试,文档测试。 7.2软件测试的目的 软件质量是由几个方面来衡量的:1)在有限的时间里有效的把一个工作正确无误完成。2)符合应用标准的要求,不同地区不同国家的用户使用习惯不同,项目工程中的可维护性、可测试性等要求。3)质量就是软件达到了最开始客户所想要的需求,而代码的优美或精巧的技巧并不代表软件的高质量。4)质量也代表着它符合客户的需要。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。 软件测试的目的,第一是确认软件的质量能正确的完成任务,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。 第二是提供反馈信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。 7.3软件测试的任务 1)寻找Bug; 2)避免软件开发过程中的缺陷; 3)衡量软件的品质; 4)关注用户的需求。 总的目标是:确保软件的质量 33 请假管理系统设计与应用 7.4测试方法 整个系统测试方法包括功能测试、负载测试、文档测试。 1)功能测试 对需求规格说明书中描述的所有功能,通过配置Tomcat服务器,让客服端进行功能测试。测试中需要考虑恶意测试和正常的测试,测试出系统的各种功能死角。 2)负载测试 负载测试主要测试系统在多用户在线登陆操作时候,系统的运行情况不出现系统故障。负载测试利用自动测试工具开展,网络上有很多压力测试工具。 3)文档测试 文档测试主要包括用户文档、需求文档、设计文档测试,测试主要在文档内容的正确性、准确性,保证了文档的正确性才能是有效的文档,准确性是精确的表达出文档的意思。采用走查的方式进行文档测试。 7.5 测试环境 1)硬件环境 内存:需要至少512MHZ; 配备光驱; 2)软件环境 作系统:Windows xp/Windows 7的服务器版本 必装软件:Myeclipse10.1 Mysql5.5 Tomcat 6.0.1 屏幕分辨率1024x780 7.6 系统具体测试 在此,由于版面有限,不可能将系统的每一个功能的测试都表现出来,下面是用户登录和学生添加请假单进行测试及其对系统主要功能流程测试。 7.6.1 登录测试 有效测试输入情况:输入正确的无特殊字符的登录名和密码。 无效测试输入情况:特殊字符数据;空数据;数据长度测试。 34 请假管理系统设计与应用 表6-1测试用例表 测试内容 测试数据 用户名 输入有效登录名和密码 空数据 admin admin 空 空 非法字符 ¥df* admin #1111 数据长度 超出12位数 admin 超出12位数 无效界面提示如下7-1图: 密码 111111 空 111111 空 111111 &的方 )二33 111111 少于6位 少于6位 无效 无效 有效 无效 测试结果 图7-1 登录无效测试结果图 只要输入不合法数据,提示“请重新输入账号和密码” 7.6.2 学生添加请假单测试 1)日期输入不合法字符,如123,“asdfas” null等字符 “页面刷新 提示重填” 图7-2 请假单无效测试结果图 35 请假管理系统设计与应用 7.6.3 主要功能流程测试 图7-3 请假流程图 正常流程:学生填写请假单;然后提交给班主任;如果3天以内的请假单由班主任直接审批,3天以上的请假单,由班主任提交给院长审批;审批通过的任课老师可以查询,然后更新学生考勤,未通过直接回退给学生,学生重新提交。 提出假设测试: 1)假设学生提交3天以上的请假单(如请假一周),不通过院长审批,直接由班主任审批通过,完成请假流程。 图7-4审批无效测试结果图 测试结果:3天以上的请假,班主任无权限审核,必须传递给院长,由院长审核通过。故假设无效。 2)假设学生提交请假单,不通过班主任和院长审批,直接通过,完成请假流程。 图7-5审批无效结果图 测试结果:没有通过班主任或者院长审批的请假单,是无效请假单,在任课老师页 面无法显示,任课老师也不知道学生在校情况。故假设无效。 36 请假管理系统设计与应用 结束语 历经3个月来的分析与设计,“请假管理系统” 已经基本设计完成。在这几个月的开发过程中,首先强化了编程能力,能够独立的完成J2EE项目从设计到编码,测试,直到上线,其次 ,学到了许多数据库管理软件设计的新思想,对信息管理有了更加全面更具体的认识。另外,通过对 J2EE项目开发,使我对项目开发软件更加熟悉,更加深入的了解了SSH三大框架结合编程的好处,体会到MVC模式下编程开发的完美,也深深体会到了Java语言的使用简便,功能强大。基于请假管理系统,下面对系统做一个总结。 在系统设计开发过程中,主要的工作有: ·对系统的权限及安全设计,主要包括用户权限的,密码保护与修改,比如院长批准3天以上的假期;只有管理员才能做人员增删操作。 ·学生个人资料、学生、教师出勤信息、课程安排系统、班主任综合查询学生出勤、用户增删,用户密码修改、帮助说明和登录退出系统。模块的页面设计及功能的设计实现。页面设计中注重界面友好、简洁大方,容易操作。对于代码部分力求避免出现逻辑错误,算法设计不强点复杂,做到简单合理,对于程序有统一的格式编码,尽量使程序具有较好的可读性,有利于其他的设计者对程序的阅读及其后期修改。 ·对数据库操作的做到稳定运行,访问安全,避免无故的数据库操作异常,并且保证查询满足用户需求,快速无误。 ·保证程序的逻辑结构清晰明了,编程时多使用通用方法比如函数,函数要使用通用窗体函数。 对于这次的毕业设计的软件开发,因为没有相关的经验,做出的设计的切合实际的需求分析紧密度有待提高,不可能完全切合实际,所以在开发过程中遇到了许多棘手的问题。对数据库的设计还不是那么完美,没有更好的做到高效,稳定,安全。异常处理做的还很欠缺。程序代码中还存在不少的问题,这些问题在后期的修改和完善。 在设计时,由于经验和实践的比较少,加上对J2EE开发的项目开发还比较少,还有部分的功能没有实现,在以后慢慢的修改完善,改正问题,力求在设计,开发中做到精确,实用。 37 请假管理系统设计与应用 致 谢 经过几个月的终于把系统设计和毕业论文完成。在此,我首先感谢指导老师徐贞顺老师,你对我进行了无私的指导和帮助,不厌其烦的帮助进行论文的修改和改进在你的指导和帮助下,我对代码和论文进行修改和完善,在论文中遇到许许多多的问题,有的是专业上的,有的是论文格式上的问题,一直得到徐贞顺老师的悉心指导,表示衷心的感谢并致以崇高的敬意。 其次,感谢学校领导,院系各级领导,在大学四年中对我的学习和生活的关心,为我提供良好的学习环境和舒适的生活。 再次感谢陪我走过大学的同学,我们在校园里,一起学习,一起生活,你们给我带来大学的美好回忆,也感谢你们在我做毕业设计时提供的帮助。 最后感谢我的父母,兄弟,为我大学生活提供了生活保障,让我可以专心学习,不分 心去做其他事情,感谢大哥对我论文提出的意见,是我的毕业设计更加完善。 38 请假管理系统设计与应用 参考文献 [1] 莎默维尔 著. 程成,陈霞译《软件工程》(英) [M].北京:机械工程出版社,2007 [2] 王珊 ,萨师煊.《数据库系统概论》[M]. 北京:高等教育出版社,2006 [3] 狄祥义,张耀平.《JSP大学实用教程》[M].北京:电子工业出版社,2007 [4] 闫斐.基于Struts架构J2EE应用软件的设计与开发 [J].微计算机信息, 2006 [5] 李秀芳,张福增.软件复用与Framework框架技术 [M].科学技术与工程, 2006 [6] 孙卫琴.《基于MVC的Java Web设计与开发》[M].北京:电子工业出版社,2004 [7] 杨选辉.《信息系统分析与设计》[M].北京:清华大学出版社,2007 [8] 陈欣.基于SSH2的在线考试系统实训报告 [J].中国知识网,2009:20-31 [9] 李宏立. 使用 Zend Framework 实现 SOAP 服务 [J].中国知识网,2010:35-37 [10] 张重阳.考勤管理系统的设计与实现 [D].中国知识网,2008 [11] 王明亮.关于中国学术期刊标准化数据库系统工程的进展 [J].中国知识网,1998 [12] Bruce Eckel.《Thinking in java》 [M] .Prentice Hall,2006 [13] 王移芝,罗四维.《大学计算机基础教程》[M].北京:高等教育出版社,2004 [14] Jonathan Chaffer, Karl Swedberg.《jQuery基础教程》 [M].人民邮电出版社,2012 [15] Douglas Crockford.《JavaScript : the good parts》[M] . 东南大学出版社, 2009 39 因篇幅问题不能全部显示,请点此查看更多更全内容