工资管理系统doc.docx
《工资管理系统doc.docx》由会员分享,可在线阅读,更多相关《工资管理系统doc.docx(37页珍藏版)》请在冰点文库上搜索。
工资管理系统doc
软件工程作业
人事工资管理系统
学 院:
班 级:
学 号:
姓 名:
指导老师:
一、需求分析
1、功能定义
工资管理系统应完成以下功能:
员工信息管理:
包括员工基本信息,如工龄情况,学历情况,工作岗位,部门信息。
实现对员工信息的输入、查询和修改,对于转出、辞职、辞退、退休员工信息的删除。
人事调动管理:
包括对员工岗位和部门的查询与修改。
工资管理:
员工工资分为两部分:
一部分是基本工资,根据员工的工龄和岗位设置;另一部分是动态工资,根据员工的考勤情况和工作评价情况计算,在计算出总工资后,还应扣除一些费用,如税款、公积金、养老金等。
包括对工资的查询和修改。
考勤管理:
包括正常出勤、异常出勤(如请假、迟到、早退)、加班。
工作评价管理:
员工评价信息分为两部分,一部分是主管经理对员工的评价信息,包括工作分工、完成情况、工作态度等;另一部分是同组员工的评价信息,包括工作态度、合作情况等。
根据工作评价发放奖金。
系统管理模块:
对人事工资管理系统的维护、升级和对用户的管理:
用户信息添加、用户信息修改、用户信息删除和用户权限分配。
2、参与者列表
人事部门:
对员工信息的管理,包括对员工信息的输入、查询、修改。
对于转出、辞职、辞退、退休员工信息的删除。
对人事调动的管理,包括对员工岗位和部门的查询与修改。
财务部门:
根据员工的考勤和工作评价,完成工资的核算并发放工资。
系统管理员:
对人事工资管理系统的维护、升级和对用户的管理:
用户信息添加、用户信息修改、用户信息删除和用户权限分配。
员工:
系统的主要使用者,登陆系统后,对自己的基本信息的查询和对自己工资的查询。
考勤部门:
对员工的出勤情况进行记录,对员工的工作进行评价。
3、用例图
图1财务部门用例
图2人事部门用例
图6人事工资管理系统用例图
一、分析
1、类图
2、状态图
图1系统状态图
3、活动图
图1用户注册活动图
图2登录活动图
图3员工信息查询活动图
图4对员工信息删除、添加、修改的活动图
图5考勤管理活动图
4、顺序图
图1用户注册顺序图
图2登录顺序图
图3添加员工信息顺序图
图4人事调动顺序图
图5考勤管理顺序图
5、协作图
图1用户注册协作图
图2登录协作图
图3添加员工信息协作图
图4考勤管理协作图
三、设计
1、流程图
2、实体E-R图
获得
3、数据字典
(1)、员工档案信息表:
PERSONNEL.DBF
字段
字段名
类型
宽度
说明
1
员工号
字符型
3
数字
2
员工姓名
字符型
10
小于等于5个汉字
3
员工性别
字符型
2
“男”或“女”
4
员工学历
字符型
10
小于等于5个汉字
5
婚姻状况
字符型
4
“已婚”或“未婚”
6
工龄
数值型
2
1~99之间
7
岗位编号
数值型
2
1~99之间
8
部门编号
数值型
2
1~99之间
(2)、工资设置表:
COURSE.DBF
字段
字段名
类型
宽度
说明
1
员工号
数值型
3
数字
2
工资年月
字符型
20
_年_月_日
3
应发工资
数值型
5
1-99999之间
4
奖励金额
数值型
4
1-9999之间
5
扣除工资
数值型
4
1~9999之间
6
实发工资
数值型
5
1-99999之间
(3)、岗位设置表:
RANK.DBF
字段
字段名
类型
宽度
说明
1
岗位编号
数值型
2
1~99之间
2
岗位名称
字符型
14
小于等于7个汉字
3
部门编号
数值型
2
1~99之间
(4)、部门设置表:
APARTMENT.DBF
字段
字段名
类型
宽度
说明
1
部门编号
数值型
2
1-99之间
2
部门名称
字符型
14
小于等于7个汉字
3
部门负责人
字符型
10
小于等于5个汉字
4
部门人数
数值型
4
1~9999之间
(5)、考勤设置表:
KAOQIN.DBF
字段
字段名
类型
宽度
说明
1
员工号
数值型
3
数字
2
正常出勤天数
数值型
3
1~999之间
3
异常出勤天数
数值型
3
1~999之间
4
加班天数
数值型
3
1~999之间
5
评价情况
字符型
4
优秀、良好、中等、差
4、数据库E-R图
四、实现
1、源代码
(1)登录界面代码设计
本代码实现Form1,作用是对登录用户审核,将登录用户信息与数据库中用户表相比对,存在此用户且信息正确则进入,否则登录失败。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespace工资管理系统
{
publicpartialclassForm1:
Form
{
publicstaticstringpassword;
publicstaticstringusername;
publicForm1()
{
InitializeComponent();
}
publicintCheckUsers()//连接数据库进行查询
{
username=textBox1.Text.ToString();
password=textBox2.Text.ToString();
stringAfile="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\\Users\\lenovo\\Desktop\\C#\\db.mdb;PersistSecurityInfo=True";//access文件
OleDbConnectionAconnStr=newOleDbConnection(Afile);
OleDbCommandAcmd=newOleDbCommand("select*from[user]whereuserName='"+username+"'andpassword='"+password+"'",AconnStr);
OleDbDataReaderodr=null;
AconnStr.Open();
try
{
odr=Acmd.ExecuteReader();
}
catch(Exceptionex)
{
if(ex!
=null)return0;
}
while(odr.Read())
{
return1;
}
odr.Close();
AconnStr.Close();
return0;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{//对登录信息进行审核,正确则进入,否则登录失败
if(textBox1.Text==""||textBox2.Text=="")
MessageBox.Show("请输入信息","信息提示");
elseif(CheckUsers()==1)
{
this.Hide();
Form6form6=newForm6();
form6.Show();
}
else
{
MessageBox.Show("你输入的用户名或口令不正确!
","信息提示");
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
textBox1.Text="";
textBox2.Text="";
}
}
}
(2)员工信息更新界面
本代码实现Form3,作用是对员工信息进行更新,可以员工信息作查找,添加,删除,修改等操作,还可以查询工资信息,并能计算总工资。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespace工资管理系统
{
publicpartialclassForm3:
Form
{
publicstaticintstring1,string2,string3,day;
publicForm3()
{
InitializeComponent();
}
privatevoidForm3_Load(objectsender,EventArgse)
{
loadUsers();
}
privatevoidloadUsers()
{//连接数据库
stringconnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\\Users\\lenovo\\Desktop\\C#\\db.mdb;PersistSecurityInfo=True";//access文件连接
stringOleDbString="select*from[Message]";
OleDbConnectionconnection=newOleDbConnection(connectionString);
DataSetds=newDataSet();
try
{
connection.Open();
OleDbDataAdaptercommand=newOleDbDataAdapter(OleDbString,connection);
command.Fill(ds,"Message");
}
catch(OleDbExceptionex)
{
thrownewException(ex.Message);
}
//将表绑定到dataGridView1控件
this.dataGridView1.DataSource=ds.Tables[0];
this.dataGridView1.Columns[0].ReadOnly=true;//先0列,即用户名列为关键定不许修改
connection.Close();
}
privatevoidpictureBox1_Click(objectsender,EventArgse)
{
}
privatevoidbtnDelete_Click(objectsender,EventArgse)
{
stringconnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\\Users\\lenovo\\Desktop\\C#\\db.mdb;PersistSecurityInfo=True";
stringSQLString="deletefrom[Message]where[sno]='"+this.dataGridView1.CurrentRow.Cells["Sno"].Value+"'";
OleDbConnectionconnection=newOleDbConnection(connectionString);
connection.Open();
OleDbCommandcommand=newOleDbCommand(SQLString,connection);
if(command.ExecuteNonQuery()==1)
MessageBox.Show("删除成功!
");
if(connection!
=null)
connection.Close();
loadUsers();
}
privatevoidAddbutton_Click(objectsender,EventArgse)
{//连接数据库实现添加操作。
if(textBox1.Text==""||textBox2.Text=="")
MessageBox.Show("请输入要添加的信息!
","提示信息");
else
{
stringconnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\\Users\\lenovo\\Desktop\\C#\\db.mdb;PersistSecurityInfo=True";
stringSQLString="insertinto[Message]([Sno],[员工姓名])values('"+this.textBox2.Text+"','"+this.textBox1.Text+"')";
OleDbConnectionconnection=newOleDbConnection(connectionString);
connection.Open();
OleDbCommandcommand=newOleDbCommand(SQLString,connection);
if(command.ExecuteNonQuery()==1)
MessageBox.Show("添加成功!
");
if(connection!
=null)
connection.Close();
}
loadUsers();
}
privatevoiddataGridView1_CellEndEdit(objectsender,DataGridViewCellEventArgse)
{//当前修改过的值
stringupdateValue=dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
//当前修改行的用户名(关键字)
stringusername=dataGridView1.Rows[e.RowIndex].Cells["Sno"].Value.ToString();
stringcolName=dataGridView1.Columns[e.ColumnIndex].Name;//修改值对应的列名
stringOleDbString="update[Message]set["+colName+"]='"+updateValue+"'whereSno='"+username+"'";
stringconnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\\Users\\lenovo\\Desktop\\C#\\db.mdb;PersistSecurityInfo=True";
OleDbConnectionconnection=newOleDbConnection(connectionString);
connection.Open();
OleDbCommandcommand=newOleDbCommand(OleDbString,connection);
if(command.ExecuteNonQuery()==1)
if(connection!
=null)
connection.Close();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{//实现操作信息
if(MessageBox.Show("确定退出?
","确认信息",MessageBoxButtons.YesNo)==DialogResult.Yes)
Application.Exit();
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
this.Hide();
Form4form4=newForm4();
form4.Show();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
loadUsers();
MessageBox.Show("更新成功");
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text==""||textBox2.Text=="")
MessageBox.Show("请输入要查找的信息!
","提示信息");
else
{
stringconnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\\Users\\lenovo\\Desktop\\C#\\db.mdb;PersistSecurityInfo=True";//access文件
stringOleDbString="select*from[Message]whereSno='"+this.textBox2.Text+"'";
OleDbConnectionconnection=newOleDbConnection(connectionString);
DataSetds=newDataSet();
try
{
connection.Open();
OleDbDataAdaptercommand=newOleDbDataAdapter(OleDbString,connection);
command.Fill(ds,"Message");
}
catch(OleDbExceptionex)
{
thrownewException(ex.Message);
}
//将表绑定到dataGridView1控件
this.dataGridView1.DataSource=ds.Tables[0];
this.dataGridView1.Columns[0].ReadOnly=true;//先0列,即用户名列为关键定不许修改
connection.Close();
}
}
privatevoidForm3_FormClosing(objectsender,FormClosingEventArgse)
{
Application.Exit();
}
publicstringFindstring1()
{
stringAfile="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\\Users\\lenovo\\Desktop\\C#\\db.mdb;PersistSecurityInfo=True";//access文件
OleDbConnectionAconnStr=newOleDbConnection(Afile);
OleDbCommandAcmd=newOleDbCommand("select[基本工资]from[Message],[工资]whereSno='"+textBox2.Text+"'andMessage.员工工种=工资.员工工种andMessage.工资等级=工资.工资等级",AconnStr);
OleDbDataReaderodr=null;
AconnStr.Open();
try
{
odr=Acmd.ExecuteReader();
}
catch(Exceptionex)
{
if(ex!
=null)returnnull;
}
if(odr!
=null)
{
while(odr.Read())
{returnodr[0].ToString();}
odr.Close();
}
AconnStr.Close();
returnnull;
}
publicstringFindday()
{
stringAfile="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\\Users\\lenovo\\Desktop\\C#\\db.mdb;PersistSecurityInfo=True";//access文件
OleDbConnectionAconnStr=newOleDbConnection(Afile);
OleDbCommandAcmd=newOleDbCommand("select[考勤天数]from[Message]whereSno='"+textBox2.Text+"'",AconnStr);
OleDbDataReaderodr=null;
AconnStr.Open();
try
{
odr=Acmd.ExecuteReader();
}
catch(Exceptionex)
{
if(ex!
=null)returnnull;
}
if(odr!
=null)
{
while(od