人事工资管理系统.docx
- 文档编号:5211208
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:29
- 大小:550.68KB
人事工资管理系统.docx
《人事工资管理系统.docx》由会员分享,可在线阅读,更多相关《人事工资管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
人事工资管理系统
*************
人事工资管理系统
09地理信息系统
一.开发背景
企业在开展中不断地壮大,员工也随之增加。
对于人事管理部门来说,迫切地需要一个操作方便、功能简单实用,可以满足企业对员工的档案与工资信息进展管理系统。
在企业选择人事工资管理系统时,主要存在以下几个方面的要求:
(1)对企业员工的档案进展管理
(2)系统的功能要符合本企业的根本情况
(3)系统的功能操作要简单、实用、操作方便,不要出现复杂的操作。
(4)可以方便地对工资信息进展打印。
二.需求分析
通过实际调查,要求本系统具有以下功能:
良好的人机界面。
方便的添加和修改数据功能。
方便的数据查询功能。
方便的数据打印功能。
在相应的窗体中,可方便地删除数据。
三.系统设计
(1)界面友好、操作方便
(2)可以对员工档案进展管理,包括增、删、改、查。
(3)实现奖罚管理。
(4)可以使用操作员管理修改口令和更改操作员。
、
(5)系统运行稳定、安全可靠。
人事工资管理系统的业务流程如图:
应用程序开发过程中,对数据库的操作时必不可少的,数据库设计师根据程序的需求与其实现功能所制定的,数据库设计得是否合理将直接影响程序的开发进程。
〔1〕数据库设计在系统开发中占有非常重要的比重,它是通过管理系统的整体需求而制定的,数据库设计的好坏直接影响到系统的后期开发。
下面对本系统中具有代表性的数据库设计做详细说明。
在本系统中,为了提高系统的安全性,每一个用户都要使用正确的用户名和密码才能进入主窗体,而且还需要根据指定的用户名提供相应的权限,为了能够验证正确的用户名和密码得到相应的权限,应在数据库中创建登录表。
登录用户信息表的实体E-R图:
员工档案信息表的实体E-R图:
员工工资信息表的实体E-R图:
〔2〕数据库逻辑结构设计
根据上面设计好的E-R图,可以在数据库中创建相应的数据表
db_User〔登录表〕
字段名
数据类型
长度
主键
用户编号
Int
4
是
UserName
varchar
20
否
UserPwd
varchar
15
否
权限
varchar
10
否
db_employee(员工档案信息表)
字段名
数据类型
长度
主键
员工编号
Int
4
是
Char
10
否
性别
Char
10
否
年龄
Int
4
否
民族
Varchar
10
否
职务
Char
10
否
db_pay(员工工资信息表)
字段名
数据类型
长度
主键
员工编号
Int
4
是
工资月份
Varchar
50
是
根本工资
decimal
9
否
职务津贴
decimal
9
否
奖励金额
decimal
9
否
罚款金额
decimal
9
否
应发工资
decimal
9
否
实发工资
decimal
9
否
四.公共类设计
项目开发过程中,通常会以类的形式来组织、封装一些常用的方法和事件,这样做不仅可以提高代码的重用率,也大大方便了用户对代码的管理。
在本系统中,主要建立了两个公共类,分别为DBConnection类和DBOperate类。
DBConnection类主要用于连接数据库;在DBOperate类中如此定义了一些操作数据库的公用方法,分别用于实现各种功能,下面详细介绍这两个类。
1.DBConnection公共类
DBConnection类是数据库连接类,此类主要用于连接SQLServer数据库,在连接数据库时,只需调用此类中的MYConnection即可,其实现代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.SqlClient;
namespacePMSClass
{
classDBConnetion
{
publicstaticSqlConnectionMYConnection()
{returnnewSqlConnection("server=.;database=db_PMS;user=sa;pwd=123");}
}
}
2.DBOperate公共类
DBOperate类中建立了多个方法用于执行不同的SQL语句
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
usingSystem.Data;
namespaceWindowsFormsApplication1
{
classDBOperate
{
SqlConnectionconn=PMSClass.DBConnetion.MYConnection();
publicintOperateData(stringstrSql)
{
conn.Open();
Sqlmandcmd=newSqlmand(strSql,conn);
inti=(int)cmd.ExecuteNonQuery();
conn.Close();
returni;
}
publicDataSetgettable(stringsql)
{
DataSetds=newDataSet();
SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
sda.Fill(ds);
ds.Dispose();
returnds;
}
publicvoidBindDataGridView(DataGridViewdgv,stringsql)
{
DataSetds=newDataSet();
SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
sda.Fill(ds);
dgv.DataSource=ds.Tables[0];
ds.Dispose();
}
}
}
下面对该类中的方法进展讲解
(1)OperateData()方法用于对数据库执行SQL语句
publicintOperateData(stringstrSql)
{
conn.Open();
Sqlmandcmd=newSqlmand(strSql,conn);
inti=(int)cmd.ExecuteNonQuery();
conn.Close();
returni;
}
(2)gettable()方法用于根据指定的SQL查询语句返回相应的dataset对象
publicDataSetgettable(stringsql)
{
DataSetds=newDataSet();
SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
sda.Fill(ds);
ds.Dispose();
returnds;
}
(3)BindDataGridView()方法用于将数据库中的数据绑定到datagridview控件
publicvoidBindDataGridView(DataGridViewdgv,stringsql)
{
DataSetds=newDataSet();
SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
sda.Fill(ds);
dgv.DataSource=ds.Tables[0];
ds.Dispose();
}
五.登录模块设计
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication1
{
publicpartialclassForm1:
Form
{
publicForm1()
{
Initializeponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
try
{
if(textBox1.Text==""||textBox2.Text=="")
{MessageBox.Show("用户名或密码不能为空!
","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}
else
{
SqlConnectionconn=PMSClass.DBConnetion.MYConnection();
conn.Open();
strings="select*fromdb_UserwhereUserName='"+textBox1.Text.ToString().Trim()+"'andUserPwd='"+textBox2.Text.Trim()+"'";
Sqlmandcmd=newSqlmand(s,conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Read();
if(sdr.HasRows)
{
this.Hide();
conn.Close();
Form2main=newForm2();
main.User=textBox1.Text.ToString().Trim();
main.Show();
}
else
{
textBox1.Text="";
textBox2.Text="";
MessageBox.Show("用户名或密码错误!
","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
}
}
在登录窗体中,单击登录按钮,程序调用DBConnection类中的MYCconnection()方法连接数据库,然后通过sqldatareader对象的hasrows属性判断用户输入的用户名和密码是否正确,如果正确,如此登录系统,并将用户名传到下个窗体中,否如此,弹出用户名或密码错误信息提示,登录按钮事件代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
try
{
if(textBox1.Text==""||textBox2.Text=="")
{MessageBox.Show("用户名或密码不能为空!
","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}
else
{
SqlConnectionconn=PMSClass.DBConnetion.MYConnection();
conn.Open();
strings="select*fromdb_UserwhereUserName='"+textBox1.Text.ToString().Trim()+"'andUserPwd='"+textBox2.Text.Trim()+"'";
Sqlmandcmd=newSqlmand(s,conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Read();
if(sdr.HasRows)
{
this.Hide();
conn.Close();
Form2main=newForm2();
main.User=textBox1.Text.ToString().Trim();
main.Show();
}
else
{
textBox1.Text="";
textBox2.Text="";
MessageBox.Show("用户名或密码错误!
","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
六.员工信息模块设计
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication1
{
publicpartialclassForm2:
Form
{
publicForm2()
{
Initializeponent();
}
publicstringUser;
DBOperateoperate=newDBOperate();
privatevoidForm2_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“〞中。
您可以根据需要移动或移除它。
this.db_employeeTableAdapter.Fill(this.db_PMSDataSet.db_employee);
stringsql="select*fromdb_UserwhereUserName='"+User+"'";
DataSetds=operate.gettable(sql);
stringpower=ds.Tables[0].Rows[0][3].ToString();
if(power=="一般用户")
{button2.Hide();}
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
Form3f3=newForm3();
f3.User=User;
f3.Show();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Form4f4=newForm4();
f4.User=User;
f4.Show();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
stringsql="select*fromdb_employee";
operate.BindDataGridView(dataGridView1,sql);
}
}
}
根据员工登录名的不同,分给员工不同的权限,如果只是工人那只能查看工资信息如果你是监制那么可以修改员工的信息与打入工资
七.编辑模块设计
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication1
{
publicpartialclassForm4:
Form
{
publicForm4()
{
Initializeponent();
}
publicstringUser;
DBOperatedbop=newDBOperate();
SqlConnectionconn=PMSClass.DBConnetion.MYConnection();
privatevoidForm4_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“〞中。
您可以根据需要移动或移除它。
this.db_employeeTableAdapter.Fill(this.db_PMSDataSet1.db_employee);
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")
{
MessageBox.Show("请输入","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
conn.Open();
strings="select*fromdb_employeewhere='"+textBox1.Text.ToString().Trim()+"'";
Sqlmandcmd=newSqlmand(s,conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Read();
if(sdr.HasRows)
{
stringsql="select*fromdb_employeewhere='"+textBox1.Text.ToString().Trim()+"'";
dbop.BindDataGridView(dataGridView1,sql);
textBox2.Text=Convert.ToString(dataGridView1[0,dataGridView1.CurrentCell.RowIndex].Value);
textBox3.Text=Convert.ToString(dataGridView1[1,dataGridView1.CurrentCell.RowIndex].Value);
textBox4.Text=Convert.ToString(dataGridView1[2,dataGridView1.CurrentCell.RowIndex].Value);
textBox5.Text=Convert.ToString(dataGridView1[3,dataGridView1.CurrentCell.RowIndex].Value);
textBox6.Text=Convert.ToString(dataGridView1[4,dataGridView1.CurrentCell.RowIndex].Value);
textBox7.Text=Convert.ToString(dataGridView1[5,dataGridView1.CurrentCell.RowIndex].Value);
}
else
{
textBox1.Text="";
MessageBox.Show("错误!
","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
conn.Close();
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
stringsql="select*fromdb_employee";
dbop.BindDataGridView(dataGridView1,sql);
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
if(textBox2.Text=="")
MessageBox.Show("请输入您要修改的员工编号!
","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
else
{
conn.Open();
strings="select*fromdb_employeewhere员工编号='"+textBox2.Text.ToString().Trim()+"'";
Sqlmandcmd=newSqlmand(s,conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Read();
if(sdr.HasRows)
{
stringsql="updatedb_employeeset员工编号='"+textBox2.Text.Trim()+"',='"+textBox3.Text.Trim()+"',性别='"+textBox4.Text.Trim()+"',年龄='"+textBox5.Text.Trim()+"',民族='"+textBox6.Text.Trim()+"',职务='"+textBox7.Text.Trim()+"'where员工编号='"+textBox2.Text+"'";
dbop.OperateData(sql);
MessageBox.Show("修改成功!
",
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事 工资管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)