职工工资管理系统设计与源代码.docx
- 文档编号:3272274
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:21
- 大小:110.17KB
职工工资管理系统设计与源代码.docx
《职工工资管理系统设计与源代码.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统设计与源代码.docx(21页珍藏版)》请在冰豆网上搜索。
职工工资管理系统设计与源代码
职工工资管理系统
一、设计目标:
按照软件工程的规范,以SQLServer或Access为后台数据库,以Delphi或VisualC++为前端开发工具,设计并实现一个简化的工资管理系统。
二、需求描述
该系统存储了某单位全体职工和工资信息。
职工的基本信息包括:
职工编号、姓名、性别、出生年月、职称、最后学历、工资和婚否。
每一个职工的工资信息包括:
月份、职工编号、职工姓名、基本工资、津贴、岗贴、补贴、房贴、交通补贴、应发数、房租、储蓄、会费、个人所得税、应扣数、实发数、其他收入。
个人所得税计算方法设为:
应发数少于800元为0;800~1000元的部分为5%;1000~5000元的部分为10%;5000元以上的部分为20%。
系统功能如下:
1.职工信息管理:
a.增加职工信息。
增加新职工时输入新职工的基本信息;
b.删除某职工的基本信息。
如,职工死亡或离职时;
c.修改某职工(指定职工编号)的某些信息(如,加工资、获得新学位、晋升职称、结婚或离婚)。
2.工资管理:
a.增加工资信息。
当增加新职工时,添加某职工的工资信息;
b.职工离职或死亡时,删除某职工的工资信息;
c.修改工资信息。
当月开始增加或减少某些项工资或扣款数变化时,修改某职工的部分工资信息;
3.查询与统计:
a.查询职工信息,如查询全体职工信息,或按职称、学历、出生年月、出生年月之前/之后、已婚/未婚等条件或多个条件的组合来查询相应的职工信息。
b.查询指定编号职工的工资信息;
c.按时间段统计职工收入或单位的工资支出。
三、概要设计
四、详细设计
voidCWorkerMgr6View:
:
OnExit()
{
OnExit();
}
voidCWorkerMgr6View:
:
OnRecordFirst()
{
if(m_pSet->IsBOF())
{
m_pSet->SetFieldNull(NULL);
}
else
{
m_pSet->MoveFirst();
UpdateData(FALSE);//更新对话框窗口
}
}
voidCWorkerMgr6View:
:
OnRecordLast()
{
m_pSet->MoveLast();
UpdateData(FALSE);//更新对话框窗口
}
voidCWorkerMgr6View:
:
OnRecordNext()
{
if(m_pSet->IsBOF())
{
m_pSet->SetFieldNull(NULL);
}
//判断是否溢出
if(m_pSet->IsEOF())
{
AfxMessageBox("已经到达最后记录");
}
else
{
m_pSet->MoveNext();
}
UpdateData(FALSE);
}
voidCWorkerMgr6View:
:
OnRecordPre()
{
if(m_pSet->IsBOF())
{
AfxMessageBox("已经到达第一个记录");
m_pSet->MoveFirst();
}
m_pSet->MovePrev();
UpdateData(FALSE);
}
voidCWorkerMgr6View:
:
OnAddWorker()
{
HRESULThr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=worker.mdb","","",adModeUnknown);
//连接数据库
//上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:
Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
CAddWorkerdl;
if(dl.DoModal()==IDOK)
{
m_pSet->AddNew();
m_pSet->m_name=dl.m_nm;
m_pSet->m_id=dl.m_ids;
m_pSet->m_sex=dl.m_sx;
m_pSet->m_born=dl.m_bn;
m_pSet->m_zhichen=dl.m_zhch;
m_pSet->m_xueli=dl.m_xli;
m_pSet->m_salary=dl.m_sala;
m_pSet->m_marry=dl.m_marr;
m_pSet->Update();
m_pSet->MoveLast();
UpdateData(false);
}
OnAddMoney();
}
voidCWorkerMgr6View:
:
OnDeleteWorker()
{
HRESULThr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=worker.mdb","","",adModeUnknown);
///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:
Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
CDelWorkerdl;
if(dl.DoModal()==IDOK)
{
UpdateData(true);
try
{
longid=dl.m_idid;
CStringstr;
str.Format("DELETEfromworkerwhereID=%d",id);
_variant_tRecordsAffected;
m_pConnection->Execute((_bstr_t)str,&RecordsAffected,adCmdText);
AfxMessageBox("删除成功!
");
}
catch(_com_error*e)
{
AfxMessageBox(e->ErrorMessage());
}
m_pSet->MoveNext();
if(m_pSet->IsEOF())
m_pSet->MoveLast();
UpdateData(FALSE);
}
}
voidCWorkerMgr6View:
:
OnChangWorker()
{
HRESULThr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=worker.mdb","","",adModeUnknown);
///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:
Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
CChangeWorkdl2;
if(dl2.DoModal()==IDOK)
{
UpdateData(true);
longid=dl2.m_wid;
m_pSet->MoveFirst();
while(m_pSet->m_id!
=dl2.m_wid)
m_pSet->MoveNext();
CChangeOnedl1;
dl1.m_name1=m_pSet->m_name;
dl1.m_id1=m_pSet->m_id;
dl1.m_sex1=m_pSet->m_sex;
dl1.m_born1=m_pSet->m_born;
dl1.m_zhichen1=m_pSet->m_zhichen;
dl1.m_xueli=m_pSet->m_xueli;
dl1.m_salary1=m_pSet->m_salary;
dl1.m_marry1=m_pSet->m_marry;
if(dl1.DoModal()==IDOK)
{
m_pSet->Edit();
m_pSet->m_name=dl1.m_name1;
m_pSet->m_id=dl1.m_id1;
m_pSet->m_sex=dl1.m_sex1;
m_pSet->m_born=dl1.m_born1;
m_pSet->m_zhichen=dl1.m_zhichen1;
m_pSet->m_xueli=dl1.m_xueli;
m_pSet->m_salary=dl1.m_salary1;
m_pSet->m_marry=dl1.m_marry1;
m_pSet->Update();
//m_pSet->MoveNext();
UpdateData(false);
}
}
}
voidCWorkerMgr6View:
:
OnMShowDetail()
{
CMShowDetaildl;
longid=m_pSet->m_id;
m_pSet->MoveFirst();
while(m_pSet->m_id!
=id)
m_pSet->MoveNext();
dl.m_month=m_pSet->m_month;
dl.m_id=m_pSet->m_id;
dl.m_name=m_pSet->m_name;
dl.m_base=m_pSet->m_base;
dl.m_jintie=m_pSet->m_jintie;
dl.m_gangtie=m_pSet->m_gangtie;
dl.m_butie=m_pSet->m_butie;
dl.m_fangtie=m_pSet->m_fangtie;
dl.m_jiaotong=m_pSet->m_jiaotong;
dl.m_yingfa=dl.m_base+dl.m_jintie+dl.m_gangtie+dl.m_butie+dl.m_fangtie+dl.m_jiaotong;
dl.m_fangzu=m_pSet->m_fangzu;
dl.m_chuxu=m_pSet->m_chuxu;
dl.m_huifei=m_pSet->m_huifei;
if(dl.m_yingfa<800)
{
dl.m_gerentax=0;
}
elseif(dl.m_yingfa>=800&&dl.m_yingfa<=1000)
{
dl.m_gerentax=dl.m_yingfa*0.05f;
}
elseif(dl.m_yingfa>1000&&dl.m_yingfa<=5000)
{
dl.m_gerentax=dl.m_yingfa*0.1f;
}
elseif(dl.m_yingfa>5000)
{
dl.m_gerentax=dl.m_yingfa*0.2f;
}
dl.m_yingkou=dl.m_fangzu+dl.m_chuxu+dl.m_huifei+dl.m_gerentax;
dl.m_shifa=dl.m_yingfa-dl.m_yingkou;
dl.m_other=m_pSet->m_other;
dl.DoModal();
}
voidCWorkerMgr6View:
:
OnAddMoney()
{
CAddMoneydl;
dl.m_id=m_pSet->m_id;
dl.m_name=m_pSet->m_name;
if(dl.DoModal()==IDOK)
{
m_pSet->Edit();
m_pSet->m_base=dl.m_base;
m_pSet->m_month=dl.m_month;
m_pSet->m_jintie=dl.m_jintie;
m_pSet->m_gangtie=dl.m_gangtie;
m_pSet->m_butie=dl.m_butie;
m_pSet->m_fangtie=dl.m_fangtie;
m_pSet->m_jiaotong=dl.m_jiaotong;
dl.m_yingfa=dl.m_base+dl.m_jintie+dl.m_gangtie+dl.m_butie+dl.m_fangtie+dl.m_jiaotong;
m_pSet->m_yingfa=dl.m_yingfa;
m_pSet->m_fangzu=dl.m_fangzu;
m_pSet->m_chuxu=dl.m_chuxu;
m_pSet->m_huifei=dl.m_huifei;
if(dl.m_yingfa<800)
{
dl.m_gerentax=0;
}
elseif(dl.m_yingfa>=800&&dl.m_yingfa<=1000)
{
dl.m_gerentax=dl.m_yingfa*0.05f;
}
elseif(dl.m_yingfa>1000&&dl.m_yingfa<=5000)
{
dl.m_gerentax=dl.m_yingfa*0.1f;
}
elseif(dl.m_yingfa>5000)
{
dl.m_gerentax=dl.m_yingfa*0.2f;
}
m_pSet->m_gerentax=dl.m_gerentax;
dl.m_yingkou=dl.m_fangtie+dl.m_chuxu+dl.m_huifei+dl.m_gerentax;
m_pSet->m_yingkou=dl.m_yingkou;
dl.m_shifa=dl.m_yingfa-dl.m_yingkou;
m_pSet->m_shifa=dl.m_shifa;
m_pSet->m_other=dl.m_other;
m_pSet->Update();
//m_pSet->MoveLast();
UpdateData(false);
}
}
voidCWorkerMgr6View:
:
OnDeleteMoney()
{
HRESULThr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=worker.mdb","","",adModeUnknown);
///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:
Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
CDeleteMoneydl;
if(dl.DoModal()==IDOK)
{
UpdateData(true);
try
{
longid=dl.m_id;
CStringstr;
str.Format("DELETEfromworkerwhereID=%d",id);
_variant_tRecordsAffected;
m_pConnection->Execute((_bstr_t)str,&RecordsAffected,adCmdText);
AfxMessageBox("删除成功!
");
}
catch(_com_error*e)
{
AfxMessageBox(e->ErrorMessage());
}
m_pSet->MoveNext();
if(m_pSet->IsEOF())
m_pSet->MoveLast();
UpdateData(FALSE);
}
}
voidCWorkerMgr6View:
:
OnChangeMoney()
{
HRESULThr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=worker.mdb","","",adModeUnknown);
}
}
catch(_com_errore)//捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);//显示错误信息
}
CChangeWorkdl2;
if(dl2.DoModal()==IDOK)
{
UpdateData(true);
longid=dl2.m_wid;
m_pSet->MoveFirst();
while(m_pSet->m_id!
=dl2.m_wid)
m_pSet->MoveNext();
CChangeMoneydl1;
dl1.m_month=m_pSet->m_month;
dl1.m_name=m_pSet->m_name;
dl1.m_id=m_pSet->m_id;
dl1.m_base=m_pSet->m_base;
dl1.m_jintie=m_pSet->m_jintie;
dl1.m_gangtie=m_pSet->m_gangtie;
dl1.m_butie=m_pSet->m_butie;
dl1.m_fangtie=m_pSet->m_fangtie;
dl1.m_jiaotong=m_pSet->m_jiaotong;
dl1.m_yingfa=dl1.m_base+dl1.m_jintie+dl1.m_gangtie+dl1.m_butie+dl1.m_fangtie+dl1.m_jiaotong;
dl1.m_fangzu=m_pSet->m_fangzu;
dl1.m_chuxu=m_pSet->m_chuxu;
dl1.m_huifei=m_pSet->m_huifei;
if(dl1.m_yingfa<800)
{
dl1.m_gerentax=0;
}
elseif(dl1.m_yingfa>=800&&dl1.m_yingfa<=1000)
{
dl1.m_gerentax=dl1.m_yingfa*0.05f;
}
elseif(dl1.m_yingfa>1000&&dl1.m_yingfa<=5000)
{
dl1.m_gerentax=dl1.m_yingfa*0.1f;
}
elseif(dl1.m_yingfa>5000)
{
dl1.m_gerentax=dl1.m_yingfa*0.2f;
}
dl1.m_yingkou=dl1.m_gerentax+dl1.m_fangzu+dl1.m_chuxu+dl1.m_huifei;
dl1.m_shifa=dl1.m_yingfa-dl1.m_yingkou;
dl1.m_other=dl1.m_other;
if(dl1.DoModal()==IDOK)
{
m_pSet->Edit();
m_pSet->m_name=dl1.m_name;
m_pSet->m_id=dl1.m_id;
m_pSet->m_month=dl1.m_month;
m_pSet->m_base=dl1.m_base;
m_pSet->m_jintie=dl1.m_jintie;
m_pSet->m_gangtie=dl1.m_gangtie;
m_pSet->m_butie=dl1.m_butie;
m_pSet->m_fangtie=dl1.m_fangtie;
m_pSet->m_jiaotong=dl1.m_jiaotong;
m_pSet->m_yingfa=dl1.m_base+dl1.m_jintie+dl1.m_gangtie+dl1.m_butie+dl1.m_fangtie+dl1.m_jiaotong;
m_pSet->m_fangzu=dl1.m_fangzu;
m_pSet->m_chuxu=dl1.m_chuxu;
m_pSet->m_huifei=dl1.m_huifei;
if(m_pSet->m_yingfa<800)
{
m_pSet->m_gerentax=0;
}
elseif(m_pSet->m_yingfa>=800&&m_pSet->m_yingfa<=1000)
{
m_pSet->m_gerentax=m_pSet->m_yingfa*0.05f;
}
elseif(m_pSet->m_yingfa>1000&&m_pSet->m_yingfa<=5000)
{
m_pSet->m_gerentax=m_pSet->m_yingfa*0.1f;
}
elseif(m_pSet->m_yingfa>5000)
{
m_pSet->m_gerentax=m_pSet->m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工工资 管理 系统 设计 源代码