职工工资管理系统C语言.docx

上传人:b****5 文档编号:6113332 上传时间:2023-01-03 格式:DOCX 页数:25 大小:137.55KB
下载 相关 举报
职工工资管理系统C语言.docx_第1页
第1页 / 共25页
职工工资管理系统C语言.docx_第2页
第2页 / 共25页
职工工资管理系统C语言.docx_第3页
第3页 / 共25页
职工工资管理系统C语言.docx_第4页
第4页 / 共25页
职工工资管理系统C语言.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

职工工资管理系统C语言.docx

《职工工资管理系统C语言.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统C语言.docx(25页珍藏版)》请在冰豆网上搜索。

职工工资管理系统C语言.docx

职工工资管理系统C语言

1、设计内谷

设计一个工资管理程序

存储的数据包括:

姓名,职工号,所属部门,基本工资,奖励工资,补贴项目及金额和扣款项目及金额。

功能:

1)加入一个人的记录

2)删除一个人的记录

3)显示所有人的记录

4)查询(包括按人名查询工资和按工号查询)

5)统计功能(包括统计某一工资范围的人数和统计各部门的工资总数)

6)修改功能

2、设计目的

1.熟悉c语言程序的编辑、编译链接和运行的过程。

2.熟练运用if语句和switch语句以及嵌套应用。

3.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。

4.掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。

5.掌握结构体类型变量、数组的定义和使用。

6.掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。

3、设计思路(包括所用的函数)

图1程序功能图

职工工资管理系统

voidbmtj();//按部门统计

voidmodify();〃修改职工信息

选择0

退出

结束

 

 

查看函数流程图

 

3、查找职工信息:

定义n=0

输入n

按工号查找输入错误

终止终止

 

4、删除职工信息:

 

 

定义n=0

•止

按工号删除

 

 

 

5、个人工资统计

个人工资统计流程图

 

 

6、统计职工工资

定义n=0

输入n

按部门统计

输入错误

终止

 

 

7、修改职工工资

结束

 

4、程序代码

#include

#include

#inelude

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();

voidbmtj();

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();〃添加职工信息

break;

case2:

see();

back();〃查看职工信息

break;

case3:

search();

back();〃查找职工信息

break;

case4:

del();

back();〃删除职工信息

break;

case5:

statistics();

back();//个人工资统计

break;

case6:

statistic();

back();//统计职工工资

break;

case7:

modify();

back();//修改职工信息

break;

case8:

reserve();

back();//保存数据break;

default:

break;

}

fflush(stdin);

system("cls");

}

}

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()

