员工工资管理系统源代码.docx
《员工工资管理系统源代码.docx》由会员分享,可在线阅读,更多相关《员工工资管理系统源代码.docx(13页珍藏版)》请在冰豆网上搜索。
员工工资管理系统源代码
#mclude#mcludetvpedefstmct
{
intbasic;〃基本工资intposition;//岗位工资intsubsidy;//津贴intwages;//奖金intsum;//总工资}money;
tvpedefstmct
{
chai-num[20];//职工号clwnaine[20]y/姓名intage;//年龄charsex[20];//性别moneysalary;〃工资}employee;
mtPrintjiniuQ^/账号密码输入
voidFscan_infoiniationO;//“职工信息.txt”文件写入voidPiiiit_staffQ;//全体员T
voidPrmt_empll(chai-x[5!
]);//按职工号查询
voidPriiit_empl2(chars[5!
]);//按姓名查询
voidPrmt_MauiIiiterfaceQ^/主界面
voidPrmt_Iiiteiface_lQ;//职工信息录入界面
voidPrmt_Iiiteiface_2Qy/职工信息查询界面
voidPimt_Iiiteiface_30-J!
职工工资排序界面
voidPimt_Iiiterface_4Q;//职工总工资
voidPrmt_Iiiterface_5()'J!
文件读出
voidqsort(iiitLintr);〃快速排序
voidPimt_delete(iiitt);〃删除职工信息
voidPrmt_Iiiteiface_2_1(iiitt);〃职工信息修改界面mtfvaiizheng(charsl[],chars2[]);//密码验证函数employeest[5OO]y/iB录职工信息的函数mtn;//职工总数voidmain()
intx;
employeeem;
pmitf(”@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5”);
pmitf(“@@@@欢迎使用员工工资管理系统@@@@\n”);
pmitf(”@@@@制作人:
刘爽@@@@\n”);
pmitf(“@@@@在使用中产生的任何问题,欢迎进行批评指正@@@@\n”);
pnntf(”@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5”);
pnnrffg”);
if(Print_jinru())
{
Fscaii_uifbiniation();
Piint_ManiIiiteiiace();
}
elsereturn;
}
voidFscan_infbmiation()
{
FILE*fp;
inti;
if((fp=fopen(”职工信息・txfJT”))==NULL)
{
piiiitf(ncaimotopentliisfile\iiH);
return;
}
fscanf(fp;*%d,\&n);
for(i=l;i<=n;i++)
{
fscanf(fp;,%s%s%d%s%d%d%dH,st[i].num,st[i].name,&st[i].age,st[i].sex,&st[i].salaiybasic,&st[i].salary,subsidy,&st[i].salary,wag亡s);
st[i].salaiy.sum=st[i].salaiybasic+st[i].salaiysubsidy+st[i].salary.wages;
}
fclose(fp);
}
mtfyaiizheng(charsl[],chars2[])
{
FILE*fpl,*fp2;
chai-strl[40]=n,\str2[40]=,M\st;
mtt;
if((fpl=fbpenC<号验证・in”,T))==NULL)
{
prmtf(ncaimotopentliisfile\iiH);return0;
}
t=0;
st=fgetc(fpl);
while(st!
='#')
{
strl[t]=st;
t++;st=fgetc(fpl);
}
if((如2=fopen(”密码验证.in”,”F'))=NULL)
{
piiiitf("caimotopenthisfile\n");return0;
}
t=0;
st=fgetc(fp2);
while(st!
='#')
{
str2[t]=st;
t++;st=fgetc(fp2);
}
fclose(fpl);
fclose(fp2);
if((strcmp(sti-1,s1)=0)&&(strcmp(str2,s2)==0))return1;
else
return0;
}
mtPrint_jini-uQ
{
intf.d;
chai-x[20],y[20];
f=0;
d=0;
while(l)
pnntf(”请输入账号J;
scanf(”%s”,x);
getcharQ;
printf(”请输入密码:
”);scaiif(M%s'\y);
getcharQ;
f=fyanzlieng(x,y);
if(d>3)
{
pnntf(”错误次数太多,退出系统\n”);
return0;
}
if(f>0)break;
else{
pnntf(”账号或密码输入错误,请重新输入\n”);d++;
}
}
pmirf(”\n”);
putf(”欢迎进入员工工资管理系统!
帕“);
retmn1;
}voidPrmt_MauiIiiterfaceQ{
intx;
pnntfC,\nM);
printf(M*************************
pnntfC,\nM);
piintf("1.职工信息录入\n");pnntfC*2.职工信息查询\n”);pmitf(”3.职工工资排序\n”);pmitf(”4.统计职工总工资\n”);pmitf(“5.保存到文件\n”);pnntfC'6.退出职工工资系统5”);pnntf(-iW选择所需操作小);if(x=l)
Piint_Iiitei-face_l(J;
else
if(x=2)
Piint_Iiitei-face_20;
else
if(x=3)
Piint_Iiitei-face_30;
else
if(x=4)
Piint_Iiitei-face_40;
else
if(x=5)
Piint_Iiitei-face_50;
else
if(x=6)
pnntff233333333333333333333333333333333333333333333333333333\iT);
return;}else
pnntf(”输入命令错误,返回主菜单(再乱输入我找人打你啊)\n”);Piint_ManiIiiteiiace();
voidPrmt_Iiiterface_l()
if(n>500)
printfC超出职工最大数\iT);
Piint_ManiIiitei-face();
printfp*************************
pmitf(噺建职工号J');
scanfC%s",st[n].num);pmHff姓名,);
scanf(”%s",st[n]・nani亡);pmHf(”年龄上);scanfC%d”,&st[n].age);pmitf(”性别:
”);scanfC%s”,st[n]・sex);pmitf(”基本工资:
”);scanfC%cT、&st[n].salary,basic);pmitf(”津贴:
”);scanfC%cT、&st[n].salary,subsidy);pmitf(”奖金:
”);scanf(,,%cl,\&st[n].salary,wages);st[n].salaiysum=st[n].salary.basic+st[n].salaiysubsidy+st[n].salary.wages;printf("职工信息已成功录入\n");Print_MauiIiitei-face();
}voidPrmt_Iiiterface_2(){
intx;
chars[5O],y[5O];
pnntf(M\nM);
pnntf(M\nM);
pnntfC'l.查询所有职工\n”);
pnntfC*2.按职工号查询\n”);
pnntfC3.按职工姓名查询\n”);
pmitf(”4.返回主菜单\n”);pnntfC-iW选择查找方式W);
scanff%d';&x);
if(x=l)
Print_staff();
if(x=2)
{pnmf("请输入职工工号:
”);scaiif(M%s,\y);
Print_empll(y);
}
else
if(x=3)
{
pruitfC1请输入职工姓名:
”);scaiif(M%s'\s);
Piint_empl2(s);
}else
if(x=4)
PiinCMaiiiIiitei-face();
else
pnmf(”输入命令错误,返回上一层W);
Piint_Iiitei-face_2Q;
voidPrmt_Iiiterface_3()
charch[10];
pnntf(M\nM);
qsort(l卫);
prmtf(”排序完成!
排序后结果请从查询全体职工处查看5”);
Print_MauiIiitei-face();
voidPrmt_Iiiterface_4()
mti,All=0;
charch[10];
pnntf(M\nM);
for(i=l;i<=n;i++)
All=All+st[i].salary.sum;
printf(“所有职工的总工资为:
%d\n“,All);
prmtf(”请输入任意字符并敲回车键返回主菜单\11”);scanf(H%s,\&ch);
Print_MauiIiitei-face();
voidPrmt_Iiiterface_5()
FILE*fp;
charch[10];
inti;
if((fp=fopen(”职工信息.txt,,/wn))=NULL)
piiiitf(ncaimotopentliisfile\iiH);return;
}
for(i=l;i<=n;i++)
fprmtf^fp/^s%s%d%s%d%d%d\n,\st[i].num,st[i].name,st[i].age,st[i].sex,st[i].salary.basi
c,st[i].salary.subsidy;st[i].salaiy.wages);
fclose(fp);
pmitffE);
pnntf(”己保存到文件\n“);
pgrf(”\n”);
pnntf(-请输入任意字符返回主菜单\n”);
scanf(H%s,\&ch);
Print_Mauinitei-face();
}
”*************************
帅比的分割线*************************”
for(i=l;i<=n;i++)
{
pnntf(”职工工号:
%s\nH,st[i].num);pnntf(”姓名:
%s\n'\st[i].name);
printfC1年龄:
%d\nH,st[i].age);性别:
%s\nH,st[i].sex);
pnntf(”基本工资:
%d\nM,st[i].salary,basic);pnntf(”津贴:
%d\n'\st[i].salaiysubsidy);pnntf(”奖金:
%d\n'\st[i].salaiywages);printf{”总工资:
%d\n'\st[i].salary.sum);pnntf(%V);
}
pmitff返回上一层曲);
Pnnt_Intei-face_2Q;
}
voidPriiit_empll(charx[])
{
inti,t,v,d=0:
for(i=l;i<=n;i++)
if(strcmp(x,st[i].num)=0)
{
t=l;
d=l;
pnntf(”职工工号:
%s\n”,st[i].num);
姓名:
%s\ii",st[i].name);
printfC年龄:
%d\ir\st[i].age);
printfC性别:
%s\nH,st[i].sex);printff*基本工资:
%d\iif\st[i].salary,basic);printf(”津贴:
%d\ir\st[i].salary.subsidy);printf(”奖金:
%d\n,\st[i].salary.wages);printf(”总工资:
%d\n",st[i]・salary.sum);
pnntf(恤”);break;
}
if(d>0)
{
printff如需删除请按2,修改请按1,返回请按0\nH);scanfC%d”,&y);
疋(y==2)
Priiit_delete(t);
else
if(v==l)
Priiit_Iiiteiiace_2_1(t);
else
if(y==o)
Priiit_Iiiteiiace_2();
else
{
pmitfC输入命令错误,返回上一层(再乱输入我找人打你啊)\n”);Priiit_Iiiteiiace_2();
}
}
else
{
pnntfC对不起,查无此人(本系统不包括路人甲乙丙,不要乱输=!
)\1T);请重新选择查询方式\n”);
Piiiit_Iiitei-face_2();
}
}
voidPiiiit_empl2(chai-s[])
{
intigy=0;
pmitffW);
for(i=l;i<=n;i++)
if(sticmp(s,st[i].name)==0)
t=i;y=i;
pnntfC职工工号:
%s\n”,st[i].num);
pimtf(n姓名:
%s\n”、st[i].name);
prmtf(H年龄:
%d\n”,st[i].age);
prmtfC*性别:
%s\ii\st[i].sex);
pnntfC基本工资:
%d\ir\st[i].salarybasic);
pdntfC津贴:
%d\n”,st[i]・salary.subsidy);
prmtf(n奖金:
%d\ir\st[i].salary.wages);
pnntf(”总工资:
%d\nn,st[i].salary.sum);
pnntfC\iT);
break;
}
if(v>o)
{
如需删除请按2,修改请按1,返回请按0(再乱输入我找人打你啊)\n”);scanf(”%d雹&x);
if(x==2)
Pimt_delete(t);
else
if(x==l)
Pimt_Iiiteiface_2_l(t);
else
if(x==0)
Pimt_Iiiteiiace_2();
else
{
prmtf(H输入命令错误,返回上一层\n”);
Pimt_Iiiteiiace_2();
}
}
else
{
pnntfC对不起,查无此人(本系统不包括•路人甲乙丙,不要乱输=!
)\iT);pimtf("请重新选择查询方式\n");
Prmt_nitei-face_2();
}
}
voidPrmt_delete(mtt)
{
st[t].salary.sum=0;
qsort(l卫);
ii一;
pnntf(”已删除该职工并排序,自动返回主菜单5”);
Priiit_MauiIiitei-face();
voidPrmt_Iiiterface_2_l(mtt)
{
intx;
pnntf(H\nM);
printf(”请选择以下选项:
\n”);
pnntf(Ml.职工号\n“);
pnntf(M2.姓名\n“);
pmitf(”3.年龄\n”);
pnntf(M4.性别\n“);
printf(n5•基本工资\n”);
pnntf(M6.津贴\n“);
pnntf(M7.奖金\n”);
pnntf("8.返回上一层\n”);
pnntf("9.返回主菜单\n”);
scanff%d役&x);
switch(x)
{
case1:
scaiif(,,%s,\st[t].num);break;
case2:
scaiif(,,%s,\st[t].name);break;
case3:
scaiif(,,%d,\st[t].age);bieak;
case4:
scanf(ll%s,\st[t].sex);break;
case5:
scaiif(,,%s,\st[t].salaiybasic);bieak;
case6:
scanf("%d,\st[t].salary.subsidy);break;
case7:
scaiif(,,%d,\st[t].salaiywages);break:
}st[t].salary.sum=st[t].salaiybasic+st[t].salary.subsidy+st[t].salary.wages;if(x<=8)
Print_Iiitei-face_20;
else
if(x=9)
PiinCMaiiiIiitei-face();
}
voidqsort(mtLintr)inti,j,mid;employeett;
nud=st[(l+i)/2].salary.sum;
do
{
while(st[i].salary.sum>nud)i++;while(st[j].salary.sum{
st[i]=st[j];
st[j]=tt;
i++;
J-S
}
}wlule(i<=j);
if(iif(l