员工工资管理系统源代码.docx
《员工工资管理系统源代码.docx》由会员分享,可在线阅读,更多相关《员工工资管理系统源代码.docx(20页珍藏版)》请在冰豆网上搜索。
员工工资管理系统源代码
#include
#include
typedefstruct
{
intbasic;//基本工资
intposition;//岗位工资
intsubsidy;//津贴
intwages;//奖金
intsum;//总工资
}money;
typedefstruct
{
charnum[20];//职工号
charname[20];//姓名
intage;//年龄
charsex[20];//性别
moneysalary;//工资
}employee;
intPrint_jinru();//账号密码输入
voidFscan_information();//“职工信息.txt”文件写入
voidPrint_staff();//全体员工
voidPrint_empl1(charx[51]);//按职工号查询
voidPrint_empl2(chars[51]);//按姓名查询
voidPrint_MainInterface();//主界面
voidPrint_Interface_1();//职工信息录入界面
voidPrint_Interface_2();//职工信息查询界面
voidPrint_Interface_3();//职工工资排序界面
voidPrint_Interface_4();//职工总工资
voidPrint_Interface_5();//文件读出
voidqsort(intl,intr);//快速排序
voidPrint_delete(intt);//删除职工信息
voidPrint_Interface_2_1(intt);//职工信息修改界面
intfyanzheng(chars1[],chars2[]);//密码验证函数
employeest[500];//记录职工信息的函数
intn;//职工总数
voidmain()
{
intx;
employeeem;
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("@@@@欢迎使用员工工资管理系统@@@@\n");
printf("@@@@制作人:
刘爽@@@@\n");
printf("@@@@在使用中产生的任何问题,欢迎进行批评指正@@@@\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("\n");
printf("\n");
printf("\n");
if(Print_jinru())
{
Fscan_information();
Print_MainInterface();
}
elsereturn;
}
voidFscan_information()
{
FILE*fp;
inti;
if((fp=fopen("职工信息.txt","r"))==NULL)
{
printf("cannotopenthisfile\n");
return;
}
fscanf(fp,"%d",&n);
for(i=1;i<=n;i++)
{
fscanf(fp,"%s%s%d%s%d%d%d",st[i].num,st[i].name,&st[i].age,st[i].sex,&st[i].salary.basic,&st[i].salary.subsidy,&st[i].salary.wages);
st[i].salary.sum=st[i].salary.basic+st[i].salary.subsidy+st[i].salary.wages;
}
fclose(fp);
}
intfyanzheng(chars1[],chars2[])
{
FILE*fp1,*fp2;
charstr1[40]="",str2[40]="",st;
intt;
if((fp1=fopen("账号验证.in","r"))==NULL)
{
printf("cannotopenthisfile\n");
return0;
}
t=0;
st=fgetc(fp1);
while(st!
='#')
{
str1[t]=st;
t++;
st=fgetc(fp1);
}
if((fp2=fopen("密码验证.in","r"))==NULL)
{
printf("cannotopenthisfile\n");
return0;
}
t=0;
st=fgetc(fp2);
while(st!
='#')
{
str2[t]=st;
t++;
st=fgetc(fp2);
}
fclose(fp1);
fclose(fp2);
if((strcmp(str1,s1)==0)&&(strcmp(str2,s2)==0))
return1;
else
return0;
}
intPrint_jinru()
{
intf,d;
charx[20],y[20];
f=0;
d=0;
while
(1)
{
printf("请输入账号:
");
scanf("%s",x);
getchar();
printf("请输入密码:
");
scanf("%s",y);
getchar();
f=fyanzheng(x,y);
if(d>3)
{
printf("错误次数太多,退出系统\n");
return0;
}
if(f>0)break;
else{
printf("账号或密码输入错误,请重新输入\n");
d++;
}
}
printf("\n");
printf("欢迎进入员工工资管理系统!
!
!
\n");
return1;
}
voidPrint_MainInterface()
{
intx;
printf("\n");
printf("*************************华丽的分割线*************************\n");
printf("\n");
printf("1.职工信息录入\n");
printf("2.职工信息查询\n");
printf("3.职工工资排序\n");
printf("4.统计职工总工资\n");
printf("5.保存到文件\n");
printf("6.退出职工工资系统\n");
printf("请选择所需操作:
");
scanf("%d",&x);
if(x==1)
Print_Interface_1();
else
if(x==2)
Print_Interface_2();
else
if(x==3)
Print_Interface_3();
else
if(x==4)
Print_Interface_4();
else
if(x==5)
Print_Interface_5();
else
if(x==6)
{
printf("***********************\n");
printf("***********\n");
printf("***********\n");
printf("****************************\n");
printf("*********\n");
printf("*********\n");
printf("**************************\n");
//printf("233333333333333333333333333333333333333333333333333333\n");
return;
}
else
{
printf("输入命令错误,返回主菜单(再乱输入我找人打你啊)\n");
Print_MainInterface();
}
}
voidPrint_Interface_1()
{
n++;
if(n>500)
{
printf("超出职工最大数\n");
Print_MainInterface();
}
printf("\n");
printf("*************************妖精的分割线*************************\n");
printf("\n");
printf("新建职工号:
");
scanf("%s",st[n].num);
printf("姓名:
");
scanf("%s",st[n].name);
printf("年龄:
");
scanf("%d",&st[n].age);
printf("性别:
");
scanf("%s",st[n].sex);
printf("基本工资:
");
scanf("%d",&st[n].salary.basic);
printf("津贴:
");
scanf("%d",&st[n].salary.subsidy);
printf("奖金:
");
scanf("%d",&st[n].salary.wages);
st[n].salary.sum=st[n].salary.basic+st[n].salary.subsidy+st[n].salary.wages;
printf("职工信息已成功录入\n");
Print_MainInterface();
}
voidPrint_Interface_2()
{
intx;
chars[50],y[50];
printf("\n");
printf("*************************逗比的分割线*************************\n");
printf("\n");
printf("1.查询所有职工\n");
printf("2.按职工号查询\n");
printf("3.按职工姓名查询\n");
printf("4.返回主菜单\n");
printf("请选择查找方式:
\n");
scanf("%d",&x);
if(x==1)
Print_staff();
else
if(x==2)
{
printf("请输入职工工号:
");
scanf("%s",y);
Print_empl1(y);
}
else
if(x==3)
{
printf("请输入职工姓名:
");
scanf("%s",s);
Print_empl2(s);
}
else
if(x==4)
Print_MainInterface();
else
{
printf("输入命令错误,返回上一层\n");
Print_Interface_2();
}
}
voidPrint_Interface_3()
{
charch[10];
printf("\n");
qsort(1,n);
printf("排序完成!
排序后结果请从查询全体职工处查看\n");
Print_MainInterface();
}
voidPrint_Interface_4()
{
inti,All=0;
charch[10];
printf("\n");
for(i=1;i<=n;i++)
All=All+st[i].salary.sum;
printf("所有职工的总工资为:
%d\n",All);
printf("请输入任意字符并敲回车键返回主菜单\n");
scanf("%s",&ch);
Print_MainInterface();
}
voidPrint_Interface_5()
{
FILE*fp;
charch[10];
inti;
if((fp=fopen("职工信息.txt","w"))==NULL)
{
printf("cannotopenthisfile\n");
return;
}
fprintf(fp,"%d\n",n);
for(i=1;i<=n;i++)
fprintf(fp,"%s%s%d%s%d%d%d\n",st[i].num,st[i].name,st[i].age,st[i].sex,st[i].salary.basic,st[i].salary.subsidy,st[i].salary.wages);
fclose(fp);
printf("\n");
printf("已保存到文件\n");
printf("\n");
printf("请输入任意字符返回主菜单\n");
scanf("%s",&ch);
Print_MainInterface();
}
voidPrint_staff()
{
inti;
printf("\n");
printf("*************************帅比的分割线*************************");
printf("\n");
for(i=1;i<=n;i++)
{
printf("职工工号:
%s\n",st[i].num);
printf("姓名:
%s\n",st[i].name);
printf("年龄:
%d\n",st[i].age);
printf("性别:
%s\n",st[i].sex);
printf("基本工资:
%d\n",st[i].salary.basic);
printf("津贴:
%d\n",st[i].salary.subsidy);
printf("奖金:
%d\n",st[i].salary.wages);
printf("总工资:
%d\n",st[i].salary.sum);
printf("\n");
}
printf("返回上一层\n");
Print_Interface_2();
}
voidPrint_empl1(charx[])
{
inti,t,y,d=0;
printf("\n");
for(i=1;i<=n;i++)
if(strcmp(x,st[i].num)==0)
{
t=i;
d=1;
printf("职工工号:
%s\n",st[i].num);
printf("姓名:
%s\n",st[i].name);
printf("年龄:
%d\n",st[i].age);
printf("性别:
%s\n",st[i].sex);
printf("基本工资:
%d\n",st[i].salary.basic);
printf("津贴:
%d\n",st[i].salary.subsidy);
printf("奖金:
%d\n",st[i].salary.wages);
printf("总工资:
%d\n",st[i].salary.sum);
printf("\n");
break;
}
if(d>0)
{
printf("如需删除请按2,修改请按1,返回请按0\n");
scanf("%d",&y);
if(y==2)
Print_delete(t);
else
if(y==1)
Print_Interface_2_1(t);
else
if(y==0)
Print_Interface_2();
else
{
printf("输入命令错误,返回上一层(再乱输入我找人打你啊)\n");
Print_Interface_2();
}
}
else
{
printf("对不起,查无此人(本系统不包括路人甲乙丙,不要乱输-_-!
)\n");
printf("请重新选择查询方式\n");
Print_Interface_2();
}
}
voidPrint_empl2(chars[])
{
inti,t,x,y=0;
printf("\n");
for(i=1;i<=n;i++)
if(strcmp(s,st[i].name)==0)
{
t=i;
y=1;
printf("职工工号:
%s\n",st[i].num);
printf("姓名:
%s\n",st[i].name);
printf("年龄:
%d\n",st[i].age);
printf("性别:
%s\n",st[i].sex);
printf("基本工资:
%d\n",st[i].salary.basic);
printf("津贴:
%d\n",st[i].salary.subsidy);
printf("奖金:
%d\n",st[i].salary.wages);
printf("总工资:
%d\n",st[i].salary.sum);
printf("\n");
break;
}
if(y>0)
{
printf("如需删除请按2,修改请按1,返回请按0(再乱输入我找人打你啊)\n");
scanf("%d",&x);
if(x==2)
Print_delete(t);
else
if(x==1)
Print_Interface_2_1(t);
else
if(x==0)
Print_Interface_2();
else
{
printf("输入命令错误,返回上一层\n");
Print_Interface_2();
}
}
else
{
printf("对不起,查无此人(本系统不包括路人甲乙丙,不要乱输-_-!
)\n");
printf("请重新选择查询方式\n");
Print_Interface_2();
}
}
voidPrint_delete(intt)
{
st[t].salary.sum=0;
qsort(1,n);
n--;
printf("已删除该职工并排序,自动返回主菜单\n");
Print_MainInterface();
}
voidPrint_Interface_2_1(intt)
{
intx;
printf("\n");
printf("请选择以下选项:
\n");
printf("1.职工号\n");
printf("2.姓名\n");
printf("3.年龄\n");
printf("4.性别\n");
printf("5.基本工资\n");
printf("6.津贴\n");
printf("7.奖金\n");
printf("8.返回上一层\n");
printf("9.返回主菜单\n");
scanf("%d",&x);
switch(x)
{
case1:
scanf("%s",st[t].num);break;
case2:
scanf("%s",st[t].name);break;
case3:
scanf("%d",st[t].age);break;
case4:
scanf("%s",st[t].sex);break;
case5:
scanf("%s",st[t].salary.basic);break;
case6:
scanf("%d",st[t].salary.subsidy);break;
case7:
scanf("%d",st[t].salary.wages);break;
}
st[t].salary.sum=st[t].salary.basic+st[t].salary.subsidy+st[t].salary.wages;
if(x<=8)
Print_Interface_2();
else
if(x==9)
Print_MainInterface();
}
voidqsort(intl,intr)
{
inti,j,mid;
employeett;
i=l;
j=r;
mid=st[(l+r)/2].salary.sum;
do
{
while(st[i].salary.sum>mid)i++;
while(st[j].salary.sumif(i<=j)
{
tt=st[i];
st[i]=st[j];
st[j]=tt;
i++;
j--;
}
}while(i<=j);
if(iif(l}