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