【课程设计】 员工请假管理系统.doc_第1页
【课程设计】 员工请假管理系统.doc_第2页
【课程设计】 员工请假管理系统.doc_第3页
【课程设计】 员工请假管理系统.doc_第4页
【课程设计】 员工请假管理系统.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理课程设计报告学 校 : 北京化工大学专 业 : 计算机科学与技术 班 级 : 计科0705班 姓 名 : 许志芳 学 号 : 200740161 指导老师 : 许南山 尚颖 北京化工大学信息科学与技术学院2009 年 1 月 12 日一、设计课题:员工请假管理系统二、系统设计:2.1 需求分析员工请假管理系统是根据企业对员工进行请假管理的需要来设计开发的,目标是给员工提供更加快速、便利的平台,具有对员工请假信息进行管理和维护的功能。2.1.1普通员工对功能的需求添加请假申请:可添加申请请假的信息。查看请假是否被确认:可以查询请假是否已被审核。查看请假历史信息:可查询个人的全部请假信息安全退出:退出当前页面至登录界面2.1.2部门管理员对功能的需求管理请假确认:可以对本部门的员工的请假信息进行确认。查看请假历史信息:可以查询全体员工的全部请假记录。生成统计表:可以生成对全体员工的请假信息的统计表。安全退出:退出当前页面至登录界面。2.2 系统功能描述2.2.1用户登录由于此系统设计不同的用户级别,因此要对不同登录用户分配不同的登录首页,并记录下每个用户的用户名id和级别信息。2.2.2添加请假申请普通员工登录系统后,可以添加请假申请信息,包括员工编号、请假日期、请假类型编号、请假开始时间、请假结束时间和请假原因。2.2.3查看请假是否已审核普通员工登录系统后,可以查看本人申请的请假信息是否已经被审核,可以浏览本人申请信息未被审核列表,包括申请编号、员工编号、请假日期、请假类型编号、请假开始时间、请假结束时间、请假原因,并可以分页和排序显示。2.2.4查看个人请假记录普通员工登录系统后,可以查看本人申请的全部请假信息的列表,包括申请编号、员工编号、请假日期、请假类型编号、请假开始时间、请假结束时间、请假原因、确认标志、确认人,并可以分页和排序显示。2.2.5请假确认部门管理员登录系统后,可以审核本部门的员工的请假申请信息,并可以对员工的请假申请信息进行编辑和确认,包括员工编号、请假日期、请假类型编号、请假开始时间、请假结束时间、请假原因、确认标志、确认人,并可以分页和排序显示。2.2.6查询全体员工请假记录部门管理员登录后,可以浏览全体员工的请假申请记录列表,包括申请编号、员工编号、请假日期、请假类型编号、请假开始时间、请假结束时间、请假原因、确认标志、确认人,并可以分页和排序显示。2.2.7 生成统计表部门管理员登录后,可以浏览所有员工请假信息的统计列表,包括申请日期、员工编号、员工姓名、部门编号、请假类型、请假天数,并可以查看每个员工对应的请假累计天数,并可以分页和排序显示。2.2.8系统备份和恢复部门管理员登录后,可以选择数据库,并可以对所有的请假信息进行备份和恢复,生成以.bak结尾的备份文件。2.2.9安全退出退出本页面,返回至登录页面。2.3功能模块划分在了解了系统的需求分析和功能描述后,可以将员工请假管理系统划分为以下几个模块:(1)用户登录管理:用户登录系统,并划分用户的管理权限。(2)请假申请添加管理:增加普通员工的请假申请信息。(3)请假信息管理:查看个人及所有员工的请假历史记录、请假记录是否被确认、对员工请假信息进行审核。(4)请假统计管理:查看所有员工的请假统计信息。(5)系统备份和恢复管理:进行数据的备份和恢复。(6)安全退出管理:退出当前页面至登录界面。2.4系统流程分析员工请假管理系统在应用时首先需要进行登录操作,根据登录用户的权限实现不同的操作,系统总体使用流程图如下所示:请假申请添加管理普通员工用户登录请假信息管理请假统计管理系统备份和恢复管理安全退出管理部门管理员2.4.1请假申请添加管理请假信息管理提供了员工添加请假申请的功能,请假申请信息添加后不得删除或修改,所以只涉及了请假申请添加管理的功能,其功能流程图如下图所示。请假申请添加管理填写请假申请信息重置提交添加申请记录2.4.2请假信息管理请假信息管理提供了请假申请信息的列表的功能,在此功能中可以查看个人及所有员工的请假历史记录、请假记录是否被确认、对员工请假信息进行审核。其功能流程图如下:请假信息管理请假请假记录确认所有员工请假记录员工个人请假记录请假信息审核审核更新取消2.4.3请假统计管理请假统计管理的主要功能是查看所有员工的请假统计信息,以便企业领导了解每个员工的具体请假信息及请假累计天数。2.4.4系统备份和恢复功能请假统计管理功能的主要功能是提供前台的备份和恢复功能,以防止以外事件发生数据丢失,保护数据的安全。系统备份和恢复选择数据库填写数据库文件名恢复备份取消确定2.4.5安全退出管理安全退出管理是用户退出本次登录并转到登录页面的功能。三、数据库设计:该系统使用的是SQL Server2005数据库管理系统。数据库服务器安装的位置为本机,数据库名称为Employee_Date 。3.1数据库分析和设计3.1.1 用户登录E-R实体图用户登录的实体具有用户id、用户密码、用户权限3个属性,用户登录E-R实体图如下图所示。用户登录用户权限用户密码用户id3.1.2员工信息E-R实体图员工信息的实体具有员工编号、员工姓名、上级员工编号、部门编号4个属性,员工信息的E-R实体图如下图所示。员工信息员工编号员工姓名上级员工编号部门编号3.1.3部门管理员信息E-R实体图部门管理员信息的实体具有部门编号、管理员姓名、管理员编号3个属性,部门管理员信息的E-R实体图如下图所示。部门管理员信息部门编号管理员编号管理员姓名3.1.4请假申请信息E-R实体图请假信息申请的实体具有申请编号、员工编号、请假日期、请假类型编号、请假开始时间、请假结束时间、请假原因、请假累计天数、确认标志、确认人。请假申请信息E-R实体图如下图所示。请假申请信息确认人确认标志请假累计天数请假原因请假结束时间请假开始时间请假类型编号请假日期员工编号申请编号3.2数据表的创建根据E-R实体图的内容,可以创建员工请假管理系统中的各个数据表,在此系统中共涉及到4个数据表的应用,分别如下。3.2.1用户登录表用户登录表(Login)用于存放登录员工请假管理系统中的用户登录信息,用户登录表是判断用户的登录权限必不可少的部分,表中各个字段的数据类型、大小以及简短描述如下表1所示。表1 用户登录表(Login)字段名数据类型大小字段描述User_idChar10用户编号,主键PasswordChar20用户密码AuthorityInt4用户权限3.2.2员工信息表员工信息表(EmployeeInfo)用于存放员工管理系统中所有普通员工的信息,用户信息表是申请请假判断是否有效的基础,表中各个字段的数据类型、大小以及简短描述如下表2所示。 表2 员工信息表(EmployeeInfo)字段名数据类型大小字段描述Employee_idChar10员工编号,主键Employee_NameChar20员工姓名Leader_idChar10上级员工编号Department_idChar10员工所在部门编号3.2.3部门管理员信息表部门管理员信息表(ManagerInfo)用于存放员工管理系统中所有部门管理员的信息。表中各个字段的数据类型、大小以及简短描述如下表3所示。表3 部门管理员信息表(ManagerInfo)字段名数据类型大小字段描述Department_idChar10部门编号Manager_idChar10部门管理员编号,主键Manager_NameChar20部门管理员姓名3.2.4 请假申请信息表请假申请信息表(ApplicationInfo)用于存放员工请假申请信息,表中各个字段的数据类型、大小以及简短描述如下表4所示。表4 请假申请信息表(ApplicationInfo)字段名数据类型大小字段描述Application_NumberInt4申请编号,主键Application_idChar10请假类型编号Application_DateChar10请假日期Employee_idChar10员工编号Leave_StartDateChar10请假开始时间Leave_OverDateChar10请假结束日期Leave_CountDayInt4请假累计天数Confirm_MarkInt4确认标志Confirm_NameChar20确认人Leave_ReasonVarchar500请假原因描述3.2.5 全部信息视图全部信息视图(AllInfomation)用于联系各个表中员工的信息。表中各个字段的数据类型、大小以及简短描述如下表5所示。表5 全部信息视图(AllInfomation)字段名数据类型大小字段描述Application_NumberInt4申请编号Application_idChar10请假类型编号Application_DateChar10请假日期Employee_idChar10员工编号Leave_StartDateChar10请假开始时间Leave_OverDateChar10请假结束日期Leave_CountDayInt4请假累计天数Confirm_MarkInt4确认标志Confirm_NameChar20确认人Leave_ReasonVarchar500请假原因描述Department_idChar10部门编号Manager_idChar10部门管理员编号Manager_NameChar20部门管理员姓名Employee_NameChar20员工姓名Leader_idChar10上级员工编号3.3数据表关系图在员工请假管理系统中各数据表中不存在外键,每个表都有自己独立的主键。3.4创建存储过程在系统中,应用存储过程处理数据事对数据库进行优化的一种方法,所以在此系统中大部分的数据操作都使用了存储过程,这里使用了AddApplication存储过程,它将会在系统程序文件的后台应用中调用。AddApplication存储过程用于向员工信息表中添加新的员工信息,代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER Procedure dbo.AddApplicationApplication_Date char(10),Employee_id char(10),Application_id char(10),Leave_StartDate char(10),Leave_OverDate char(10),Confirm_Mark int,Leave_Reason varchar(500)ASINSERT INTO ApplicationInfo(Application_Date ,Employee_id ,Application_id ,Leave_StartDate ,Leave_OverDate ,Confirm_Mark ,Leave_Reason )VALUES(Application_Date ,Employee_id ,Application_id ,Leave_StartDate ,Leave_OverDate ,Confirm_Mark ,Leave_Reason )四、系统公用模块创建员工请假管理系统中使用了公共模块,包括web.config文件的配置、普通员工和部门管理员标题控件、员工和部门管理员的导航控件和页脚控件。在系统中的Web.config文件中定义了很多配置节处理程序,在此文件中添加了一个节,定义了数据库连接的设置,在其他应用程序的后台程序中可以直接调用此连接的设置,程序代码如下:在系统中页脚控件、普通员工和部门管理员的标题控件、普通员工和部门管理员的导航控件代码基本类似,只是简单的设计。现仅列出普通员工的标题控件的核心代码如下: 员工请假管理系统 五、系统界面和代码的实现这里介绍员工请假管理系统的应用界面和设计代码,但限于篇幅有限,仅介绍部分页面的后台的关键代码,其他的请参照电子版的内容。5.1 员工请假管理系统首页员工请假管理系统页面如下图所示,作为系统首页,登陆页面具有自动导航的功能,不同用户登陆,根据其不同的身份,将进入不同的系统功能页,普通员工页面和部门管理员页面,在用户身份验证通过后,系统有Sesstion变量记录用户名和登录权限,伴随用户对系统进行操作的整个生命周期。5.1.1定义命名空间在下面的程序中定义了Default文件后台应用程序的命名空间,在此,程序开发人员定义了using System.Data.SqlClient和using System.Configuration命名空间,在此,其中using System.Data.SqlClient命名空间用于访问托管空间的SQL Server数据库,而using System.Configuration命名空间提供类和接口,用于以变成方式访问web.config文件。代码如下:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;5.1.2定义登录按钮事件:在下面的代码中定义了用户按下“登陆”按钮后所执行的操作。主要实现了用户身份的验证和根据用户身份,分配不同的界面。在程序中应用了System.Configuration命名空间的ConfigurationSetting.AppSettings属性,获取元素配置节中的配置设置,在此系统中为数据库连接,对于数据连接的方法来说,应用了SqlConnection构造函数,初始化了一个SqlConnection类的新实例,并应用了此实例的open()方法打开了数据库的连接,在此段代码的后面定义了一个select数据查询语句,同时定义了一个SqlCommand实例,并应用了ExecuteReader()方法读取数据库中的数据,最后应用了session变量存储了用户的用户id和用户权限,并根据登录用户的权限分配到不同的系统界面中。定义登录按钮的代码如下:protected void Login_Click(object sender, EventArgs e) string strconn=ConfigurationSettings.AppSettingsConnectionString;SqlConnection conn=new SqlConnection(strconn);conn.Open(); string strsql = select * from Login where User_id= + User_id.Text + and Password= + Password.Text+and Authority=+ Authority.SelectedItem.Value+;SqlCommand cm=new SqlCommand(strsql,conn);SqlDataReader dr=cm.ExecuteReader();if(dr.Read()/保存用户权限SessionAuthority=drAuthority; /保存用户ID SessionLogin_id = User_id.Text;if(SessionAuthority.ToString()=0)/普通员工登录Response.Redirect(main/EmployeeDefault.aspx);else /部门管理员登录Response.Redirect(main/ManagerDefault.aspx);elseWrongNote.Text=登录失败,请检查用户名、密码输入、用户权限!;5.1.3定义重置按钮事件下面的代码定义了用户按下“重置”按钮后的所执行的操作,主要实现了页面的刷新,在此应用Page类的Response属性的Redirect方法将客户端重新定向到员工请假管理系统首页,实现了界面的刷新。protected void Reset_Click(object sender, EventArgs e) Page.Response.Redirect(Default.aspx);5.2 普通员工请假申请页面普通员工请假页面如下图所示,在该页面中需要填写员工编号、请假日期、请假类型、请假开始时间、请假结束时间、请假原因描述。5.2.1定义“提交”按钮事件下面的代码中定义了按下“提交”按钮后所执行的操作,主要实现了请假信息的添加操作,在程序中首先要判断page.Isvalid是否为真,如果为真则定义了一个SqlCommand实例调用AddApplication存储过程,然后将SqlCommand类的CommandType属性值设置为StoredProcedure,即为存储过程,接下来应用Parameters属性获取存储过程的参数,最后应用了ExecuteNonQuery()方法执行存储过程,此方法没有返回值。protected void Apply_Click(object sender, EventArgs e) if (Page.IsValid) SqlCommand cm = new SqlCommand(AddApplication, cn); cm.CommandType = CommandType.StoredProcedure; cm.Parameters.Add(new SqlParameter(Application_Date, SqlDbType.Char, 10); cm.Parameters.Add(new SqlParameter(Employee_id, SqlDbType.Char, 10); cm.Parameters.Add(new SqlParameter(Application_id, SqlDbType.Char, 4); cm.Parameters.Add(new SqlParameter(Leave_StartDate, SqlDbType.Char, 10); cm.Parameters.Add(new SqlParameter(Leave_OverDate, SqlDbType.Char, 10); cm.Parameters.Add(new SqlParameter(Confirm_Mark, SqlDbType.Int, 4); cm.Parameters.Add(new SqlParameter(Leave_Reason, SqlDbType.VarChar, 500); cm.ParametersApplication_Date.Value = Application_Date.Text; cm.ParametersEmployee_id.Value = Employee_id.Text; cm.ParametersApplication_id.Value = Application_id.SelectedItem.Value; cm.ParametersLeave_StartDate.Value = Leave_StartDate.Text; cm.ParametersLeave_OverDate.Value = Leave_OverDate.Text; cm.ParametersConfirm_Mark.Value = 0; cm.ParametersLeave_Reason.Value = Leave_Reason.Text; cm.Connection.Open(); try cm.ExecuteNonQuery(); ApplyMessage.Text = 申请成功,请等待审核; ApplyMessage.Stylecolor = red; catch (SqlException) WrongMessage.Text = 申请失败; WrongMessage.Stylecolor = red; cm.Connection.Close(); 5.2.2员工编号验证事件下面的代码实现了员工编号存在性的验证操作,在程序中应用了select条件查询语句,判断员工编号Employee_id是否存在,如果存在,则将args.IsValid赋值为真。private void EmployeeExist_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args) cn.Open(); SqlCommand cm = new SqlCommand(select * from EmployeeInfo where Employee_id= Employee_id, cn); cm.CommandType = CommandType.StoredProcedure; cm.Parameters.Add(Employee_id, SqlDbType.Char, 10); cm.ParametersEmployee_id.Value = Employee_id.Text; SqlDataReader dr = cm.ExecuteReader(); if (dr.Read() args.IsValid = true; else args.IsValid = false; cn.Close();5.3员工请假确认页面该页面是提供查询请假的申请是否已经被确认,列表显示未被审核的请假申请,页面如下:该页面在前台使用了Gridview功能,sql语句如下:SELECT Application_Number, Application_id, Application_Date, Employee_id, Leave_StartDate, Leave_OverDate, Leave_Reason, Confirm_Mark, Confirm_Name FROM ApplicationInfo WHERE (Employee_id = Employee_id) AND (Confirm_Mark = Confirm_Mark) ORDER BY Application_Number DESC5.4 请假历史记录该页面是提供查询员工个人的全部请假历史信息记录,可以分页显示信息和排序,列出了请假编号、员工编号、请假日期、请假类型、请假开始时间、请假结束时间、请假原因。页面如下:该页面在前台使用了Gridview功能,sql语句如下:SELECT Application_Number, Application_id, Application_Date, Employee_id, Leave_StartDate, Leave_OverDate, Confirm_Mark, Confirm_Name, Leave_Reason FROM ApplicationInfo WHERE (Employee_id = Employee_id ) ORDER BY Application_Number, Confirm_Mark5.5 请假确认页面该页面提供了部门管理员审核本部门员工的请假申请信息,可以对请假申请信息进行审核和编辑,可以进行分页显示和排序。列出了请假编号、员工编号、请假日期、请假类型、请假开始时间、请假结束时间、请假原因、确认标志、确认人。页面如下:该页面在前台使用了Gridview功能,sql语句如下:SELECT Application_Number, Leave_StartDate, Leave_OverDate, Confirm_Mark, Confirm_Name, Leave_Reason, Application_Date, Employee_id, Employee_Name, Application_id FROM AllInfomation WHERE (Manager_id = Manager_id) AND (Confirm_Mark = Confirm_Mark) ORDER BY Application_Number5.6 查询请假记录页面该页面实现了部门管理员可以查看所有员工的请假记录,可以进行分页显示和排序。列出了请假编号、员工编号、请假日期、请假类型、请假开始时间、请假结束时间、请假原因、确认标志、确认人。页面如下所示:该页面中使用了视图查询,sql语句如下:SELECT Application_Number, Leave_StartDate, Leave_OverDate, Confirm_Mark, Confirm_Name, Leave_Reason, Application_Date, Employee_id, Employee_Name, Application_id FROM AllInfomation WHERE (Manager_id = Manager_id) AND (Confirm_Mark = Confirm_Mark) ORDER BY Application_Number5.7 生成统计表该页面实现了部门管理员对所有员工的请假信息的统计功能,列出了申请日期、员工编号、员工姓名、部门编号、请假类型、请假时间和每个员工的请假累计天数,可以进行排序和分页显示。页面如下:5.8 备份信息页面该页面实现了系统数据的备份与恢复功能,从而保证了数据的安全。操作简单,界面美好。页面如下:该页面的后台代码如下所示:public partial class main_MBackup : System.Web.UI.Page SqlConnection conn; protected void Page_Load(object sender, EventArgs e) string strconn = ConfigurationSettings.AppSettingsConnectionString; conn = new SqlConnection(strconn); if (!Page.IsPostBack) /在CollectDatabase中绑定所有数据库 SqlCommand command = new SqlCommand(sp_helpdb, conn); command.CommandType = CommandType.StoredProcedure; conn.Open(); SqlDataReader reader = command.ExecuteReader(); CollectDatabase.DataSource = reader; CollectDatabase.DataTextField = Name; CollectDatabase.DataBind(); reader.Close(); conn.Close(); protected void Co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论