员工工资管理系统 毕业设计论文.docx
《员工工资管理系统 毕业设计论文.docx》由会员分享,可在线阅读,更多相关《员工工资管理系统 毕业设计论文.docx(45页珍藏版)》请在冰点文库上搜索。
摘要
本企业人事管理系统采用C/S结构,主要对企业员工的信息以及跟人事相关的工作流程进行集中的管理,方便企业建立一个完善的、强大的员工信息数据库。
它是以VS2010(MicrosoftVisualStudio2010).和SQLServer2008数据库作为开发平台。
使用C# 设计操作控件和编写操作程序,完成数据输入、修改、存储、调用查询等功能;并使用SQLServer2008数据库形成数据表,进行数据存储。
本文详细介绍了企业人事管理系统的功能需求,系统设计和具体实现。
并简要介绍了系统开发采用的过程方法。
关键词:
员工工资管理系统;C/S;员工信息;数据库
III
Abstract
Thesystemadoptsthestructuremodeofclient/server(C/S),WindowsXPastheoperationsystem,SQL2008Expressasthebackgrounddatabase,andMicrosoftVisualStudio82008asthedevelopingtool.Itcanhelpenterprisestoestablishaperfect,strongstaffinformationdatabase,whichfacilitatesthecentralizedmanagementofstaffinformationandworkflow.
Thepaperexplainsthecoursedesign,systemdesignandimplementationofMIS,alsobrieflyintroducestheprocessofthesystemdevelopment.
Keywords:
PersonnelManagementSystem;C/S;EmployeeInformation;Database
目 录
第1章绪论 1
1.1系统开发背景 1
1.2系统研究目的和意义 1
1.3可行性分析 1
第2章系统需求分析 3
2.1用户功能需求分析 3
2.2系统性能要求 3
2.3业务流程分析 3
第3章系统总体设计 4
3.1系统功能模块分析 4
3.1.1人事管理 4
3.1.2工资管理 4
3.1.3系统管理 4
3.2实体联系图 4
3.3系统总体设计 9
第4章系统详细设计 10
4.1开发工具简介 10
4.2数据库设计 10
4.3用户界面设计 13
4.3.1登录界面 13
4.3.2档案管理的设计实现 17
4.3.3奖罚管理的设计实现 23
4.3.4考评管理的设计实现 27
4.3.5考勤津贴的设计实现 32
第5章软件测试和调试 36
5.1白盒测试法 36
5.2黑盒测试法 37
第6章工作总结和展望 39
参考文献 40
致 谢 41
第1章绪论
1.1系统开发背景
人力资源管理系统主导21世纪,无论是发达国家还是发展中国家,对人力资源的战略性意义都有了深刻的认识,并开始付诸行动。
世界公认,21世纪将是人力资源的世纪;人力资源问题将主导整个21世纪甚至更为遥远,这种状况的变化起因于竞争压力。
目前,世界经济趋向全球化。
世界经济的全球化过程和国家的开放过程,要求组织的管理部门降低管理成本以减少竞争压力和增强竞争能力。
对于不同的组织,人力资源成本在总成本中的比例是不一样的。
随着社会政治和经济的发展,人们的工作目标和价值观也都发生了重要的变化。
这就对人事管理部门和管理人员提出了新的要求和新的问题,不得不考虑诸如工作类型设计、岗位分析、充分尊重员工以及为他们提供良好的个人发展和自我价值实现的环境与条件等问题。
这样,员工工资管理就派上了用场。
1.2系统研究目的和意义
《员工工资管理系统》开发的目的在于:
(1)方便公司对员工工资的发放与调整
(2)从一定程度上配合公司的财务工作,使公司业务更加流畅
(3)对企事业单位的科学化管理起到一定的促进作用
《员工工资管理系统》开发的意义在于:
(1)能够清晰的体现出企事业单位的工资管理流程
(2)能够方便公司及时对员工的数量以及每人应发的工资进行适度的调整
(3)提高劳动效率,节约劳动成本,促进企事业单位的发展。
1.3可行性分析
(1)经济可行性分析
完成本系统需要硬件和软件两方面的支持。
硬件方面需要开发服务器一台,个人电脑在此可作为服务器使用;软件方面,由于本系统属于小型管理系统,利用VisualStudio2008和SQLServer2008数据库开发工具即可实现,经济成本低,因此在经济上是可行的。
(2)技术可行性分析
本系统采用目前被广泛使用的C#开发技术、SQL Server 2008数据库技术和WindowsServer2003操作系统进行开发设计。
首先,c#是微软为.NET量身定做的开发语言集合了C/C++和VB的双重优点,具有简易型、灵活性、移植性强等特点,同时使用VisualStudio2010作为开发平台,对于开发中小系统来说,这种开发环
1
员工工资管理系统
境是完全没有问题的。
其次,本系统采用SQLServer2008数据库。
到目前为止,SQL数据库仍然是使用最广泛的一种数据库语言,因此本系统采用SQL Server2008,在系统安全性、可用性和高稳定性上又有了很大的提升。
综上所述,本系统的技术可行性不存在问题。
(3)管理可行性分析
本系统的主要应用对象为企业的人事管理人员和企业的高层管理者,由于本系统界面简洁、结构清晰、操作简单,所以在对相应使用人员进行培训的情况下是可以顺利使用本系统的。
第2章系统需求分析
2.1用户功能需求分析
设计数据库系统时应该首先调研结果如下:
普通用户:
只能查看自己的相关信息,不能进行系统管理和操作员管理操作;
特级管理员(部门管理者):
拥有所有权限;可以对用户进行管理等;可以使用系统的一切功能;并且应该能够保证系统的安全性;
本系统属于中小型的数据库管理系统,可以对中小型企业人事工资进行有效管理。
2.2系统性能要求
1.安全性
该系统的安全性主要是防止他人非法进入系统,从而保证了数据的安全性,数据存储的完整性和数据的可靠性。
设置两种不同的身份进行登录,即超级管理员、普通用户;系统也设立了数据备份和恢复机制,从一定程度上可以降低数据的损坏程度。
2.高效性
使用此员工工资系统既可以方便员工查看自己所需的信息,又可以大大减财政工作人员的负担,与人工服务相比效率得到了很大的提高。
3.便捷性
本系统的界面友好,操作方便,能够达到所见即所得的效果,方便用户的使用。
2.3业务流程分析
依据系统的需求分析,得到系统的流程图如图2-1所示:
图2-1系统流程图
41
员工工资管理系统
第3章系统总体设计
系统总体设计需完成的主要功能是概念和逻辑结构设计,其中概念结构设计是将需求分析得到的用户需求抽象为概念模型的过程,它是整个数据库设计的关键。
3.1系统功能模块分析
本系统主要分为人事管理、工资管理、系统管理、用户管理和退出等模块组成。
3.1.1人事管理
档案管理包括:
添加、修改、删除和查找员工信息,双击某条员工信息时,可以打开修改员工档案的窗体,在此窗体对信息进行修改并显示显示员工的详细信息。
奖罚管理包括:
添加、修改或者删除奖罚信息,方便在发放工资时进行工资统计。
调动管理包括:
添加、修改、删除员工的调动信息,并可以通过按姓名查找,检索出员工的调动信息。
考评管理包括:
添加、修改、删除员工的考评信息,并可以通过按姓名查找,检索出员工的考评信息。
3.1.2工资管理
考勤津贴包括:
1.某月考勤指定员工编号全勤奖金的添加;
2.某月考勤指定员工编号加班工资的添加;
3.某月考勤指定员工编号的奖罚信息的查询。
工资总结包括:
指定月份的员工工资信息进行查询统计。
3.1.3系统管理
部门管理包括:
部门的添加、删除、和修改。
数据管理包括:
数据的备份和还原。
3.2实体联系图
通过需求分析,现定义以下每个实体的属性:
考勤管理信息表(系统编号,员工编号,员工姓名,员工部门,考评内容,考评结果,考评分数,考评人,考评日期)
部门名称信息表(系统编号,部门名称)
员工档案信息表(系统编号,员工编号,员工姓名,员工性别,员工部门,员工民族,婚姻状况,职务名称,联系电话,就职日期,员工相片,基本工资)
员工工资信息表(系统编号,员工编号,员工姓名,员工性别,员工部门,员工职务,基本工资,职务津贴,奖励金额,罚款金额,全勤奖金,加班工资,应发工资,个人所得税,工资月份)
奖罚管理信息表(系统编号,员工编号,员工姓名,员工部门,奖罚类型,奖罚内容,奖励金额,罚款金额,奖罚日期,撤消日期)
调动管理信息表(系统编号,员工编号,员工姓名,调动日期,原部门,现部门,原职务,现职务,原工资,现工资,工资说明)
登录用户信息表(系统编号,员工编号,员工姓名,调动日期,工资说明)员工职称信息表(系统编号,职务名称)
1.考勤管理信息实体属性图如图3-1所示:
图3-1考勤管理信息表的实体E-R图
2.部门名称信息表如图3-2所示
图3-2部门名称信息实体E-R图
3.员工档案信息表如图3-3所示
图3-3员工档案信息表的实体E-R图
4.员工工资信息表如图3-4所示
图3-4员工工资信息表的实体ER图
5.奖罚管理信息表如图3-5所示
图3-5奖罚管理信息表的实体ER图
6.调动管理信息表如图3-6所示
图3-6调动管理信息表的实体ER图
7.登录用户信息实体表如图3-7所示
图3-7登录用户信息的实体ER图
8.员工职称信息表如图3-8所示
图3-8员工职称信息表的实体ER图
3.3系统总体设计
系统设置了二种身份的登录,包括超级管理员和普通用户。
以超级管理员的身份登录,可以操作数据库中所有的功能模块,而以其他身份登录只是在此功能上对一些模块给予限制而已。
如图3-10就是系统的总体结构框图:
图3-9系统总体结构框图
第4章系统详细设计
4.1开发工具简介
本系统前台数据库采用MicrosoftSQLServer2008数据库,该数据库系统在安全性,准确性和运行速度方面有绝对的优势,并且处理数据两大,效率高;后台采用Microsoft公司的VisualStudio2010作为主要的开发工具。
4.2数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
本系统主要用到了以下8张表:
1.考勤管理信息:
表4-1考勤管理信息表
2.部门名称信息:
表4-2部门名称信息表
3.员工档案信息:
表4-3员工档案信息表
4.员工工资信息:
表4-4员工工资信息表
5.奖罚管理信息:
表4-5奖罚管理信息表
6.调动管理信息:
表4-6调动管理信息表
7.登录用户信息:
表4-7登录用户信息表
8.员工职称信息:
表4-8员工职称信息表
4.3用户界面设计
4.3.1登录界面
1.系统主界面
图5-1:
系统主界面设计图
/*…………………………………………………………………………………………当窗体加载时,在主窗体的状态栏中显示登录用户名和登录时间,并且根据登录用户的权限设置其操作权限,其关键代码如下:
………………………………………………………………………………………*/
publicstringUser;publicstringLogintime;
DBOperateoperate=newDBOperate(); //实例化DBOperate
privatevoidfrmMain_Load(objectsender,EventArgse)
{
toolStripStatusLabel2.Text=User;toolStripStatusLabel5.Text=Logintime;toolStripMenuItem1.Text=DateTime.Now.ToLongTimeString();
stringsql="select*fromtb_UserwhereUserName='"+User+"'";DataSetds=operate.GetTable(sql);
stringpower=ds.Tables[0].Rows[0][3].ToString();if(power=="一般用户")
{
系统管理ToolStripMenuItem.Enabled=false;
操作员管理ToolStripMenuItem.Enabled=false;
}
}
其他菜单的实现过程与“档案管理”菜单的实现原理相同,不再描述。
/*………………………………人事管理/档案管理……………………………
当选择菜单栏中的“人事管理/档案管理”命令,会打开档案管理窗体,其代码如下:
………………………………………………………………………………………*/privatevoid档案管理ToolStripMenuItem_Click(objectsender,EventArgse)
{
frmEmployeeemployee=newfrmEmployee();employee.ShowDialog();
}
/*………………………………………用户管理/修改口令…………………………
选择菜单栏中的“用户管理/修改口令”命令会打开修改口令窗体,其代码如下:
………………………………………………………………………………………*/privatevoid修改口令ToolStripMenuItem_Click(objectsender,EventArgse)
{
frmChangePwdchangepwd=newfrmChangePwd();changepwd.MdiParent=this;
changepwd.name=User;changepwd.Show();
}
/*…………………………用户管理/更改操作员………………………………………
选择菜单栏中的“用户管理/更改操作员”命令,会打开更改操作员窗体,代码如下:
………………………………………………………………………………………*/
privatevoid更改操作员ToolStripMenuItem_Click(objectsender,EventArgs
e)
{
frmChangeUserchangeuser=newfrmChangeUser();changeuser.MdiParent=this;
changeuser.Show();
}
/*……………………………………退出系统……………………………………………
选择菜单栏中的“退出”按钮会弹出提示,询问系统是否退出系统,其关键代码如下:
……………………………………………………………………………………………*/
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
if (MessageBox.Show("确定退出本系统吗?
", "提示",
MessageBoxButtons.OKCancel,MessageBoxIcon.Exclamation)==DialogResult.OK)
{
Application.Exit();
}
}
2.登录界面
系统用户登录模块主要用于完成对登录系统的用户的验证,只有合法的用户和正确的数据库配置才可以进入系统,否则给与相应的错误提示。
图5-2:
用户登录模块图
/*…………………………………………………………………………………………单击“登录”按钮,程序将调用DBConnection类中的MyConnection方法连接数据库,然后通过SqlDataReader对象的HasRows属性判断用户和密码是否正确。
若正确,则进入主界面,若错误,则弹出“用户名或密码错误”。
………………………………………………………………………………………*/
DBOperateoperate=newDBOperate();
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
try
{
if(txtUserName.Text==""||txtUserPwd.Text=="")
{
MessageBox.Show("用户名或密码不能为空!
", "提示",
MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
else
{
stringname=txtUserName.Text.Trim();stringpwd=txtUserPwd.Text.Trim();
SqlConnectionconn=PMSClass.DBConnection.MyConnection();conn.Open();
SqlCommandcmd=newSqlCommand("select*fromtb_UserwhereUserName='"+name+"'andUserPwd='"+pwd+"'",conn);
SqlDataReadersdr=cmd.ExecuteReader();sdr.Read();
if(sdr.HasRows)
{
stringtime=DateTime.Now.ToString();
stringsql="updatetb_UsersetLoginTime='"+time
+"'whereUserName='"+name+"'";
operate.OperateData(sql);conn.Close();
this.Hide();
frmMainMain=newfrmMain();Main.User=name;
Main.Logintime=time;Main.Show();
}
else
{
txtUserName.Text="";txtUserPwd.Text="";
MessageBox.Show("用户名或密码错误!
", "提示",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
4.3.2档案管理的设计实现
图5-3:
档案管理窗体
/*…………………………………………………………………………………………………档案管理窗体加载时,会检索出员工档案表tb_employee中的信息,并将其绑定到DataGridView控件,同时设置TreeView控件的节点图标以及选择后的节点图标,并且动态地将所有的部门名称添加到TreeView控件中。
其关键代码如下:
…………………………………………………………………………………………………*/DBOperateoperate=newDBOperate();
privatevoidfrmEmployee_Load(objectsender,EventArgse)
{
stringstr="selectIDas'编号',employeeIDas'员工编号
',employeeNameas'员工姓名',employeeSexas'员工性别',employeeDeptas'所属部门',employeeBirthdayas'员工生日',employeeNationas'民族',employeeMarriageas'婚姻状况',employeeDutyas'担任职务',employeePhoneas'联系电话',employeeAccessionas'就职日期'fromtb_employee";
operate.BindDataGridView(dgvEmployee,str);dgvEmployee.Columns[0].Width=40;
dgvEmployee.Columns[1].Width=80;treeView1.ImageList=imageList1;treeView1.ImageIndex=0;
treeView1.SelectedImageIndex=0;
stringsql="selectcount(*)fromtb_employee";toolStripStatusLabel2.Text=operate.HumanNum(sql).ToString()+"人";TreeNodetn=treeView1.Nodes.Add("所有部门");
SqlConnectionconn=DBConnection.MyConnection();conn.Open();
SqlCommandcmd=newSqlCommand("select*fromtb_department",
conn);
SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read())
{
tn.Nodes.Add(sdr["DepName"].ToString());
}
sdr.Close();
conn.Close();treeView1.ExpandAll();
}
/*…………………………………………………………………………………………………在toolStripTextBox1