{

printf("\n");

*****************

职工工资管理系统

**************

**\n\n");

 

printf("\t*☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*\n\n");

print^("\tAAAAAAAAAAAAAAA[1]

添加职工信息

AAAAAAAAAAAAAAAAA\门")・

printf("\tAAAAAAAAAAAAAAA[2]

查看职工信息

AAAAAAAAAAAAAAAAA\门")・

printf("\tAAAAAAAAAAAAAAA[3]

查找职工信息

AAAAAAAAAAAAAAAAA\门")・

卩命tf("\tAAAAAAAAAAAAAAA[4]

删除职工信息

AAAAAAAAAAAAAAAAA\门")・

卩命tf("\tAAAAAAAAAAAAAAA[5]

个人工资统计

AAAAAAAAAAAAAAAAA\门")・

卩命tf("\tAAAAAAAAAAAAAAA[6]

统计职工工资

AAAAAAAAAAAAAAAAAA\门")・

卩命tf("\tAAAAAAAAAAAAAAA[7]

修改职工信息

AAAAAAAAAAAAAAAAA\门")・

卩命tf("\tAAAAAAAAAAAAAAA[8]

保存数据AAAAAAAAAAAAAAAAA\n");

卩命tf("\tAAAAAAAAAAAAAAA[0]

退出系统AAAAAAAAAAAAAAAAA\n\n");

printf("\t*★★★★★★★★★★★★★★★★★★★★★★★*\n");

}

voidbc(structworker*wo)

{

FILE*fp=NULL;

fp=fopen("C:

//worker.dat","ab+");

fwrite(wo,sizeof(structworker),1,fp);

fclose(fp);

}

//添加职工信息

voidadd()

{

intnumberTemp=O;

inti=0;

structworkertemp;

printf(”请输入要添加职工个数:

");

scanf("%d",&numberTemp);

for(i=0;i

{

printf(”输入第%d个职工信息\n”,i+1);

printf("姓名:

");

seanf("%s",temp.name);

printf("工号:

");

seanf("%s",temp」D);

printf("所属部门:

”);

scanf("%s",temp.depa);

printf("基本工资:

");

scanf("%d",&temp.salary1);

printf("奖励工资:

");

scanf("%d",&temp.salary2);

printf(”补贴项目即金额:

”);

scanf("%d",&temp.salary3);

printf(”扣除项目即金额:

");

scanf("%d",&temp.salary4);

wo[Number++]=temp;//写入到数组

be(&temp);//写入到文件

}

printf("添加成功\n");

}

//查看职工信息

voidsee()

{

inti=0;

printf(”以下是全部职工\n");

printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目

及金额\t总工资\n”);

while(i

{

printf("\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;

printf("1按姓名查找\n");

printf("2按工号查找\n");

printf("3按部门查找\n");

scanf("%d",&n);

switch(n)

{

case1:

xmcz();

break;

case2:

ghcz();

break;

case3:

bmcz();

break;

default:

printf("输入错误!

\n");

break;

}

}

voidxmcz()〃按姓名查找

{

charname[30];

inti=0;

printf(”请输入要查找职工姓名:

”);

scanf("%s",name);

system("cls");

printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目

及金额\t总工资\n”);

for(i=O;i

{

if(strcmp(name,wo[i].name)==0)

{

printf("\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);

}

}

}

voidghcz()〃按工号查找

{

charid[10];

inti=0;

printf(”请输入要查找工号:

");

scanf("%s",id);

system("cls");

printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目

及金额\t总工资\n”);

for(i=0;i

{

if(strcmp(id,wo[i].ID)==0)

{

printf("\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].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];

inti=0;

printf("请输入要查询的部门名称:

”);

scanf("%s",depa);

system("cls");

printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项

目及金额\t总工资\n");

for(i=0;i

{

if(strcmp(depa,wo[i].depa)==0)

{

printf("\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].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);

}

}

}

//删除职工信息

voiddel()

{

intn=0;

printf("1按姓名删除\n");

printf("2按工号删除\n");

scanf("%d",&n);

switch(n)

{

case1:

xmsc();

break;

case2:

ghsc();

break;

}

}

voidxmsc()〃按姓名删除

{

FILE*fp=NULL;

charname[30];

inti=0;

intj=0;

printf(”请输入要删除的职工姓名:

”);

seanf("%s",name);

for(i=0;i

{

if(stremp(name,wo[i].name)==O)

{

for(j=i;j

{

wo[j]=wo[j+1];

}

Number--;

}

}

//将剩余数据写入文件擦除以前的数据

fp=fopen("C:

//worker.dat","wb");

for(i=0;i

{

fwrite(&wo[i],sizeof(structworker),1,fp);

}

fclose(fp);

printf("删除成功;\n");

}

voidghsc()//按工号删除

{

FILE*fp=NULL;

charid[60];

inti=0;

intj=0;

printf(”请输入要删除的职工工号:

");

scanf("%s",id);

for(i=0;i

{

if(strcmp(id,wo[i].ID)==0)

{

for(j=i;j

{

wo[j]=wo[j+1];

}

Number--;

}

}

//将剩余数据写入文件擦除以前的数据

fp=fopen("C:

//worker.dat","wb");

for(i=O;i

{

fwrite(&wo[i],sizeof(structworker),1,fp);

}

fclose(fp);

printf("删除成功;\n");

}

//个人工资统计

voidstatistics()

{

inti=0;

doublesum[100];

for(i=0;i

{

sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;printf("%s的总工资为:

%f\n",wo[i].name,sum[i]);

}

}

voidstatistic()//统计职工工资

{

intn=0;

printf("1按工资段统计\n");

printf("2按部门统计\n");

scanf("%d",&n);

switch(n)

{

case1:

gzdtj();

break;

case2:

bmtj();

break;

default:

printf("输入错误!

\n");

break;

}

}

voidgzdtj()//按工资段统计

{intsa1,sa2;

inti=0;

intn,m;

intsl[20]={0,0};

doublesum[100];

printf(”请输入要查询的工资段:

”);

scanf("%d-%d",&sa1,&sa2);

for(i=0;i

{

sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;

for(i=0;i

if(n>9)n=10;

switch(n)

{caseO:

sl[O]++;break;case1:

sl[1]++;break;case2:

sl[2]++;break;case3:

sl[3]++;break;case4:

sl[4]++;break;case5:

sl[5]++;break;case6:

sl[6]++;break;case7:

sl[7]++;break;

case8:

sl[8]++;break;

case9:

sl[9]++;break;case10:

sl[10]++;break;}

}

1000以下的人数为%d\n",sl[0]);break;

%d\n",sl[1]);break;

%d\n",sl[2]);break;

%d\n",sl[3]);break;

%d\n",sl[4]);break;

%d\n",sl[5]);break;

%d\n",sl[6]);break;

%d\n",sl[7]);break;

%d\n",sl[8]);break;

1000到2000之间的人数为2000到3000之间的人数为3000到4000之间的人数为4000到5000之间的人数为5000到6000之间的人数为6000到7000之间的人数为7000到8000之间的人数为8000到9000之间的人数为

9000到10000之间的人数为%d\n",sl[9]);break;

10000以上的人数为%d\n",sl[10]);break;

chardepa[30];floatsum=0;

inti=0;

printf("请输入要查询的部门名称:

”);

scanf("%s",depa);

printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项

目及金额\t总工资\n");

for(i=O;i

{

if(strcmp(depa,wo[i].depa)==0)

{

printf("\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);

sum=sum+wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;

}

}

printf("该部门的总工资为:

%f\n",sum);

}

//修改职工信息

voidmodify()

{

intmode=0;

printf(”请选择修改查找方式\n");

printf("1按姓名查找修改\n");

printf("2按工号查找修改\n");

scanf("%d",&mode);

switch(mode)

{

case1:

xmxg();

break;

case2:

ghxg();

break;

default:

printf("输入错误!

\n");

break;

}

}

voidxmxg()〃按姓名修改

{

FILE*fp=NULL;

charname[30];

inti=0;

printf(”请输入要修改的职工姓名:

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(name,wo[i].name));

else

break;

}

printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目

及金额\t总工资\n”);

printf("\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);

printf(”请重新输入该职工信息");

printf("姓名:

");

scanf("%s",wo[i].name);

printf("工号:

");

scanf("%s",wo[i].ID);

printf("所属部门:

");

scanf("%s",wo[i].depa);

printf("基本工资:

");

scanf("%d",wo[i].salary1);

printf("奖励工资:

");

scanf("%d",wo[i].salary2);

printf(”补贴项目即金额:

”);

scanf("%d",wo[i].salary3);

printf(”扣款项目及金额:

");

scanf("%d",wo[i].salary4);

//信息修改后重新更新文件里面的数据以保持数据一致性

fp=fopen("C:

//worker.dat","wb");

for(i=O;i

{

fwrite(&wo[i],sizeof(structworker),1,fp);

}

fclose(fp);

}

voidghxg()〃按工号修改

{

FILE*fp=NULL;

charid[30];

inti=0;

printf(”请输入要修改的职工工号:

");

scanf("%s",id);

for(i=0;i

{

if(strcmp(id,wo[i].ID));

else

break;

}

printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目

及金额\t总工资\n”);

printf("\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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1