学生考勤管理信息系统的设计与实现-毕业论文设计.doc
学号20090801050108 密级_ 兰州城市学院本科毕业论文 学生考勤管理信息系统的设计与实现学 院 名 称:信息工程学院专 业 名 称:计算机科学与技术学 生 姓 名:高国诚指 导 教 师:朱正平 教授 二一三年五月BACHELOR'S DEGREE THESIS OF LANZHOU CITY UNIVERSITYDesign and implementation of student attendance manage information systemCollege :School of Information EngineeringSubject :Computer science and technology Name :Gao Guocheng Directed by : Zhu Zhengping Professor May 2013郑 重 声 明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。本人签名: 日期: 摘 要 目前社会上信息管理系统发展飞快,智能化信息处理已是提高效率、规范管理、客观审查的最有效途径。学生考勤管理是学生信息管理的重要部分,面对大量的学生信息,采用人力处理将浪费大量的时间、人力和物力,而且统计数据麻烦。一个学校对其学生日常教学过程中的出勤和缺勤进行统计,用计算机对统计数据进行统计分析处理,得到我们所需要的各种统计报表和考勤原始数据,方便了学校对学生的管理。本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。本系统总体上由三大功能模块:请假系统、考勤系统和权限管理,涉及到高校六大类用户:学生、任课老师、班主任、院系领导、学校领导、系统管理员。本学生考勤管理系统采用了JAVA技术,以Tomcat为JAVA服务器、My SQL为数据库系统毕业设计,建立了一个基于B/S模式的三层体系的学生考勤管理网站,实现了网上考勤任务。关键词:考勤管理;在线请假;权限管理ABSTRACT At present the social development of information management system for fast, intelligent information processing is the most effective way to improve efficiency, standardize management, objective review. Student attendance management is an important part of student information management, in the face of a large number of student information, using manpower processing will waste a lot of time, manpower and material resources, and statistical data. A school daily teaching process in attendance and absence of student statistics, to analyze the statistical data by a computer, get all kinds of reports and attendance data we need, to facilitate the school management of students.The system is an information system for current college students and the students leave school attendance line management and design. The overall system consists of three functional modules: leave system, attendance system and authority management, involves six major categories of university users: students, teachers, class teachers, faculty leadership, school leadership, the system administrator. The student attendance management system using JAVA technology, using Tomcat as JAVA server, My SQL as database system, set up a web site based on the student attendance management system of three layers B/S, realize the online attendance task. Key words: attendance management;the online attendance;authority management目 录第1章 绪论11.1 系统开发背景11.2 开发目的和意义1第2章 需求分析22.1 用户需求描述22.1.1学生用户需求描述22.1.2任课老师用户需求描述22.1.3班主任用户需求描述22.1.4院系领导用户需求描述22.1.5校领导用户需求描述32.1.6系统管理员用户需求描述32.2 功能需求描述32.3 相关开发工具简介32.3.1 JSP简介42.3.2 Mysql简介42.3.3 MyEclipsed简介42.4 系统关键技术42.4.1 B/S架构42.4.2 SSH框架5第3章 总体设计63.1系统布局设计63.2总体结构图63.3系统功能流程图73.4数据库设计与实现93.4.1 E-R模型93.4.2数据库的建立93.4.3数据库逻辑设计103.4.4数据库表的创建10第4章 系统实现204.1登陆界面的设计与实现204.1.1 用户登录界面204.2管理员主界面的设计与实现204.2.1管理员主界面204.3添加基础信息界面的设计与实现234.3.1 基础信息的设计与实现234.3.2 用户管理界面的设计与实现234.4 课程管理的设计与实现274.4.1 课程管理的增删改查284.5考勤记录的设计与实现294.5.1 信息录入的设计与实现294.6请假管理的设计与实现324.6.1 学生请假的设计与实现32第5章 软件测试355.1测试方案355.1.1黑盒测试355.1.2白盒测试355.1.3其他测试方案355.1.4本系统所采用测试方案365.2 测试过程365.2.1用户登录测试36总结42参考文献43致谢44第1章 绪论1.1 系统开发背景随着教育事业的飞速发展,我国的教育水平已经跃上了一个更高的平台:普及九年义务教育,本科生、硕士研究生的大量扩招,各高等院校及地州院校的新建与升级,越来越多的学子走进了大学的殿堂,这意味着学生的考勤管理信息任务越来越复杂、繁重,传统的考勤管理系统已无法承担当前的信息量,快速、高效的完成学生考勤信息管理的任务,无法减轻考勤管理人员的工作量与工作压力。传统的考勤方式,不能及时将学生的考勤信息进行登记、更新,也可能存在不公平的现象,比如:有的学生逃课,老师点名了,他就去找班主任请假,补个假条,取消自己的缺席记录等等 种种背景使得学校若要快速稳定发展,就必须从加强信息化入手,在各种领域都进行信息化管理,在考勤管理方面也不例外,然而各高校却不太重视考勤管理方面的建设、加强与发展。1.2 开发目的和意义由于我校的考勤管理模式还是以任课老师上课点到,以及学生会的学生干部、干事课堂查勤来管理。同时学生请假需要经过系辅导员、系部领导批准才能生效。对于考勤结果,需要进行数据信息的录入以及数据信息的统计,这样比较麻烦且费时费力,出现误差的概率也比较大。更重要的是暴露出了以下的弊端:一、学生请假不方便;二、学生请假对任课老师不透明。三、学生对自己整个学期的上课出勤情况没有整体的统计信息。四、院系领导、学校领导不能把握住学生的上课出勤情况。由于以上原因,我们小组决定开发学生考勤管理系统,以方便学校对学生的考勤进行管理。 基本运行要求:我组所开发的软件能在校内所有计算机上基于WINDOWS系统运行同时所开发的软件能与学校教务管理系统相衔接,进一步完善学校教务管理系统的功能。安全要求:登陆系统时,需验证身份和密码,只有通过验证的身份才能进入系统进行相关的操作。系统间信息的传递也需要进行安全设置,以防止学生的考勤信息被恶意篡改。第2章 需求分析2.1 用户需求描述2.1.1学生用户需求描述学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。在线请假需求:学生可以在线请假,并且可以随时查看请假的详细进展情况。查看出勤信息需求:学生可以查看自己在不同时段的出勤情况的详细信息。其它需求:查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名等,以及修改个人用户密码。2.1.2任课老师用户需求描述任课老师对系统的主要需求是:管理所教班级学生的上课出勤信息以及查看所教班级学生的上课出勤信息。管理学生上课出勤需求:考勤表随着时间的变化,自动列出还没有在网上公布的学生上课出勤信息,系统自动根据学生请假系统,决定学生上课出勤的最终结果。查看学生出勤信息需求:查看所教班级学生整个学期出勤统计信息。其它需求:查看本人基本信息以及修改个人用户密码等。2.1.3班主任用户需求描述班主任对系统的主要需求是:查看本班学生上课出勤信息。查看出勤信息需求:输入查询条件后,系统根据查询条件列出本班学生相关的上课出勤信息。其它需求:查看本班学生的基本信息以及修改个人用户密码等。2.1.4院系领导用户需求描述院系领导对本系统的主要需求是:查看本院学生本学期所有课程的上课出勤信息。查看学生上课出勤信息需求:查看本院学生整个学期有关课程的出勤统计信息及详细信息。 其它需求:查看本院学生的基本信息以及修改个人用户密码等。2.1.5校领导用户需求描述学校领导对系统的主要需求是:查看全校学生上课出勤信息。查看出勤信息需求:输入查询条件后,系统根据查询条件列出本校学生相关的上课出勤信息。其它需求:查看有关全校的基本信息以及修改个人用户密码等。2.1.6系统管理员用户需求描述系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对各用户的权限管理的设计,基本功能需求如下:(1)管理学校各院系、学工办、专业、班级的添加、删除、修改等。(2)管理系统所有用户。(3)管理全校课程。(4)管理系统的所有考勤信息。2.2 功能需求描述根据各类用户的需求描述,系统应当具备请假系统、考勤管理系统、后台管理系统这三大主要功能。 请假系统功能需求:通过班主任以及院系领导批准请假信息。请假最长时间不能超过1个月,特殊情况除外。 考勤管理功能需求:任课老师通过考勤管理系统,对学生上课出勤信息进行公开。请假系统要借助班主任才能完成,考勤管理系统要借助请假系统、班级课表安排才能完成,然而每学年课表都在变化,班主任安排在变化,学生在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确的更新系统数据。2.3 相关开发工具简介根据各用户的需求,以及系统各大功能的需求,经过大量的调查分析,针对本高校学生考勤管理系统选择以下开发工具进行开发:开发语言:Java、JSP、JavaScript数据库:Mysql Server 5.5、Squiggly Enterprise 系统环境: JDK 1.6以上版本、apache-tomcat-6.0.26以上版本开发工具:MyEclipsed 10 2.3.1 JSP简介JSP的全称是Java Serialist Pages,它是由Sun Micro systems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它在传统的静态页面文件(*.HTML,*HTML)中加入Java程序片段和JSP标记,就构成了JSP页面。由Web服务器上的JSP引擎来处理JSP元素,生成调用Bean,并用JDBC访问数据库(或文件),最后以HTML或XML的形式返回浏览器。JSP在Serialist类中编译,编译一次后存入内存,以后再调用时,不用再编译,所以速度很快。2.3.2 Mysql简介Mysql是一个精巧的SQL数据库管理系统,而且是开源的数据管理系统。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。2.3.3 MyEclipsed简介Eclipsed企业级工作平台(Eclipsed Enterprise Workbench ,简称Eclipsed)是对Eclipse的扩展,利用它我们可以在数据库和Java Ee的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Java Ee集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,JavaScript,Spring,SQL,Hibernate。2.4 系统关键技术一个系统的开发,自然要询问一下自己“该采用什么技术开发呢?”。学生考勤管理系统的开发中,我运用了现在比较流行的各类框架技术,比如主流技术:B/S架构、SSH框架。2.4.1 B/S架构学生考勤管理系统采用了当前很流行的B/S模式结构。相对于以往的主机/终端、C/S机构来说,B/S结构更具有优势。B/S结构是Browser/Server(浏览器服务器)模式,它是对C/S模式应用的扩展。在这种结构下,只要安装维护一个服务器(Server),用户工作界面就可以通过IE浏览器来实现的。随着科技日新月异,C/S两层结构暴露出了许多弊端,如:灵活性差、升级困难、维护工作量大等等,很显然这种结构已较难适应当前信息技术与网络技术发展的需要。随着WEB技术的日益成熟,B/S结构已经成为取代Client/Server(简称C/S)结构的一种全新技术。它主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(JavaScript)成为一种全新的软件系统构造技术。2.4.2 SSH框架相对于S2SH框架而言,大家或许更熟悉SSH框架,即:Struts框架、Spring框架、Hibernate框架。而S2SH框架的应用中,只是把Struts框架改成了Struts2框架。S2SH框架是由Struts2、Spring和Hibernate三大框架合成的一种新型的Web应用框架技术。Struts2构建成Web层,而Struts2和Spring集成为业务层,Spring和Hibernate集成为持久层,符合J2EE应用的分层结构。S2SH以Spring为核心部件,向上集成Struts2,向下集成Hibernate,充分发挥了三者各自的优势,具有很好的低耦合,扩展性和复用性。 第3章 总体设计3.1系统布局设计系统页面采用框架来设计,不同的用户有不同的功能菜单,但都有统一的风格,这给页面的使用和维护都带来了很大的便利,特别是在代码重用方面起了很大作用。本系统各用户的页面设计如图3.1所示:页面主体功能菜单BannerBottom3.1 页面设计图 1.Banner区可以在此展示系统标识、页面归属等信息。 2.功能菜单区提供系统可供操作的功能列表。 3.页面主体区显示页面格式化数据页面主体区显示的内容,将依据页 面在系统中的作用而定。 4.Bottom区可以在此显示系统当前在线人数及在线用户的信息。3.2 总体结构图 根据系统功能的要求,高校学生考勤管理系统各个模块之间的层次结构如图3.2所示:注:文中所提到的教师包括(任课教师、班主任、院校领导)注:用户包括(学生、任课教师、班主任、院领导、校领导)高校学生考勤管理系统请假系统考勤系统后台管理统计查询图3.2 系统功能结构示意图 3.3系统功能流程图(1)主功能流程如图3.5所示开始用户登录基础信息管理权限管理课程管理考勤记录请假管理统计查询退出系统结束图3.5 主功能流程图 (2)各个模块功能细化如下图3.6、3.7、3.8所示权限管理管理员角色管理按钮管理菜单增删改按钮权限细化按钮增删改查角色分配权限用户分配角色角色增删改图3.6 权限管理功能细化教师管理员基础信息管理员管理员用户管理教师所有用户教师班级增删改学工办增删改院系增删改用户增删改用户密码重置用户查询所有用户管理员教师3.7 基础信息管理功能细化考勤记录考勤增删改查教师教师课程管理教师请假管理学生请假审核请假申请课程增删改管理员3.8 其他各模块功能细化学生请假请假成功班主任审批院校领导审批请假失败查看查看同意不同意不同意条件不符3.9 请假模块细化注:条件是指三天以上十五天以内的请假要通过院领导的审批,超过十五天的请假就得要通过校领导。3.4数据库设计与实现3.4.1 E-R模型缺勤情况学号姓名性别班级学生出勤出勤记录任课教师提交请假请假记录提交专业学院ID姓名班级课程应到人数实到人数上课时间111n1n1n审批人1n注:审批人包括:班主任、院校领导3.4.2数据库的建立建立数据库有两种方法:(1)使用mysql server命令建立数据库;(2)使用辅助工具sqlyog enterprise命令创建数据库。以下主要用第二种方法:打开MySQL,登录之后,选择新建数据库命令,给数据库起名为lzcu。然后通过设计器创建数据表,刚才已经说明了需要不同的数据表来分管,它们分别是“sys_user”,“work_course”,“work_attendance”等,有关这些数据表的信息见下表。3.4.3数据库逻辑设计根据系统功能设计的要求以及功能模块的划分,对于系统数据库,可以列出以下主要的数据表以及数据表项:按钮表:按钮名称、按钮图片路径、是否启用等。代码表:上一级代码、代码名称、代码值、在用标志等。代码分类:代码分类名称、代码分类描述、排序、在用标志等。院校表:院校名称、是否叶子节点、排序号、在用标志等。菜单表:菜单名称、上级菜单编码、排序号、菜单类别、菜单动作、是否叶子节点、是否在用等。角色表:角色名称、角色描述等。院办/学工办/班级表:部门名称、部门类型、部门负责人等。用户表:用户编码、用户名、是否超级用户、是否在用等。课程表:课程编码、课程名称等。考勤记录表:课程名称、任课老师、记录时间、班级、缺勤人数等。请假信息表:请假原因、请假理由、请假天数、申请时间、申请人、审批人、审批结果等。审核表:审批时间、审批人、审批结果等。3.4.4数据库表的创建根据数据库需求的分析,建立如下基本数据表。系统表表3.1 Sys_button(按钮表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号BUTTONIDvarchar(50)Not Null按钮编码BUTTONNANMEvarchar(100)Not Null按钮名称SORTNUMint(11)排序号BUTTONACTIONvarchar(100)按钮动作DIRECTIONvarchar(30)按钮动作方向ICONPATHvarchar(100)按钮图标路径PICPATHDOWNvarchar(100)选中时按钮图片路径PICPATHUPvarchar(100)未选中时按钮图片路径BUTTONDESCvarchar(200)按钮描述ISRUNNINGvarchar(2)是否启用表3.2 sys_codetype (代码分类表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号CODETYPEIDvarchar(50)Not Null代码分类编码CODETYPENANMEvarchar(100)Not Null代码分类名称CODETYPEDESCvarchar(200)代码分类描述SORTNUMint(11)Not Null排序APPFLAGvarchar(2)Not Null在用标志:使用是1,不使用是0表3.3 sys_divisions(行政区划表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号DIVISIONIDvarchar(50)Not Null院校编码DIVISIONNAMEvarchar(100)Not Null院校名称FATHERIDvarchar(50)Not Null上级院校编码FULLNAMEvarchar(200)院校全称DIVISIONTYPEvarchar(10)院校类型(0:公立,1:私立)AREAdouble(18,4)辖区面积(平方公里)DIVISIONDESCtext院校简介ISLEAFNODEvarchar(2)Not Null是否叶子节点(0:否,1:是)ISHAVEUNITvarchar(2)Not NullSORTNUMint(11)排序号APPFLAGvarchar(2)Not Null在用标志:使用是1,不使用是0表3.4 sys_menu(菜单表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号MENUIDvarchar(50)Not Null菜单编码MENUNAMEvarchar(200)Not Null菜单名称FATHERIDvarchar(50)Not Null上级菜单遍码MENUDESCvarchar(200)菜单描述SORTNUMInt(11)排序号ACTIONURLvarchar(200)菜单动作DIRECTIONvarchar(30)菜单动作方向(本窗体、弹出、根窗体)MENUTYPEvarchar(30)菜单类别SUPERUSERvarchar(2)超级用户使用ICONPATHvarchar(100)按钮图标路径PICPATHDOWNvarchar(100)选中时按钮图片路径PICPATHUPvarchar(100)未选中按钮图片路径ISLEAFNODEvarchar(2)Not Null是否叶子节点(0:否,1:是)APPFLAGvarchar(2)Not Null是否启用(1:启用;0:禁用)表3.5 sys_menu_button(菜单拥有权限)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号ROLEMENUIDvarchar(50)Not Null菜单编码自增)BUTTONIDvarchar(50)Not Null按钮编码BUTTONLOCAvarchar(200)按钮位置表3.6 sys_role(角色表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号ROLEIDvarchar(50)角色编码(自增)ROLENAMEvarchar(100)Not Null角色名称ROLETYPEvarchar(30)角色类别ROLEDESCvarchar(200)角色描述表3.7 sys_role_menu(角色拥有菜单权限)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号ROLEIDvarchar(50)Not Null角色编码(自增)MENUIDvarchar(50)Not Null菜单编码表3.8 sys_unit(部门表,即行政区划所辖单位表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null部门编码UNITIDvarchar(50)Not Null部门编码DIVISIONIDvarchar(50)Not NullFATHERIDvarchar(50)Not Null上级部门编码UNITNAMEvarchar(200)Not Null部门名称UNITTYPEvarchar(50)班级类别(班级、学工办、院办、其他)UNITDESCtext班级/学工办/院办简介STAFFNUMInt(11)班级人数/办公室人数LEADERNUMvarchar(50)班主任/学工办主任/院办主任CONTACTvarchar(100)班长/学工办联系人TELEPHONEvarchar(100)联系电话FAXvarchar(30)传真ADDRESSvarchar(100)联系地址ZIPCODEvarchar(30)邮政编码WEBURLvarchar(100)主页URLEMAILvarchar(100)EMAILSORTNUMInt(11)排序号ISLEAFNODEvarchar(2)Not Null是否叶子节点(0:否,1:是)ISHAVEUSERvarchar(2)Not Null是否存在人员DELFLAGvarchar(2)Not Null删除标志表3.9 sys_user字段名字段类型默认主/外键字段约束说明IDvarchar(50)PNot Null自增序号UNITIDvarchar(50)Not Null学院/班级编码USERIDvarchar(50)Not Null用户编码(教师工号、学生学号)USERNAMEvarchar(100)用户名(教师姓名、学生姓名)PASSWORDvarchar(200)123456Not Null用户密码USERTYPEvarchar(30)用户类型(1.老师2.学生3.其他人员)ISDEPvarchar(2)是否班级ISSUPERvarchar(2)是否超级用户SORTNUMint(11)Not Null序列号APPFLAGvarchar(2)0账户状态:正常为0;禁用为1;默认为0IDCARDvarchar(30)身份证号SEXvarchar(10)性别BIRTHDAYvarchar(30)出生日期TELPHONEvarchar(100)联系电话MOBILEvarchar(100)手机号码POSITIONvarchar(30)职务POSTvarchar(30)职位POLITICALvarchar(10)政治面貌NATIONvarchar(10)民族EMAILvarchar(100)邮箱QQvarchar(100)QQMSNvarchar(100)MSNADDRESSvarchar(100)住址PHOTOvarchar(100)照片USERDESCtext用户描述表3.10 sys_user_role字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号USERIDvarchar(50)Not Null用户编码ROLEIDvarchar(50)Not Null角色编码工作表表3.1 work_askapply(请假表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot Null自增序号APPLYTIMEvarchar(30)申请时间APPLYDAYNUMint(30)申请天数APPLYERvarchar(30)申请人APPLYERIDvarchar(50)申请人IDAPPLYREASONtext申请原因CHECKSTUTEvarchar(2)审批结果CHECKERvarchar(30)审批人CHECKERIDvarchar(50)审批人ID表3.2 work_attendance(出勤表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNot NullIDCOURSEIDvarchar(50)课程IDCOURSENAMEvarchar(50)课程名称CLASSIDvarchar(50)班级IDCLASSNOvarchar(50)班级名称CLASSROOMTEACHERIDvarchar(50)任课老师IDCLASSROOMTEACHERvarchar(50)任课老师TOTALNUMint(11)应到人数REALNUMint(11)实到人数ASKDAYNUMint(11)请假人数ASKERIDtext请假者IDASKERtext请假者NOATTENDNUMint(11)旷课人数NOATTENDANTIDtext旷课者IDNOATTENDANTtext旷课者REMARKSvarchar(100)备注ADDERIDvarchar(50)Not Null添加人编码ADDERvarchar(100)Not Null添加人ADDERUNITIDvarchar(50)Not Null添加学院编码ADDERUNITvarchar(100)Not Null添加学院ADDTIMEEvarchar(30)Not Null添加时间DELFLAGvarchar(2)Not Null删除标志表3.3 work_check(审核表)字段名字段类型主/外键字段约束说明ID