还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
职工工资管理系统
1、设计目标按照软件工程的规范,以SQLServer或Access为后台数据库,以Delphi或VisualC++为前端开发工具,设计并实现一个简化的工资管理系统
2、需求描述该系统存储了某单位全体职工和工资信息职工的基本信息包括职工编号、姓名、性别、出生年月、职称、最后学历、工资和婚否每一个职工的工资信息包括月份、职工编号、职工姓名、基本工资、津贴、岗贴、补贴、房贴、交通补贴、应发数、房租、储蓄、会费、个人所得税、应扣数、实发数、其他收入个人所得税计算方法设为应发数少于800元为0;800~1000元的部分为5%;1000~5000元的部分为10%;5000元以上的部分为20%系统功能如下1.职工信息管理a.增加职工信息增加新职工时输入新职工的基本信息;b.删除某职工的基本信息如,职工死亡或离职时;c.修改某职工(指定职工编号)的某些信息(如,加工资、获得新学位、晋升职称、结婚或离婚)2.工资管理a.增加工资信息当增加新职工时,添加某职工的工资信息;b.职工离职或死亡时,删除某职工的工资信息;c.修改工资信息当月开始增加或减少某些项工资或扣款数变化时,修改某职工的部分工资信息;3.查询与统计a.查询职工信息,如查询全体职工信息,或按职称、学历、出生年月、出生年月之前/之后、已婚/未婚等条件或多个条件的组合来查询相应的职工信息b.查询指定编号职工的工资信息;c.按时间段统计职工收入或单位的工资支出
3、概要设计
4、详细设计voidCWorkerMgr6View::OnExit{OnExit;}voidCWorkerMgr6View::OnRecordFirst{ifm_pSet-IsBOF{m_pSet-SetFieldNullNULL;}else{m_pSet-MoveFirst;UpdateDataFALSE;//更新对话框窗口}}voidCWorkerMgr6View::OnRecordLast{m_pSet-MoveLast;UpdateDataFALSE;//更新对话框窗口}voidCWorkerMgr6View::OnRecordNext{ifm_pSet-IsBOFm_pSet-MoveNext;}UpdateDataFALSE;}voidCWorkerMgr6View::OnRecordPre{ifm_pSet-IsBOF{AfxMessageBox已经到达第一个记录;m_pSet-MoveFirst;}m_pSet-MovePrev;UpdateDataFALSE;}voidCWorkerMgr6View::OnAddWorker{ifSUCCEEDEDhr{hr=m_pConnection-OpenProvider=Microsoft.Jet.OLEDB.
4.0;DataSource=worker.mdbadModeUnknown;//连接数据库//上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97需要改为:Provider=Microsoft.Jet.OLEDB.
3.51;}}catch_com_errore///捕捉异常{CStringerrormessage;errormessage.Format连接数据库失败!\r\n错误信息:%se.ErrorMessage;AfxMessageBoxerrormessage;///显示错误信息}CAddWorkerdl;ifdl.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;UpdateDatafalse;}OnAddMoney;}voidCWorkerMgr6View::OnDeleteWorker{HRESULThr;try{hr=m_pConnection.CreateInstanceADODB.Connection;//创建Connection对象ifSUCCEEDEDhr{hr=m_pConnection-OpenProvider=Microsoft.Jet.OLEDB.
4.0;DataSource=worker.mdbadModeUnknown;///连接数据库///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97需要改为:Provider=Microsoft.Jet.OLEDB.
3.51;}}catch_com_errore///捕捉异常{CStringerrormessage;errormessage.Format连接数据库失败!\r\n错误信息:%se.ErrorMessage;AfxMessageBoxerrormessage;///显示错误信息}CDelWorkerdl;ifdl.DoModal==IDOK{UpdateDatatrue;try{longid=dl.m_idid;CStringstr;str.FormatDELETEfromworkerwhereID=%did;_variant_tRecordsAffected;m_pConnection-Execute_bstr_tstrRecordsAffectedadCmdText;AfxMessageBox删除成功!;}catch_com_error*e{AfxMessageBoxe-ErrorMessage;}m_pSet-MoveNext;ifm_pSet-IsEOFm_pSet-MoveLast;UpdateDataFALSE;}}voidCWorkerMgr6View::OnChangWorker{HRESULThr;try{hr=m_pConnection.CreateInstanceADODB.Connection;//创建Connection对象ifSUCCEEDEDhr{hr=m_pConnection-OpenProvider=Microsoft.Jet.OLEDB.
4.0;DataSource=worker.mdbadModeUnknown;///连接数据库///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97需要改为:Provider=Microsoft.Jet.OLEDB.
3.51;}}catch_com_errore///捕捉异常{CStringerrormessage;errormessage.Format连接数据库失败!\r\n错误信息:%se.ErrorMessage;AfxMessageBoxerrormessage;///显示错误信息}CChangeWorkdl2;ifdl
2.DoModal==IDOK{UpdateDatatrue;longid=dl
2.m_wid;m_pSet-MoveFirst;whilem_pSet-m_id!=dl
2.m_widm_pSet-MoveNext;CChangeOnedl1;dl
1.m_name1=m_pSet-m_name;dl
1.m_id1=m_pSet-m_id;dl
1.m_sex1=m_pSet-m_sex;dl
1.m_born1=m_pSet-m_born;dl
1.m_zhichen1=m_pSet-m_zhichen;dl
1.m_xueli=m_pSet-m_xueli;dl
1.m_salary1=m_pSet-m_salary;dl
1.m_marry1=m_pSet-m_marry;ifdl
1.DoModal==IDOK{m_pSet-Edit;m_pSet-m_name=dl
1.m_name1;m_pSet-m_id=dl
1.m_id1;m_pSet-m_sex=dl
1.m_sex1;m_pSet-m_born=dl
1.m_born1;m_pSet-m_zhichen=dl
1.m_zhichen1;m_pSet-m_xueli=dl
1.m_xueli;m_pSet-m_salary=dl
1.m_salary1;m_pSet-m_marry=dl
1.m_marry1;m_pSet-Update;//m_pSet-MoveNext;UpdateDatafalse;}}}voidCWorkerMgr6View::OnMShowDetail{CMShowDetaildl;longid=m_pSet-m_id;m_pSet-MoveFirst;whilem_pSet-m_id!=idm_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;ifdl.m_yingfa800{dl.m_gerentax=0;}elseifdl.m_yingfa=800dl.m_yingfa=1000{dl.m_gerentax=dl.m_yingfa*
0.05f;}elseifdl.m_yingfa1000dl.m_yingfa=5000{dl.m_gerentax=dl.m_yingfa*
0.1f;}elseifdl.m_yingfa5000{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;ifdl.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;ifdl.m_yingfa800{dl.m_gerentax=0;}elseifdl.m_yingfa=800dl.m_yingfa=1000{dl.m_gerentax=dl.m_yingfa*
0.05f;}elseifdl.m_yingfa1000dl.m_yingfa=5000{dl.m_gerentax=dl.m_yingfa*
0.1f;}elseifdl.m_yingfa5000{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;UpdateDatafalse;}}voidCWorkerMgr6View::OnDeleteMoney{HRESULThr;try{hr=m_pConnection.CreateInstanceADODB.Connection;//创建Connection对象ifSUCCEEDEDhr{hr=m_pConnection-OpenProvider=Microsoft.Jet.OLEDB.
4.0;DataSource=worker.mdbadModeUnknown;///连接数据库///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97需要改为:Provider=Microsoft.Jet.OLEDB.
3.51;}}catch_com_errore///捕捉异常{CStringerrormessage;errormessage.Format连接数据库失败!\r\n错误信息:%se.ErrorMessage;AfxMessageBoxerrormessage;///显示错误信息}CDeleteMoneydl;ifdl.DoModal==IDOK{UpdateDatatrue;try{longid=dl.m_id;CStringstr;str.FormatDELETEfromworkerwhereID=%did;_variant_tRecordsAffected;m_pConnection-Execute_bstr_tstrRecordsAffectedadCmdText;AfxMessageBox删除成功!;}catch_com_error*e{AfxMessageBoxe-ErrorMessage;}m_pSet-MoveNext;ifm_pSet-IsEOFm_pSet-MoveLast;UpdateDataFALSE;}}voidCWorkerMgr6View::OnChangeMoney{HRESULThr;try{hr=m_pConnection.CreateInstanceADODB.Connection;//创建Connection对象ifSUCCEEDEDhr{hr=m_pConnection-OpenProvider=Microsoft.Jet.OLEDB.
4.0;DataSource=worker.mdbadModeUnknown;}}catch_com_errore//捕捉异常{CStringerrormessage;errormessage.Format连接数据库失败!\r\n错误信息:%se.ErrorMessage;AfxMessageBoxerrormessage;//显示错误信息}CChangeWorkdl2;ifdl
2.DoModal==IDOK{UpdateDatatrue;longid=dl
2.m_wid;m_pSet-MoveFirst;whilem_pSet-m_id!=dl
2.m_widm_pSet-MoveNext;CChangeMoneydl1;dl
1.m_month=m_pSet-m_month;dl
1.m_name=m_pSet-m_name;dl
1.m_id=m_pSet-m_id;dl
1.m_base=m_pSet-m_base;dl
1.m_jintie=m_pSet-m_jintie;dl
1.m_gangtie=m_pSet-m_gangtie;dl
1.m_butie=m_pSet-m_butie;dl
1.m_fangtie=m_pSet-m_fangtie;dl
1.m_jiaotong=m_pSet-m_jiaotong;dl
1.m_yingfa=dl
1.m_base+dl
1.m_jintie+dl
1.m_gangtie+dl
1.m_butie+dl
1.m_fangtie+dl
1.m_jiaotong;dl
1.m_fangzu=m_pSet-m_fangzu;dl
1.m_chuxu=m_pSet-m_chuxu;dl
1.m_huifei=m_pSet-m_huifei;ifdl
1.m_yingfa800{dl
1.m_gerentax=0;}elseifdl
1.m_yingfa=800dl
1.m_yingfa=1000{dl
1.m_gerentax=dl
1.m_yingfa*
0.05f;}elseifdl
1.m_yingfa1000dl
1.m_yingfa=5000{dl
1.m_gerentax=dl
1.m_yingfa*
0.1f;}elseifdl
1.m_yingfa5000{dl
1.m_gerentax=dl
1.m_yingfa*
0.2f;}dl
1.m_yingkou=dl
1.m_gerentax+dl
1.m_fangzu+dl
1.m_chuxu+dl
1.m_huifei;dl
1.m_shifa=dl
1.m_yingfa-dl
1.m_yingkou;dl
1.m_other=dl
1.m_other;ifdl
1.DoModal==IDOK{m_pSet-Edit;m_pSet-m_name=dl
1.m_name;m_pSet-m_id=dl
1.m_id;m_pSet-m_month=dl
1.m_month;m_pSet-m_base=dl
1.m_base;m_pSet-m_jintie=dl
1.m_jintie;m_pSet-m_gangtie=dl
1.m_gangtie;m_pSet-m_butie=dl
1.m_butie;m_pSet-m_fangtie=dl
1.m_fangtie;m_pSet-m_jiaotong=dl
1.m_jiaotong;m_pSet-m_yingfa=dl
1.m_base+dl
1.m_jintie+dl
1.m_gangtie+dl
1.m_butie+dl
1.m_fangtie+dl
1.m_jiaotong;try{hr=m_pConnection.CreateInstanceADODB.Connection;//创建Connection对象ifSUCCEEDEDhr{hr=m_pConnection-OpenProvider=Microsoft.Jet.OLEDB.
4.0;DataSource=worker.mdbadModeUnknown;}}catch_com_errore//捕捉异常{CStringerrormessage;errormessage.Format连接数据库失败!\r\n错误信息:%se.ErrorMessage;AfxMessageBoxerrormessage;//显示错误信息}CFindNodl2;ifdl
2.DoModal==IDOK{UpdateDatatrue;longid=dl
2.m_id;m_pSet-MoveFirst;whilem_pSet-m_id!=dl
2.m_idm_pSet-MoveNext;CMShowDetaildl1;dl
1.m_month=m_pSet-m_month;dl
1.m_name=m_pSet-m_name;dl
1.m_id=m_pSet-m_id;dl
1.m_base=m_pSet-m_base;dl
1.m_jintie=m_pSet-m_jintie;dl
1.m_gangtie=m_pSet-m_gangtie;dl
1.m_butie=m_pSet-m_butie;dl
1.m_fangtie=m_pSet-m_fangtie;dl
1.m_jiaotong=m_pSet-m_jiaotong;dl
1.m_yingfa=dl
1.m_base+dl
1.m_jintie+dl
1.m_gangtie+dl
1.m_butie+dl
1.m_fangtie+dl
1.m_jiaotong;dl
1.m_fangzu=m_pSet-m_fangzu;dl
1.m_chuxu=m_pSet-m_chuxu;dl
1.m_huifei=m_pSet-m_huifei;ifdl
1.m_yingfa800{dl
1.m_gerentax=0;}elseifdl
1.m_yingfa=800dl
1.m_yingfa=1000{dl
1.m_gerentax=dl
1.m_yingfa*
0.05f;}elseifdl
1.m_yingfa1000dl
1.m_yingfa=5000{dl
1.m_gerentax=dl
1.m_yingfa*
0.1f;}elseifdl
1.m_yingfa5000{dl
1.m_gerentax=dl
1.m_yingfa*
0.2f;}dl
1.m_yingkou=dl
1.m_gerentax+dl
1.m_fangzu+dl
1.m_chuxu+dl
1.m_huifei;dl
1.m_shifa=dl
1.m_yingfa-dl
1.m_yingkou;dl
1.m_other=dl
1.m_other;dl
1.DoModal;}}voidCWorkerMgr6View::OnStaticsMoney{HRESULThr;try{hr=m_pConnection.CreateInstanceADODB.Connection;//创建Connection对象ifSUCCEEDEDhr{hr=m_pConnection-OpenProvider=Microsoft.Jet.OLEDB.
4.0;DataSource=worker.mdbadModeUnknown;}}catch_com_errore//捕捉异常{CStringerrormessage;errormessage.Format连接数据库失败!\r\n错误信息:%se.ErrorMessage;AfxMessageBoxerrormessage;//显示错误信息}m_pSet-MoveFirst;floatsum=0;while!m_pSet-IsEOF{sum=sum+m_pSet-m_shifa;m_pSet-MoveNext;}CStringstring;string.Format%fsum;MessageBoxstring统计当月支出MB_OKCANCEL;}机很有帮助。