员工签到管理系统软件工程.docx
- 文档编号:26798353
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:32
- 大小:2.22MB
员工签到管理系统软件工程.docx
《员工签到管理系统软件工程.docx》由会员分享,可在线阅读,更多相关《员工签到管理系统软件工程.docx(32页珍藏版)》请在冰豆网上搜索。
员工签到管理系统软件工程
实践课题设计任务书
姓名
张世超
信息管理专业111班
题目
员工签到管理系统
设
计
任
务
本系统以服务用户为中心,能够实现分类别管理。
管理员对员工的考勤情况、部门的管理,员工管理,同时员工也可以进入系统对自己的个人信息进行查询。
系统功能主要包括:
●员工签到管理
●员工签退管理
●考勤统计
●部门管理
●员工管理
时
间
进
度
第17周:
(2012.12.31~2013.1.6):
系统需求分析,进行界面设计;设计系统的数据库结构进行分析、设计,并通过画E-R图的方式来帮助实现数据库结构的完整设计,列出数据库数据表,之后以列出的关系模型为依据进行
第18周:
(2013.1.7~2013.1.14):
对系统进行详细的分析设计,根据不同的功能模块,对其进行相应的编码及测试;
第19周:
(2013.1.15~2013.1.22):
对系统进行测试和纠错,进一步完善其功能,之后进行报告总结,交与老师验收。
原主
始要
资参
料考
与文
献
[01]李春葆,C#程序设计教程[M],北京:
清华大学出版社,2010.1
[02]何玉洁,数据库原理与应用教程[M],北京:
机械工业出版社,2010.8
指导教师签字:
年月日
摘要
本文设计的员工签到管理系统是为了更好,更方便的管理公司员工考勤的信息。
此系统主要包括员工基本信息,员工签到管理等几个大模块。
每个大模块又分成了几个小的模块,如员工基本信息模块又分成了员工列表,扩展信息,离职管理等小的模块。
每个模块都完成了其相关信息的添加、修改、删除、查询和查看的功能,如员工列表模块就实现了员工信息的添加,修改,删除,查看和查询。
在开发此系统时用了代码生存器,生成了与数据库有关的一些代码以及一些常用的存储过程如记录的添加,删除和修改存储过程。
通过代码生成器生成的代码将数据访问层的很好的封装了起来,大大的提高了开发的效率。
系统功能的实现大大提高了公司管理员工信息的效率。
关键词:
员工签到管理;员工签退管理;考勤统计;
第1章绪论
1.1课题背景
目前市场上流行的员工签到管理系统能够完成大多数的考勤任务,其硬件系统做的相当完善,但与之相对应的管理软件的功能还不够完全,少了一些必须的考勤项目,如员工签退管理、请假管理等等。
在对员工签到管理系统进行详细的需求分析的基础上,对目前员工签到管理系统做了一些改进,添加必要的员工管理项目,并对已有的项目有针对性的优化,使系统能有效的帮助企业进行人力资源管理,通过代码生成器生成的代码将数据访问层的很好的封装了起来,大大的提高了开发的效率。
系统功能的实现大大提高了公司管理员工信息的效率。
1.2研究内容
员工签到管理系统主要实现对员工的考勤进行管理,同时,也实现了对不同员工所属不同部门进行管理以及对考勤进行统计,员工管理系统主要实现了一下功能:
●员工签到管理
●员工签退管理
●考勤统计
●员工管理
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表的设计
整个系统各实体和联系可用以下关系来表示(其中主键已用下划线标识):
●员工信息表(tb_StaffInfo):
员工编号、部门编号、员工名、密码、职务、性别、年龄、出生日期、联系方式、联系地址;
●时间表(tb_Time):
时间段编号、部门编号、时间段名称(分为上午、下午)、签到时间、上班时间、签退时间、下班时间;
●员工签到表(tb_StaffReach):
签到编号、员工编号、部门编号、职务、性别、签到时间;
●员工签退表(tb_StaffBack):
签退编号、员工编号、部门编号、职务、性别、签退时间;
●部门表(tb_Department):
部门编号、部门名称;
●考勤统计表(tb_Count):
员工编号、部门编号、员工名、部门名称、职务、性别、年龄、类别、早退(迟到)次数、考勤是否有效、签到(签退)时间。
3.1.2实体关系图
在分析过系统各实体之间的联系后可得出系统的整体概念模型,用E-R图表示出来,如图所示的。
图3.1E-R图
第4章系统设计
为了方便用户的操作,系统采用了模块化设计的思想,通过各模块的不同组合以实现不同的增、删、改、查功能。
最终,使该系统能够具有规范化的格式、完整的信息量和易于查询等的特点。
4.1数据库详细设计
该系统数据库采用SQLServer2005数据库。
整个数据库系统共有员工信息表,时间表,员工签到表,员工签退表,部门表,考勤统计表六个表组成所有数据表的表结构如下:
1.员工信息表
该表主要用来记录员工信息,其表结构如表4-1所示:
表4-1员工信息表(tb_StaffInfo)
字段名称
数据类型
数据约束
说明
StaffId
Nvarchar(20)
主键
员工编号
DepartId
Nvarchar(20)
部门编号
StaffName
Nvarchar(20)
员工名
Keys
Nvarchar(20)
密码
Priviliges
Nvarchar(20)
职务
Gender
Nvarchar(20)
性别
Age
Nvarchar
(2)
年龄
Birthday
Nvarchar(50)
出生日期
Phone
Nvarchar(20)
联系方式
Address
Nvarchar(20)
联系地址
2.时间表
该表主要记录了上下班时间等,其表结构如表4-2所示:
表4-2时间表(tb_Schedule)
字段名称
数据类型
数据约束
说明
SchId
Nvarchar(20)
主键
时间段编号
DepartId
Nvarchar(20)
部门编号
SchName
Nvarchar(20)
时间段名称
CheckInTime
Nvarchar(50)
签到时间
StartTime
Nvarchar(50)
上班时间
CheckOutTime
Nvarchar(50)
签退时间
EndTime
Nvarchar(50)
下班时间
3.员工签到表
该表主要记录了员工签到信息,其表结构如表4-3所示:
表4-3员工签到表(tb_StaffReach)
字段名称
数据类型
数据约束
说明
CheckIn
Nvarchar(50)
主键
签到时间
StaffId
Nvarchar(20)
员工编号
DepartId
Nvarchar(20)
部门编号
Priviliges
Nvarchar(20)
职务
Gender
Nvarchar(20)
性别
4.员工签退表
该表记录了员工签退信息,其表结构如表4-4所示:
表4-4员工签退表(tb_StaffBack)
字段名称
数据类型
数据约束
说明
CheckOut
Nvarchar(50)
主键
签退时间
StaffId
Nvarchar(20)
员工编号
DepartId
Nvarchar(20)
部门编号
Priviliges
Nvarchar(20)
职务
Gender
Nvarchar(20)
性别
5.部门表
该表详细记录了部门信息,其表结构如表4-5所示:
表4-5部门表(tb_Department)
字段名称
数据类型
数据约束
说明
DepartId
Nvarchar(20)
主键
部门编号
DepartName
Nvarchar(20)
部门名称
6.考勤统计表
该表记录了考勤统计信息,其表结构如表4-6所示:
表4-6考勤统计表(tb_Count)
字段名称
数据类型
数据约束
说明
StaffId
Nvarchar(20)
主键
员工编号
Time
Nvarchar(50)
主键
时间
DepartId
Nvarchar(20)
部门编号
StaffName
Nvarchar(20)
员工名
DepartName
Nvarchar(20)
部门名称
Priviliges
Nvarchar(20)
职务
Gender
Nvarchar(20)
性别
Age
Nvarchar
(2)
年龄
Frequency
Nvarchar(20)
次数
ATT
Nvarchar(20)
考勤是否有效
Type
Nvarchar(20)
类别
4.2界面设计
员工签到管理系统主要包括管理员和员工两种身份,员工可以进行签到、签退,同时可以查询自己相关信息以及修改密码等,管理员主要是对员工的管理、部门管理、时间的设置、考勤信息的统计等等,以下是员工签到管理系统的页面。
无论是员工还是管理员都需要签到或签退,以下是登陆页面如图4.1所示:
图4.1登录页面
4.2.1员工操作界面
4.2.1.1员工信息查询
用户通过身份验证后进入相应业务功能页面,如果验证身份是员工的话,就进入员工相应的页面,下图是员工查询个人信息的页面如图4.2所示:
图4.2员工信息查询页面
4.2.1.2员工密码修改
如果员工需要对自己的密码进行修改,需要进入相应的页面,下图是员工密码修改的页面如图4.3所示:
图4.3员工修改密码页面
员工修改密码流程图如下图4.4:
图4.4员工修改密码流程图
4.2.2管理员操作界面
4.2.2.1员工信息管理
管理员对员工信息进行一系列的操作,以下是员工信息的编辑页面,如图4.5所示:
图4.5员工信息编辑页面
员工信息管理流程图如下图4.6:
图4.6员工信息管理流程图
4.2.2.2员工信息添加
管理员对员工信息进行一系列的操作,以下是员工信息的添加页面,如图4.7所示:
图4.7员工信息添加页面
4.2.2.3时间管理
管理员可以根据公司的需要进行对时间的设置,以下是管理员对时间的设置,如图4.8所示:
图4.8时间编辑页面
4.2.2.4添加时间段
管理员可以根据公司的需要进行对时间的设置,以下是管理员对时间的设置,如图4.9所示:
图4.9添加时间段页面
4.2.2.5签到查询
管理员可以对员工签到进行查询,以下是对员工签到信息查询,如图4.10所示:
图4.10员工签到查询
4.2.2.6签退查询
管理员可以对员工签到进行查询,以下是对员工签到信息查询,如图4.11所示:
图4.11员工签退查询
4.2.2.7考勤统计
管理员根据不同条件对员工的考勤进行不同的统计,以下是管理统计界面,如图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)密码为空格、字符和数字
提示:
密码输入错误
第6章结束语
不知不觉间,两周的实践课题即将结束。
回头看去,期间有苦也有甜:
有时一个问题做不出来,能让我们郁闷好几天;有时自己调出一个代码,会兴奋很长时间。
这次二阶课题我们分小组,自己选择合适的题目,自由选择队友,带给我们很大的收获。
通过这次实践我学会如何与团队合作,交流,分工,也增进了我们之间的友情。
由于这次是自己动手,我可以把在上课时,老师教的知识用于实践,让我更加理解和熟练掌握它们,让我在以后的工作中能更好的工作。
做这次课题中用到了许多知识,有老师讲过的,也有老师没有讲过的。
遇到老师讲过的又不会的就去找课本,遇到老师没讲过的我们就去找资料和去问老师,在老师讲解之下我们最终会解决问题。
在此,我要郑重感谢帮过我们的老师,以后我要更加努力学习,争取开发出更好的程序。
参考文献
1)[01]郭兴峰,ASP.NET动态网站开发基础教程(C#篇)[M],北京:
清华大学出版社,2006.5
2)[02]孙士宝,ASP.NET数据库网站设计教程(C#篇)[M],北京:
电子工业出版社,2010.3
3)ThiruThangarathinam,ASP.NET2.0XML高级编程[M].北京:
清华大学出版社,2006。
4)张海藩.软件工程导论[M].北京:
清华大学出版社,2003。
5)郝刚.ASP.NET2.0开发指南[M].北京:
人民邮电出版社,2006。
指导教师评语:
成绩:
指导教师签字:
年月日
附录系统相关代码
主要代码如下:
员工管理:
publicvoidbind()
{
SqlConnectionconn=MyConnection.Connection();
SqlDataAdaptersda=newSqlDataAdapter("select*fromtb_StaffInfo",conn);
DataSetds=newDataSet();
sda.Fill(ds);
this.GridView1.DataSource=ds;
this.GridView1.DataKeyNames=newString[]{"StaffId"};
this.GridView1.DataBind();
conn.Close();
}
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
this.IsPostBack)
{
bind();
}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringstrSql="select*fromtb_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()+"'";
}
}
SqlConnectionconn=MyConnection.Connection();
SqlDataAdaptersda=newSqlDataAdapter(strSql,conn);
DataSetds=newDataSet();
sda.Fill(ds);
this.GridView1.DataSource=ds;
this.GridView1.DataKeyNames=newString[]{"StaffId"};
this.GridView1.DataBind();
conn.Close();
}
//删除数据
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
SqlConnectionconn=MyConnection.Connection();
SqlCommandcmd=newSqlCommand("selectcount(*)fromtb_CountwhereStaffId='"+GridView1.DataKeys[e.RowIndex].Value.ToString()+"'",conn);
inti=Int32.Parse(cmd.ExecuteScalar().ToString());
if(i==0)
{
SqlCommandcmd2=newSqlCommand();
cmd2.CommandText="deletefromtb_StaffInfowhereStaffId="+GridView1.DataKeys[e.RowIndex].Value.ToString();
cmd2.Connection=conn;
cmd2.ExecuteNonQuery();
SqlDataAdaptersda=newSqlDataAdapter("select*fromtb_StaffInfo",conn);
DataSetds=newDataSet();
sda.Fill(ds);
this.GridView1.DataSource=ds;
this.GridView1.DataBind();
conn.Close();
}
else
{
Response.Write("
copyright@ 2008-2022 冰点文档网站版权所有
经营许可证编号:鄂ICP备2022015515号-1