版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C++实现职工工资管理系统本文实例为大家分享了C++实现职工工资管理系统的具体代码,供大家参考,具体内容如下
main.cpp
#includeiostream
#includevector
#includemap
#includealgorithm
#includestring
#includewindows.h
#include"data.h"
#include"user.h"
#include"fuction1-9.h"
#include"fuction10.h"
#include"menu.h"
usingnamespacestd;
intmain()
system("color3f");
if(login()==false)
return0;
load_inf();
while(show_menu());
save_inf();
return0;
}
data.h
#pragmaonce
constintmaxn=100;
usingnamespacestd;
structdepartment
intcode;
intnumber;
stringdepartment_name;
voidshow_inf(){printf("%50s部门号:%-6d部门名称:%-12s部门人数:%-6d\n","",code,department_name.c_str(),number);}
mapint,departmentdep;//部门表的映射
structemployee
intcode;
stringname;
stringgender;
intworking_age;
intdepartment_code;//部门编码
voidshow_inf(){printf("%50s编号:%-6d姓名:%-12s性别:%-9s工龄(年):%-6d部门:%-12s\n","",code,name.c_str(),gender.c_str(),working_age,dep[department_code].department_name.c_str());}
mapint,employeeemp;///存储数据的容器
structwage
intcode;
intbase_wage;//基本工资
intovertime;//加班工资
intbonus;//津贴
intgross_pay;//应发工资
intwithholding;//代扣款
intpayment;//实发工资
voidshow_inf(){printf("%30s员工号:%-6d员工姓名:%-12s基本工资:%-6d\t加班工资:%-6d\t津贴:%-6d\t应发工资:%-6d\t代扣款:%6d\t实发工资:%6d\n","",code,emp[code].name.c_str(),base_wage,overtime,bonus,gross_pay,withholding,payment);}
voidcalculate(){gross_pay=base_wage+overtime+bonus,payment=gross_pay-withholding;}
mapint,wagewag;
fuciton1-9.h
#pragmaonce
usingnamespacestd;
voidload_inf()
FILE*p;
chars[maxn];
system("cls");
if((p=fopen("employee.txt","r"))==NULL)
{
printf("%70s数据异常,无法访问!\n","");
system("pause");
exit(0);
}
while(fgets(s,100,p))
{
intcode;
charname[maxn];
chargender[maxn];
intworking_age;
intdepartment_code;
sscanf(s,"%d%s%s%d%d",code,name,gender,working_age,department_code);
emp[code]=(employee{code,name,gender,working_age,department_code});
}
printf("%70s","");
for(inti=0;ii++){cout".";Sleep(200);}
printf("员工信息导入成功!\n");
coutendl;
fclose(p);
if((p=fopen("department.txt","r"))==NULL)
{
printf("%70s数据异常,无法访问!\n","");
system("pause");
exit(0);
}
while(fgets(s,100,p))
{
intcode;
intnumber;
chardepartment_name[maxn];
sscanf(s,"%d%d%s",code,number,department_name);
dep[code]={code,number,department_name};
}
printf("%70s","");
for(inti=0;ii++){cout".";Sleep(200);}
printf("部门信息导入成功!\n");
coutendl;
fclose(p);
if((p=fopen("wage.txt","r"))==NULL)
{
printf("%70s数据异常,无法访问!","");
system("pause");
exit(0);
}
while(fgets(s,100,p))
{
intcode;//员工号
intbase_wage;//基本工资
intovertime;//加班工资
intbonus;//津贴
intgross_pay;
intwithholding;//代扣款
intpayment;
sscanf(s,"%d%d%d%d%d%d%d",code,base_wage,overtime,bonus,gross_pay,withholding,payment);
wag[code]=(wage{code,base_wage,overtime,bonus,gross_pay,withholding,payment});
}
printf("%70s","");
for(inti=0;ii++){cout".";Sleep(200);}
printf("工资信息导入成功!\n");
coutendl;
fclose(p);
return;
voidsave_inf()
FILE*p=fopen("employee.txt","w");
charinf[maxn];
for(autoit=emp.begin();it!=emp.end();it++)
{
sprintf(inf,"%d%s%s%d%d\n",it-second.code,it-.c_str(),it-second.gender.c_str(),it-second.working_age,it-second.department_code);
fputs(inf,p);
}
printf("%70s","");
for(inti=0;ii++){cout".";Sleep(200);}
printf("员工信息保存成功!\n");
fclose(p);
p=fopen("department.txt","w");
for(autoit=dep.begin();it!=dep.end();it++)
{
sprintf(inf,"%d%d%s\n",it-second.code,it-second.number,it-second.department_name.c_str());
fputs(inf,p);
}
printf("%70s","");
for(inti=0;ii++){cout".";Sleep(200);}
printf("部门信息保存成功!\n");
fclose(p);
p=fopen("wage.txt","w");
for(autoit=wag.begin();it!=wag.end();it++)
{
sprintf(inf,"%d%d%d%d%d%d%d\n",it-second.code,it-second.base_wage,it-second.overtime,it-second.bonus,it-second.gross_pay,it-second.withholding,it-second.payment);
fputs(inf,p);
}
printf("%70s","");
for(inti=0;ii++){cout".";Sleep(200);}
printf("工资信息保存成功!\n");
fclose(p);
return;
/以下为部门表的操作
voidadd_dep()
printf("%70s请输入要添加的部门号:","");
intcode;cincode;
stringdepartment_name;
if(!dep.count(code))
{
printf("%70s请输入部门名称:","");
while(1)
{
intflag=0;
cindepartment_name;
for(autoit=dep.begin();it!=dep.end();it++)
if(it-second.department_name==department_name)
{
printf("%70s该部门已存在,请重新输入!\n","");
flag=1;
}
if(!flag)break;
}
dep[code]={code,0,department_name};
printf("%70s部门添加成功!该部门信息如下:\n","");
dep[code].show_inf();
}
else
printf("%70s该部门已存在!\n","");
return;
voidchange_dep()
printf("%70s请输入要修改的部门编号:","");
intcode;cincode;
if(!dep.count(code))
printf("%70s该部门不存在!\n","");
else
{
printf("%70s该部门当前信息如下:\n","");
dep[code].show_inf();
printf("%70s请输入部门的新名字:","");
while(1)
{
stringname;cinname;
intflag=0;
for(autoit=dep.begin();it!=dep.end();it++)
if(it-second.department_name==name)
{
flag=1;
break;
}
if(flag)
printf("%70s部门名字重复!请重新输入\n","");
else
{
dep[code].department_name=name;
printf("%70s修改成功!\n","");
printf("%70s修改后的部门信息如下:\n","");
dep[code].show_inf();
break;
}
}
}
return;
voiddelete_dep()
printf("%70s请输入要删除的部门编号:","");
intcode;cincode;
if(!dep.count(code))
printf("%70s该部门不存在,无法删除!\n","");
elseif(!dep[code].number)//如果该部门没有人,则可删除
{
for(autoit=dep.begin();it!=dep.end();it++)
if(it-first==code)
{
printf("%70s您删除了%s\n","",it-second.department_name.c_str());
dep.erase(it);
break;
}
}
else
printf("%70s该部门有员工,不可删除!\n","");
return;
/以下为员工表的操作
voidadd_emp()
printf("%70s请输入要添加的员工号:","");
intcode;cincode;
if(!emp.count(code))
{
emp[code].code=code;
printf("%70s请输入员工的姓名:","");cinemp[code].name;
printf("%70s请输入员工的性别:","");cinemp[code].gender;
printf("%70s请输入员工的工龄:","");cinemp[code].working_age;
printf("%70s请输入员工的部门号:","");
intdepartment_code;
while(cindepartment_code!dep.count(department_code))
printf("%70s该部门不存在,请重新输入:","");
emp[code].department_code=department_code;
dep[department_code].number++;
printf("%70s员工信息添加成功!员工信息如下:\n","");
emp[code].show_inf();
}
else
printf("%70s该员工号已存在\n","");
return;
voidchange_emp()
intcode;
printf("%70s请输入要修改的员工号:","");
while(cincode!emp.count(code))
printf("%70s该员工不存在!请重新输入:","");
printf("%70s该员工当前信息如下:\n","");
emp[code].show_inf();
printf("%70s请输入修改后的工龄:","");cinemp[code].working_age;
printf("%70s请输入修改后的部门编码:","");
dep[emp[code].department_code].number--;///原部门人数减一
cinemp[code].department_code;
dep[emp[code].department_code].number++;//现部门人数加一
printf("%70s修改成功!修改之后的信息如下:\n","");
emp[code].show_inf();
return;
voiddelete_emp()
printf("%70s请输入要删除的员工号:","");
intcode;cincode;
if(!emp.count(code))
printf("%70s该员工不存在!无法删除\n","");
else
{
dep[emp[code].department_code].number--;//原部门人数减一
for(autoit=emp.begin();it!=emp.end();it++)
if(it-first==code)
{
printf("%70s您删除的员工信息如下:\n","");
emp[it-second.code].show_inf();
emp.erase(it);
break;
}
for(autoit=wag.begin();it!=wag.end();it++)
if(it-first==code)
{
wag.erase(it);
break;
}
}
return;
voidadd_wag()
printf("%70s请输入录入工资的员工编号:","");
intcode;cincode;
if(!emp.count(code))
printf("%70s该员工不存在!\n","");
elseif(wag.count(code))
printf("%70s该员工信息已录入!\n","");
else
{
wag[code].code=code;
printf("%70s请输入员工的基本工资:","");cinwag[code].base_wage;
printf("%70s请输入员工的加班工资:","");cinwag[code].overtime;
printf("%70s请输入员工的津贴:","");cinwag[code].bonus;
printf("%70s请输入员工的代扣款:","");cinwag[code].withholding;
printf("%70s员工工资信息添加成功!\n","");
printf("%70s工资信息如下:\n","");
wag[code].calculate();
wag[code].show_inf();
}
return;
voidchange_wag()
intcode;
printf("%70s要修改者的编号:","");
while(cincode!wag.count(code))
printf("%70s该员工不存在!请重新输入\n","");
printf("%70s该员工当前的工资信息如下\n","");
wag[code].show_inf();
printf("%70s请输入基本工资:","");cinwag[code].base_wage;
printf("%70s请输入加班工资:","");cinwag[code].overtime;
printf("%70s请输入津贴:","");cinwag[code].bonus;
printf("%70s请输入代扣款:","");cinwag[code].withholding;
wag[code].calculate();
printf("%70s修改成功!修改之后的工资信息如下\n","");
wag[code].show_inf();
return;
voiddelete_wag()
printf("%70s请输入要删除工资信息的员工编号:","");
intcode;cincode;
if(!wag.count(code))
printf("%70s不存在该员工的工资信息\n","");
else
{
for(autoit=wag.begin();it!=wag.end();it++)
if(it-first==code)
{
wag.erase(it);
printf("%70s删除成功!\n","");
break;
}
}
return;
}
fuction10.h
#pragmaonce
boolcomp1(constinta,constintb)//升序
returnwag[a].paymentwag[b].payment;
boolcomp2(constinta,constintb)
returnwag[a].paymentwag[b].payment;
boolsearch_inf()
system("cls");
printf("%70s0.返回\n","");
printf("%70s1.查询全部员工的工资\n","");
printf("%70s2.按员工号查询员工工资\n","");
printf("%70s3.按部门查询员工工资\n","");
printf("%70s4.按指定实发工资区间查询员工工资\n","");
printf("%70s5.按员工姓名查询员工工资\n","");
printf("%70s6.查询全部部门信息\n","");
printf("%70s7.按编号查询单个员工的基本信息\n","");
printf("%70s8.按姓名查询单个员工的基本信息\n","");
printf("%70s9.显示所有员工的基本信息\n","");
printf("%70s请输入操作编号[0-9]:","");
intope;
intcode;
stringname;
intdir;
intflag=0;
longlongsum=0;
vectorinttemp;//存储满足查询要求的人员编号
while(cinope!(ope=0ope=9))
printf("%70s输入非法,请重新输入:","");
if(!ope)
returnfalse;
switch(ope)
{
case1:
for(autoit=wag.begin();it!=wag.end();it++)
{
temp.push_back(it-first);
sum+=it-second.payment;
}
printf("%70s1.按实发工资升序\n","");
printf("%70s2.按实发工资降序\n","");
printf("%70s请输入操作类型:","");
while(cindirdir!=1dir!=2)
printf("%70s输入非法,请重新输入!\n","");
if(dir==1)
sort(temp.begin(),temp.end(),comp1);
else
sort(temp.begin(),temp.end(),comp2);
for(inti=0;i(int)temp.size();i++)
wag[temp[i]].show_inf();
printf("%144s合计:%10lld\n","",sum);
break;
case2:
printf("%70s请输入要查询的员工号:","");
cincode;
if(!emp.count(code))
printf("%70s该员工不存在!\n","");
elseif(!wag.count(code))
printf("%70s该员工的工资信息未录入!\n","");
else
wag[code].show_inf();
break;
case3:
printf("%70s请输入所要查询员工的部门:","");
cincode;
if(!dep.count(code))
printf("%70s该部门不存在!\n","");
else
{
for(autoit=wag.begin();it!=wag.end();it++)
if(emp[it-first].department_code==code)
{
temp.push_back(it-first);
sum+=it-second.payment;
}
printf("%70s1.按实发工资升序\n","");
printf("%70s2.按实发工资降序\n","");
printf("%70s请输入操作类型:","");
while(cindirdir!=1dir!=2)
printf("%70s输入非法,请重新输入!\n","");
if(dir==1)
sort(temp.begin(),temp.end(),comp1);
else
sort(temp.begin(),temp.end(),comp2);
for(inti=0;i(int)temp.size();i++)
wag[temp[i]].show_inf();
printf("%144s合计:%10lld\n","",sum);
}
break;
case4:
intup,down;
printf("%70s请输入实发工资区间的上限:","");
cinup;
printf("%70s请输入实发工资区间的下限:","");
cindown;
if(updown)
printf("%70s非法的输入!\n","");
else
{
for(autoit=wag.begin();it!=wag.end();it++)
if(it-second.payment=downit-second.payment=up)
{
temp.push_back(it-first);
sum+=it-second.payment;
}
if(!temp.size())
{
printf("%70s查询不到符合条件的员工!\n","");
cout""endl;
break;
}
printf("%70s1.按实发工资升序\n","");
printf("%70s2.按实发工资降序\n","");
printf("%70s请输入操作类型:","");
intdir;cindir;
if(dir==1)
sort(temp.begin(),temp.end(),comp1);
else
sort(temp.begin(),temp.end(),comp2);
for(inti=0;i(int)temp.size();i++)
wag[temp[i]].show_inf();
printf("%144s合计:%10lld\n","",sum);
}
break;
case5:
printf("%70s请输入员工姓名:","");
cinname;
for(autoit=emp.begin();it!=emp.end();it++)
if(it-==name)
{
wag[it-first].show_inf();
flag=1;
}
if(!flag)
printf("%70s查询不到此人!\n","");
break;/这个不需要排序,考虑到会有重名
case6:
for(autoit=dep.begin();it!=dep.end();it++)
dep[it-first].show_inf();
break;
case7:
printf("%70s请输入员工编号:","");
cincode;
if(!emp.count(code))
printf("%70s该员工不存在!\n","");
else
emp[code].show_inf();
break;
case8:
printf("%70s请输入员工姓名:","");
cinname;
for(autoit=emp.begin();it!=emp.end();it++)
if(it-==name)
{
flag=1;
emp[it-second.code].show_inf();
}
if(!flag)
printf("%70s查询不到此人!\n","");
break;
case9:
for(autoit=emp.begin();it!=emp.end();it++)
emp[it-second.code].show_inf();
break;
default:
returnfalse;
}
system("pause");
returntrue;
}
menu.h
#pragmaonce
usingnamespacestd;
boolshow_menu()
intdir;
system("cls");//清屏
printf("%70s*************************\n","");
printf("%70s欢迎进入职工工资管理系统!\n","");
printf("%70s*************************\n","");
printf("%70s0.退出系统\n","");
printf("%70s1.部门信息录入\n","");
printf("%70s2.部门信息修改\n","");
printf("%70s3.部门信息删除\n","");
printf("%70s4.员工信息录入\n","");
printf("%70s5.员工信息修改\n","");
printf("%70s6.员工信息删除\n","");
printf("%70s7.员工工资录入\n","");
printf("%70s8.员工工资修改\n","");
printf("%70s9.员工工资删除\n","");
printf("%70s10.信息查询\n","");
printf("%70s11.修改登录密码\n","");
printf("%70s请输入操作选项[0-11]:","");
while(cindir(dir0||dir11))printf("%70s非法指令,请重新输入:\n","");
switch(dir)
{
case0:
returnfalse;
case1:
system("cls");
add_dep();
system("pause");
break;
case2:
system("cls");
change_dep();
system("pause");
break;
case3:
system("cls");
delete_dep();
system("pause");
break;
case4:
system("cls");
add_emp();
system("pause");
break;
case5:
system("cls");
change_emp();
system("pause");
break;
case6:
system("cls");
delete_emp();
system("pause");
break;
case7:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某铝型材厂工艺操作制度
- 2026中国MEMS传感器微型化技术进展与产业生态构建报告
- 某电子厂售后服务制度
- 湖北省黄石市名校2027届化学九年级第一学期期中教学质量检测试题含解析
- 2026社区团购平台行业市场格局及发展前景分析报告
- 2026中国新能源发展趋势行业市场供需分析及投资评估规划分析研究报告
- 2026欧洲区块链技术应用现状发展机遇前景调研分析报告
- 2026融资租赁行业监管政策变迁对中小微企业支撑作用分析
- 2027届江苏省无锡市洛社中学化学九上期末统考试题含解析
- 2026中国通信网络建设行业市场供需动态与行业投资竞争态势规划
- 肛门疼痛学习课件
- 教师作业批改检查记录表
- 征兵体检培训试题及答案
- 英语句子成分及五种简单句PPT
- GB/T 880-2008无头销轴
- GB/T 8685-2008纺织品维护标签规范符号法
- GB/T 20066-2006钢和铁化学成分测定用试样的取样和制样方法
- 第四部分沥青路面养护课件
- 规划环评资料清单
- 深圳民润农产品配送连锁商业有限公司鲜活员工手册
- 中国茶文化(中文版)课件
评论
0/150
提交评论