职工工资管理系统C语言Word格式文档下载.docx
- 文档编号:19112790
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:25
- 大小:137.55KB
职工工资管理系统C语言Word格式文档下载.docx
《职工工资管理系统C语言Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统C语言Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
终
•止
按工号删除
5、个人工资统计
个人工资统计流程图
6、统计职工工资
按部门统计
输入错误
止
终止
7、修改职工工资
4、程序代码
#include<
stdio.h>
stdlib.h>
#inelude<
string.h>
structworker
{chardepa[30];
charname[30];
charID[10];
intsalary1,salary2,salary3,salary4;
};
intdq(structworkerwo[]);
voidshow();
voidbc(structworkerwo[]);
voidadd();
voidsee();
voidsearch();
voidghcz();
voidxmcz();
voidbmcz();
voiddel();
voidxmsc();
voidghsc();
voidstatistics();
voidstatistic();
voidgzdtj();
voidmodify。
;
voidghxg();
voidxmxg();
voidreserve();
voidback();
structworkerwo[100];
//保存所有的职工信息
intNumber=0;
//记录总的职工人数
voidmain()
{
intchoose=0;
while
(1)
show();
printf("
\t\t====>
请选择:
”);
scanf("
%d"
&
choose);
system("
cls"
);
switch(choose)
case0:
exit(0);
〃退出
break;
case1:
add();
back();
〃添加职工信息
case2:
see();
〃查看职工信息
case3:
search();
〃查找职工信息
case4:
del();
〃删除职工信息
case5:
statistics();
//个人工资统计
case6:
statistic();
//统计职工工资
case7:
modify();
//修改职工信息
case8:
reserve();
//保存数据break;
default:
}
fflush(stdin);
intdq(structworkerwo[])
FILE*fp=NULL;
inti=0;
fp=fopen("
C:
//worker.dat"
"
rb"
while(fread(&
wo[i],sizeof(structworker),1,fp))i++;
fclose(fp);
returni;
voidshow()
\n"
*****************
**************
**\n\n"
\t*☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*\n\n"
print^("
\tAAAAAAAAAAAAAAA[1]
添加职工信息
AAAAAAAAAAAAAAAAA\门"
)・
\tAAAAAAAAAAAAAAA[2]
查看职工信息
\tAAAAAAAAAAAAAAA[3]
查找职工信息
卩命tf("
\tAAAAAAAAAAAAAAA[4]
删除职工信息
\tAAAAAAAAAAAAAAA[5]
个人工资统计
\tAAAAAAAAAAAAAAA[6]
统计职工工资
AAAAAAAAAAAAAAAAAA\门"
\tAAAAAAAAAAAAAAA[7]
修改职工信息
\tAAAAAAAAAAAAAAA[8]
保存数据AAAAAAAAAAAAAAAAA\n"
\tAAAAAAAAAAAAAAA[0]
退出系统AAAAAAAAAAAAAAAAA\n\n"
\t*★★★★★★★★★★★★★★★★★★★★★★★*\n"
voidbc(structworker*wo)
ab+"
fwrite(wo,sizeof(structworker),1,fp);
//添加职工信息
voidadd()
intnumberTemp=O;
structworkertemp;
printf(”请输入要添加职工个数:
"
numberTemp);
for(i=0;
i<
numberTemp;
i++)
printf(”输入第%d个职工信息\n”,i+1);
姓名:
seanf("
%s"
temp.name);
工号:
temp」D);
printf("
所属部门:
”);
temp.depa);
基本工资:
&
temp.salary1);
奖励工资:
temp.salary2);
printf(”补贴项目即金额:
temp.salary3);
printf(”扣除项目即金额:
temp.salary4);
wo[Number++]=temp;
//写入到数组
be(&
temp);
//写入到文件
添加成功\n"
//查看职工信息
voidsee()
printf(”以下是全部职工\n"
\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目
及金额\t总工资\n”);
while(i<
Number)
\t%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n"
wo[i].name,wo[i].ID,wo[i].d
epa,wo[i].salary1,wo[i].salary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);
i++;
//查找职工信息
voidsearch()
intn=0;
1按姓名查找\n"
2按工号查找\n"
3按部门查找\n"
n);
switch(n)
xmcz();
ghcz();
bmcz();
printf("
输入错误!
voidxmcz()〃按姓名查找
printf(”请输入要查找职工姓名:
name);
for(i=O;
Number;
if(strcmp(name,wo[i].name)==0)
voidghcz()〃按工号查找
charid[10];
printf(”请输入要查找工号:
id);
for(i=0;
if(strcmp(id,wo[i].ID)==0)
wo[i].name,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].salary2,wo[i].salary3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);
voidbmcz()〃按部门查找
chardepa[30];
请输入要查询的部门名称:
scanf("
depa);
\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项
目及金额\t总工资\n"
if(strcmp(depa,wo[i].depa)==0)
//删除职工信息
voiddel()
1按姓名删除\n"
2按工号删除\n"
xmsc();
ghsc();
voidxmsc()〃按姓名删除
intj=0;
printf(”请输入要删除的职工姓名:
if(stremp(name,wo[i].name)==O)
for(j=i;
j<
Number-1;
j++)
wo[j]=wo[j+1];
Number--;
//将剩余数据写入文件擦除以前的数据
fp=fopen("
wb"
fwrite(&
wo[i],sizeof(structworker),1,fp);
删除成功;
voidghsc()//按工号删除
charid[60];
printf(”请输入要删除的职工工号:
//个人工资统计
voidstatistics()
doublesum[100];
sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;
printf("
%s的总工资为:
%f\n"
wo[i].name,sum[i]);
voidstatistic()//统计职工工资
1按工资段统计\n"
2按部门统计\n"
gzdtj();
bmtj();
voidgzdtj()//按工资段统计
{intsa1,sa2;
intn,m;
intsl[20]={0,0};
printf(”请输入要查询的工资段:
%d-%d"
sa1,&
sa2);
i++){n=sum[i]/1000;
if(n>
9)n=10;
{caseO:
sl[O]++;
case1:
sl[1]++;
case2:
sl[2]++;
case3:
sl[3]++;
case4:
sl[4]++;
case5:
sl[5]++;
case6:
sl[6]++;
case7:
sl[7]++;
sl[8]++;
case9:
sl[9]++;
case10:
sl[10]++;
}
1000以下的人数为%d\n"
sl[0]);
%d\n"
sl[1]);
sl[2]);
sl[3]);
sl[4]);
sl[5]);
sl[6]);
sl[7]);
sl[8]);
1000到2000之间的人数为2000到3000之间的人数为3000到4000之间的人数为4000到5000之间的人数为5000到6000之间的人数为6000到7000之间的人数为7000到8000之间的人数为8000到9000之间的人数为
9000到10000之间的人数为%d\n"
sl[9]);
10000以上的人数为%d\n"
sl[10]);
floatsum=0;
sum=sum+wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;
该部门的总工资为:
%f\n"
sum);
//修改职工信息
voidmodify()
intmode=0;
printf(”请选择修改查找方式\n"
1按姓名查找修改\n"
2按工号查找修改\n"
mode);
switch(mode)
xmxg();
ghxg();
voidxmxg()〃按姓名修改
printf(”请输入要修改的职工姓名:
"
if(strcmp(name,wo[i].name));
else
printf(”请重新输入该职工信息"
wo[i].name);
wo[i].ID);
所属部门:
wo[i].depa);
wo[i].salary1);
wo[i].salary2);
wo[i].salary3);
printf(”扣款项目及金额:
wo[i].salary4);
//信息修改后重新更新文件里面的数据以保持数据一致性
voidghxg()〃按工号修改
charid[30];
printf(”请输入要修改的职工工号:
if(strcmp(id,wo[i].ID));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工工资 管理 系统 语言