员工管理_员工签到管理系统_第1页
员工管理_员工签到管理系统_第2页
员工管理_员工签到管理系统_第3页
员工管理_员工签到管理系统_第4页
员工管理_员工签到管理系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

张世超 员工签到管理系统 软 件 学 院三级实践课题系统名称: 员工签到管理系统 专 业: 计算机信息管理 班 级: 信管111 学生姓名: 张世超(40) 2013 年 1 月 17 日三级实践课题设计任务书姓 名张世超 信息管理 专业 111 班题 目员工签到管理系统设计任务本系统以服务用户为中心,能够实现分类别管理。管理员对员工的考勤情况、部门的管理,员工管理,同时员工也可以进入系统对自己的个人信息进行查询。系统功能主要包括:l 员工签到管理l 员工签退管理l 考勤统计l 部门管理l 员工管理时间进度第17周:( 2012.12.31 2013.1.6 ):系统需求分析,进行界面设计;设计系统的数据库结构进行分析、设计,并通过画E-R图的方式来帮助实现数据库结构的完整设计,列出数据库数据表,之后以列出的关系模型为依据进行第18周:(2013.1.72013.1.14):对系统进行详细的分析设计,根据不同的功能模块,对其进行相应的编码及测试;第19周:(2013.1.15 2013.1.22 ):对系统进行测试和纠错,进一步完善其功能,之后进行报告总结,交与老师验收。原 主始 要资 参料 考与 文 献01李春葆, C#程序设计教程M ,北京:清华大学出版社, 2010.102何玉洁,数据库原理与应用教程M,北京:机械工业出版社, 2010.8指导教师签字: 年 月 日摘 要本文设计的员工签到管理系统是为了更好,更方便的管理公司员工考勤的信息。此系统主要包括员工基本信息,员工签到管理等几个大模块。每个大模块又分成了几个小的模块,如员工基本信息模块又分成了员工列表,扩展信息,离职管理等小的模块。每个模块都完成了其相关信息的添加、修改、删除、查询和查看的功能,如员工列表模块就实现了员工信息的添加,修改,删除,查看和查询。在开发此系统时用了代码生存器,生成了与数据库有关的一些代码以及一些常用的存储过程如记录的添加,删除和修改存储过程。通过代码生成器生成的代码将数据访问层的很好的封装了起来,大大的提高了开发的效率。系统功能的实现大大提高了公司管理员工信息的效率。关键词:员工签到管理;员工签退管理;考勤统计; 目 录摘 要3第1章 绪 论51.1 课题背景51.2 研究内容51.3 分工及排序5第2章 需求分析62.1 业务分析62.2 功能需求分析6第3章 概要设计83.1 数据库概要设计83.1.1 表的设计83.1.2 实体关系图8第4章 系统设计104.1 数据库详细设计104.2界面设计124.2.1员工操作界面 员工信息查询 员工密码修改134.2.2管理员操作界面 员工信息管理 员工信息添加 时间管理 添加时间段 签到查询 签退查询 考勤统计19第5章 运行及测试21第6章 结束语23指导教师评语:25附录 系统相关代码26第1章 绪 论1.1 课题背景目前市场上流行的员工签到管理系统能够完成大多数的考勤任务,其硬件系统做的相当完善,但与之相对应的管理软件的功能还不够完全,少了一些必须的考勤项目,如员工签退管理、请假管理等等。在对员工签到管理系统进行详细的需求分析的基础上,对目前员工签到管理系统做了一些改进,添加必要的员工管理项目,并对已有的项目有针对性的优化,使系统能有效的帮助企业进行人力资源管理,通过代码生成器生成的代码将数据访问层的很好的封装了起来,大大的提高了开发的效率。系统功能的实现大大提高了公司管理员工信息的效率。1.2 研究内容员工签到管理系统主要实现对员工的考勤进行管理,同时,也实现了对不同员工所属不同部门进行管理以及对考勤进行统计,员工管理系统主要实现了一下功能:l 员工签到管理l 员工签退管理l 考勤统计l 员工管理1.3 分工及排序分工及排序如图所示:图1-1分工及排序序号姓名功能1周苑签到、签退,考勤统计2张世超员工管理3翟让时间管理、签到查询第2章 需求分析2.1 业务分析员工签到管理系统首先分为不同的管理身份,它主要由管理员对其进行操作,管理员主要对所有员工签到和签退进行管理,同时也可以对员工的离职、调动、招新以及对员工信息查询等,也可以对制度进行更改、查询、添加以及删除等,同时,管理员可以对上、下班时间及签到时间或签退时间进行管理,也可以对部门的添加、修改、查询以及对删除等,管理员也可以根据不同的条件对员工签到以及签退信息进行统计。2.2 功能需求分析经业务分析,员工签到管理系统主要适用于事业型企业,系统需要实现以下功能:1、 员工签到:员工可以根据自己的员工编号和密码在登陆界面中对自己上班时间进行记录(这个记录只是员工根据自己信息进行签到)。1) 员工进入系统,员工输入自己的员工编号和密码,点击签到,系统根据员工输入的员工编号和密码判断输入是否合法,如果合法并且签到时间早于时间表里的上班时间,则签到成功,若签到时间晚于时间表里的上班时间,则登录系统中的签到按钮则会变灰,不能签到;否则,提示签到失败;2) 签到成功的话,系统根据员工签到的相关信息和系统当前时间把签到信息插入到签到表里; 2、员工签退:员工可以根据自己的员工编名和密码在登陆界面中对自己下班时间进行记录(这个记录只是员工根据自己信息进行签退)。1) 员工进入系统,员工输入自己的员工编号和密码,点击签退,系统根据员工输入的员工编号和密码判断输入是否合法,如果合法并且签退时间晚于时间表里的下班时间,签退成功,若签退时间早于时间表里的下班时间,则登录系统中的签到按钮则会变灰,不能签到;否则,提示签到失败;2) 签退成功的话,系统根据员工签退的相关信息和系统当前时间把签退信息插入到签退表里;3、时间管理: 管理员可以根据公司要求对签到时间进行管理,包括对时间的更改、查询工作时间段以及对添加工作时间段(上午、下午、晚上)等(上班时间就是签到截止时间,下班时间就是签退开始时间)。1) 当网页显示时,把时间表里数据加载到控件中供管理员查询,管理员可以对时间段进行更新、查询、添加(上午、下午、晚上),点击相应的按钮对时间进行管理操作;2) 管理员对时间段更改后,时间表里也会进行更新并保存;4、员工管理:管理员根据人员的变动,进行一系列的操作如人员的招新、员工的调动、员工的离职以及对员工信息查询等。1) 如果管理员需要对员工进行管理,经过系统验证身份的合法性后方可登录系统,选择员工管理导航按钮进入员工管理网页;2) 当网页显示时,把员工表里数据加载到控件中供管理员查询,管理员可以对员工的离职、调动、查询、招新进行管理,点击相应的按钮对员工进行操作;3) 管理员对员工信息更改后,员工表里也会进行更新并保存;5、考勤统计:根据员工签到记录进行管理,包括对员工所在的部门、早退次数、迟到次数、签到时间、签退时间等进行统计。1) 如果管理员需要对员工考勤进行管理,经过系统验证身份的合法性后方可登录系统,选择员工考勤管理导航按钮进入考勤管理网页;2) 当网页显示时,把员工表里数据加载到控件中供管理员查询,管理员根据员工所在的部门、早退次数、迟到次数、签到时间、签退时间等进行对员工的考勤进行统计(考勤信息无法修改);第3章 概要设计3.1 数据库概要设计 对于员工签到管理系统的数据库设计,本文将从以下几个方面进行描述:首先是概念模型描述,包括对系统的实体属性分析及系统的E-R图,然后是系统的逻辑结构设计,即给出系统的数据库设计表结构及描述。3.1.1 表的设计 整个系统各实体和联系可用以下关系来表示(其中主键已用下划线标识):l 员工信息表(tb_StaffInfo):员工编号、部门编号、员工名、密码、职务、性别、年龄、出生日期、联系方式、联系地址;l 时间表(tb_Time):时间段编号、部门编号、时间段名称(分为上午、下午)、签到时间、上班时间、签退时间、下班时间;l 员工签到表(tb_StaffReach):签到编号、员工编号、部门编号、职务、性别、签到时间; l 员工签退表(tb_StaffBack):签退编号、员工编号、部门编号、职务、性别、签退时间;l 部门表(tb_Department):部门编号、部门名称;l 考勤统计表(tb_Count):员工编号、部门编号、员工名、部门名称、职务、性别、年龄、类别、早退(迟到)次数、考勤是否有效、签到(签退)时间。3.1.2 实体关系图在分析过系统各实体之间的联系后可得出系统的整体概念模型,用E-R图表示出来,如图所示的。员工部门时间所属考勤信息签到签退1n11nnnn部门编号部门名称密码性别职务员工名员工编号年龄出生日期联系地址联系方式签到时间下班时间上班时间时间段名称时间段编号签退时间部门编号状态签到时间签退时间图3.1 E-R图第4章 系统设计 为了方便用户的操作,系统采用了模块化设计的思想,通过各模块的不同组合以实现不同的增、删、改、查功能。最终,使该系统能够具有规范化的格式、完整的信息量和易于查询等的特点。4.1 数据库详细设计该系统数据库采用SQL Server 2005 数据库。整个数据库系统共有员工信息表,时间表,员工签到表,员工签退表,部门表,考勤统计表六个表组成所有数据表的表结构如下:1. 员工信息表该表主要用来记录员工信息,其表结构如表4-1所示:表4-1 员工信息表(tb_StaffInfo)字段名称数据类型数据约束说明StaffIdNvarchar(20)主键员工编号DepartIdNvarchar(20)部门编号StaffNameNvarchar(20)员工名KeysNvarchar(20)密码PriviligesNvarchar(20)职务GenderNvarchar(20)性别AgeNvarchar(2)年龄BirthdayNvarchar(50)出生日期PhoneNvarchar(20)联系方式AddressNvarchar(20)联系地址2. 时间表该表主要记录了上下班时间等,其表结构如表4-2所示:表4-2 时间表(tb_Schedule)字段名称数据类型数据约束说明SchIdNvarchar(20)主键时间段编号DepartIdNvarchar(20)部门编号SchNameNvarchar(20)时间段名称CheckInTimeNvarchar(50)签到时间StartTimeNvarchar(50)上班时间CheckOutTimeNvarchar(50)签退时间EndTimeNvarchar(50)下班时间3. 员工签到表 该表主要记录了员工签到信息,其表结构如表4-3所示:表4-3 员工签到表(tb_StaffReach)字段名称数据类型数据约束说明CheckInNvarchar(50)主键签到时间StaffIdNvarchar(20)员工编号DepartIdNvarchar(20)部门编号PriviligesNvarchar(20)职务GenderNvarchar(20)性别 4. 员工签退表 该表记录了员工签退信息,其表结构如表4-4所示:表4-4 员工签退表(tb_StaffBack)字段名称数据类型数据约束说明CheckOutNvarchar(50)主键签退时间StaffIdNvarchar(20)员工编号DepartIdNvarchar(20)部门编号PriviligesNvarchar(20)职务GenderNvarchar(20)性别 5. 部门表 该表详细记录了部门信息,其表结构如表4-5所示:表4-5 部门表(tb_Department)字段名称数据类型数据约束说明 DepartIdNvarchar(20)主键部门编号 DepartNameNvarchar(20)部门名称6. 考勤统计表该表记录了考勤统计信息,其表结构如表4-6所示:表4-6 考勤统计表(tb_Count)字段名称数据类型数据约束说明StaffIdNvarchar(20)主键员工编号TimeNvarchar(50)主键时间DepartIdNvarchar(20)部门编号StaffNameNvarchar(20)员工名DepartNameNvarchar(20)部门名称PriviligesNvarchar(20)职务GenderNvarchar(20)性别AgeNvarchar(2)年龄FrequencyNvarchar(20)次数ATTNvarchar(20)考勤是否有效TypeNvarchar(20)类别4.2界面设计员工签到管理系统主要包括管理员和员工两种身份,员工可以进行签到、签退,同时可以查询自己相关信息以及修改密码等,管理员主要是对员工的管理、部门管理、时间的设置、考勤信息的统计等等,以下是员工签到管理系统的页面。无论是员工还是管理员都需要签到或签退,以下是登陆页面如图4.1所示:图4.1 登录页面4.2.1员工操作界面 员工信息查询用户通过身份验证后进入相应业务功能页面,如果验证身份是员工的话,就进入员工相应的页面,下图是员工查询个人信息的页面如图4.2所示:图4.2 员工信息查询页面 员工密码修改如果员工需要对自己的密码进行修改,需要进入相应的页面,下图是员工密码修改的页面如图4.3所示:图4.3 员工修改密码页面员工修改密码流程图如下图4.4:修改密码输入相应的密码原密码是否正确两次输入新密码是否一致提示修改成功结束提示原密码错误提示两次输入密码不一致是是否否图4.4 员工修改密码流程图4.2.2管理员操作界面 员工信息管理管理员对员工信息进行一系列的操作,以下是员工信息的编辑页面,如图4.5所示:图4.5 员工信息编辑页面员工信息管理流程图如下图4.6:员工管理查询添加用控件显示编辑删除输入员工信息点击添加,保存到数据库中图4.6 员工信息管理流程图 员工信息添加管理员对员工信息进行一系列的操作,以下是员工信息的添加页面,如图4.7所示:图4.7员工信息添加页面 时间管理管理员可以根据公司的需要进行对时间的设置,以下是管理员对时间的设置,如图4.8所示:图4.8 时间编辑页面 添加时间段管理员可以根据公司的需要进行对时间的设置,以下是管理员对时间的设置,如图4.9所示:图4.9 添加时间段页面 签到查询管理员可以对员工签到进行查询,以下是对员工签到信息查询,如图4.10所示:图4.10 员工签到查询 签退查询管理员可以对员工签到进行查询,以下是对员工签到信息查询,如图4.11所示:图4.11 员工签退查询 考勤统计 管理员根据不同条件对员工的考勤进行不同的统计,以下是管理统计界面,如图4.12所示:图4.12 管理统计界面第5章 运行及测试在编码的过程中,需要通过不断的对系统进行调试,才能对其功能做出完善性的补充。所以测试在此期间起了相当大的作用。 以下给出员工管理模块的若干主要测试用例。如表5.1所示。表5.1员工管理测试用例序号功能模块 测试功能点操作步骤及数据期望结果实际结果一功能员工管理员工信息更新输入的编号数据与以前数据重复,点击修改系统给出提示系统给出提示“违反主键约束” 添加员工信息员工编号和部门号没填系统给出提示系统给出提示“编号和部门号输入为空,请重新输入” 员工信息查询输入查询条件错误查不到数据查不到数据表5.2修改密码测试用例项目名称项目评价系统测试阶段系统测试测试类型功能+界面测试人张世超测试日期12月13号测试用例编号0002测试项员工信息管理-修改密码测试环境SQL2005界面测试:1、页面上无错别字。2、控件左对齐。功能测试:操作步骤:输入新的密码和确认密码,点击“提交”。具体输入预期结果1、密码(1)密码为空错误提示:请输入密码(2)密码是空格提示错误(3)密码是10位数字或者字母正确提交(4)密码为字符提示错误(5)密码为字符和数字错误提示:密码长度不能超过4位(6)密码为空格、字符和数字提示:密码输入错误努力了的才叫梦想,不努力的就是空想!如果你一直空想的话,无论看多少正能量语录,也赶不走满满的负能量!你还是原地踏步的你,一直在看别人进步。23第6章 结束语不知不觉间,两周的实践课题即将结束。回头看去,期间有苦也有甜:有时一个问题做不出来,能让我们郁闷好几天;有时自己调出一个代码,会兴奋很长时间。这次二阶课题我们分小组,自己选择合适的题目,自由选择队友,带给我们很大的收获。通过这次实践我学会如何与团队合作,交流,分工,也增进了我们之间的友情。由于这次是自己动手,我可以把在上课时,老师教的知识用于实践,让我更加理解和熟练掌握它们,让我在以后的工作中能更好的工作。做这次课题中用到了许多知识,有老师讲过的,也有老师没有讲过的。遇到老师讲过的又不会的就去找课本,遇到老师没讲过的我们就去找资料和去问老师,在老师讲解之下我们最终会解决问题。在此,我要郑重感谢帮过我们的老师,以后我要更加努力学习,争取开发出更好的程序。员工签到管理系统张世超参考文献1) 01郭兴峰, ASP.NET动态网站开发基础教程(C#篇)M,北京:清华大学出版社, 2006.52) 02孙士宝,ASP.NET数据库网站设计教程(C#篇)M,北京:电子工业出版社, 2010.33) Thiru Thangarathinam,ASP.NET 2.0 XML 高级编程M.北京:清华大学出版社,2006。4) 张海藩.软件工程导论M.北京:清华大学出版社,2003。5) 郝刚.ASP.NET 2.0 开发指南M.北京:人民邮电出版社,2006。指导教师评语: 成绩: 指导教师签字: 年 月 日附录 系统相关代码主要代码如下:员工管理:public void bind() SqlConnection conn = MyConnection.Connection(); SqlDataAdapter sda = new SqlDataAdapter(select * from tb_StaffInfo, conn); DataSet ds = new DataSet(); sda.Fill(ds); this.GridView1.DataSource = ds; this.GridView1.DataKeyNames = new String StaffId ; this.GridView1.DataBind(); conn.Close(); protected void Page_Load(object sender, EventArgs e) if (!this.IsPostBack) bind(); protected void Button1_Click(object sender, EventArgs e) string strSql = select * from tb_StaffInfo; if (TextBox1.Text != | TextBox3.Text != | TextBox4.Text != ) strSql = strSql + where; if (TextBox1.Text != ) strSql = strSql + StaffId= + TextBox1.Text.Trim() + ; if (TextBox1.Text != & TextBox3.Text != ) strSql = strSql + and; if (TextBox3.Text != ) strSql = strSql + Priviliges= + TextBox3.Text.Trim() + ; if (TextBox1.Text != & TextBox4.Text != ) strSql = strSql + and; else if (TextBox3.Text != & TextBox4.Text != ) strSql = strSql + and; if (TextBox4.Text != ) strSql = strSql + DepartId= + TextBox4.Text.Trim() + ; SqlConnection conn = MyConnection.Connection(); SqlDataAdapter sda = new SqlDataAdapter(strSql, conn); DataSet ds = new DataSet(); sda.Fill(ds); this.GridView1.DataSource = ds; this.GridView1.DataKeyNames = new String StaffId ; this.GridView1.DataBind(); conn.Close(); /删除数据 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) SqlConnection conn = MyConnection.Connection(); SqlCommand cmd = new SqlCommand(select count(*) from tb_Count where StaffId= + GridView1.DataKeyse.RowIndex.Value.ToString() + , conn); int i = Int32.Parse(cmd.ExecuteScalar().ToString(); if (i = 0) SqlCommand cmd2 = new SqlCommand(); cmd2.CommandText = delete from tb_StaffInfo where StaffId= + GridView1.DataKeyse.RowIndex.Value.ToString(); cmd2.Connection = conn; cmd2.ExecuteNonQuery(); SqlDataAdapter sda = new SqlDataAdapter(select * from tb_StaffInfo, conn); DataSet ds = new DataSet(); sda.Fill(ds); this.GridView1.DataSource = ds; this.GridView1.DataBind(); conn.Close(); else Response.Write(alert(此账号在其他表中有外键引用,不能删除!); /更新行 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) SqlConnection conn = MyConnection.Connection(); /string StaffId = (TextBox)(this.GridView1.Rowse.RowIndex.Cells0.Controls0).Text; string StaffName = (TextBox)(this.GridView1.Rowse.RowIndex.Cells1.Controls0).Text; /string DepartId = (TextBox)(this.GridView1.Rowse.RowIndex.Cells2.Controls0).Text; string Keys = (TextBox)(this.GridView1.Rowse.RowIndex.Cells3.Controls0).Text; string Priviliges = (TextBox)(this.GridView1.Rowse.RowIndex.Cells4.Controls0).Text; string Gender = (TextBox)(this.GridView1.Rowse.RowIndex.Cells5.Controls0).Text; string Age = (TextBox)(this.GridView1.Rowse.RowIndex.Cells6.Controls0).Text; string Birthday = (TextBox)(this.GridView1.Rowse.RowIndex.Cells7.Controls0).Text; string Phone = (TextBox)(this.GridView1.Rowse.RowIndex.Cells8.Controls0).Text; string Address = (TextBox)(this.GridView1.Rowse.RowIndex.Cells9.Controls0).Text; SqlCommand cmd = new SqlCommand(); cmd.CommandText = update tb_StaffInfo set StaffName= + StaffName + ,Keys= + Keys + ,Priviliges= + Priviliges + ,Gender= + Gender + ,Age= + Age + ,Birthday= + Birthday + ,Phone= + Phone + ,Address= + Address + where StaffId= + GridView1.DataKeyse.RowIndex.Value.ToString(); cmd.Connection = conn; cmd.ExecuteNonQuery(); conn.Close(); bind(); protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) this.GridView1.EditIndex = e.NewEditIndex; bind(); protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) this.GridView1.EditIndex = -1; bind(); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(StaffAdd.aspx?); 添加员工:protected void Page_Load(object sender, EventArgs e) SqlConnection conn = MyConnection.Connection(); /调用自动编号 MyConnection au = new MyConnection(); au.autoNum(select StaffId from tb_StaffInfo , tb_StaffInfo, StaffId, , 10001, TextBox1); SqlDataAdapter sda3 = new SqlDataAdapter(select DepartId from tb_Department, conn); DataSet ds5 = new DataSet(); sda3.Fill(ds5); this.DropDownList1.DataSource = ds5; this.DropDownList1.DataTextField = DepartId; this.DropDownList1.DataBind(); conn.Close(); protected void Button1_Click(object sender, EventArgs e) if (TextBox1.Text != | DropDownList1.Text != ) SqlConnection conn = MyConnection.Connection(); string StaffId = TextBox1.Text.Trim(); string StaffName = TextBox5.Text.Trim(); string DepartId = DropDownList1.Text.Trim(); string Keys = TextBox7.Text.Trim(); string Priviliges = DropDownList2.Text.Trim(); string Gender = DropDownList3.Text.Trim(); string Age = TextBox10.Text.Trim(); string Birthday = TextBox11.Text.Trim(); string Phone = TextBox12.Text.Trim(); string Address = TextBox13.Text.Trim(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = insert into tb_StaffInfo(StaffId,StaffName,DepartId,Keys,Priviliges,Gender,Age,Birthday,Phone,Address) values( + StaffId + , + StaffName + , + DepartId + , + Keys + , + Priviliges + , + Gender + , + Age + , + Birthday + , + Phone + , + Address + ); cmd.Connection = conn; cmd.ExecuteNonQuery(); Res

温馨提示

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

评论

0/150

提交评论