职工工资管理系统C语言_第1页
职工工资管理系统C语言_第2页
职工工资管理系统C语言_第3页
职工工资管理系统C语言_第4页
职工工资管理系统C语言_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、设设计一个工资管理程序存储的数据包括:姓名,职工号,所属部门,基本工资,奖励工资,补贴项目及金额和扣 款项目及金额。功能:1)加入一个人的记录2)删除一个人的记录3)显示所有人的记录4)查询(包括按人名查询工资和按工号查询)5)统计功能(包括统计某一工资范围的人数和统计各部门的工资总数)6)修改功能2、设计目的1 .熟悉c语言程序的编辑、编译链接和运行的过程。2 .熟练运用if语句和switch语句以及嵌套应用。3 .学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。4.掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。5 .掌握结构体类型变

2、量、数组的定义和使用。6 .掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符 用。void xmxg();/ 按姓名修改void reserve();/保存职工信息3、设计思路(包括所用的函数)1工工§添查查删个统修保退加看找除1K1程序】改存出职v)id show();职职工vod :statistic龈/工费统计工v)id addjp信息工资void :statisticQ®加用口言息信v)id see(g/信息信统vod ,jzdtj(,信按二二资段":计息v)id s阴息h():/双工生偈息计voidbmtj(),息按部门统计

3、void ghcz(); 按工号查找void modify(); 修改职工信息void xmcz();按姓名查找void ghxg();按工号修改void bmcz();/按部门查找void del();/删除职工信息void xmsc();/按姓名删除void ghsc();/ 按工号删除1、添加职工信息:> 按姓名A 按姓名开始添加函数流程图2、查看职工信息:4、删除职工信息:查找函数流程图输入错误终止开rA删除函数流程图5、个人工资统计J结束个人工资统计流程图 6、统计职工工资7、修改职工工资工资统计流程图输入错误终止修改函数流程图4、程序代码struct workerchar d

4、epa30;char name30;char ID10;int salary1,salary2,salary3,salary4;;int dq(struct worker wo);void show();void bc(struct worker wo);void add();void see();void search();void ghcz();void xmcz();void bmcz();void del();void xmsc();void ghsc();void statistics。;void statistic();void gzdtj();void bmtj();void m

5、odify();void ghxg();void xmxg();void reserve();void back();struct worker wo100; / 保存所有的职工信息int Number=0; / 记录总的职工人数void main()int choose=0;while(1)show();printf("tt=> 请选择: ");scanf("%d",&choose);system("cls");switch(choose)case 0:exit(0);/ 退出break;case 1:add();ba

6、ck();/ 添加职工信息break;case 2:see();back();/ 查看职工信息break;case 3:search();back();/ 查找职工信息break;case 4:del ();back();/ 删除职工信息break;case 5:statistics ();back();/ 个人工资统计break;case 6:statistic();back();/ 统计职工工资break;case 7:modify();back();/ 修改职工信息break;case 8:reserve(); back();/保存数据 break;default: break;)ffl

7、ush(stdin);system("cls");)int dq(struct worker wo)(FILE *fp=NULL;int i=0;while(fread(&woi,sizeof(struct worker),1,fp) i+;fclose(fp);return i;)void show()(printf("n");printf("t*printf("t*职工工资管理系统*nn");printf("t printf("t printf("t printf("t p

8、rintf("t printf("t printf("t printf("t printf("tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA123456780添加职工信息 AAAAAAAAAAAAAAAAA'n"); 查看职工信息 AAAAAAAAAAAAAAAAAn”); 查找职工信息 AAAAAAAA

9、AAAAAAAAAn"); 删除职工信息 AAAAAAAAAAAAAAAAAn"); 个人工资统计 AAAAAAAAAAAAAAAAAn"); 统计职工工资 AAAAAAAAAAAAAAAAAAn"); 修改职工信息 AAAAAAAAAAAAAAAAAn");保存数据 AAAAAAAAAAAAAAAAAn"); 退出系统 AAAAAAAAAAAAAAAAAnn");printf("t* *n");)void bc(struct worker *wo)(FILE *fp=NULL;fwrite(wo,siz

10、eof(struct worker),1,fp);fclose(fp);)/添加职工信息 void add() (int numberTemp=0;int i=0;struct worker temp;printf(" 请输入要添加职工个数: ");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i+)printf("输入第阶职工信息n",i+1);printf("姓名:");printf("工号:");printf(" 所属部门

11、 :");printf("基本工资:");printf("奖励工资:");printf(" 补贴项目即金额: ");printf(" 扣除项目即金额:");woNumber+=temp; / 写入到数组bc(&temp); / 写入到文件printf(" 添加成功 n");/ 查看职工信息void see()int i=0;printf(" 以下是全部职工 n");printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补

12、贴项目及金额t 扣款项目及金额t 总工资 n");while(i<Number)printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi. ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4 ,woi.salary1+woi.salary2+woi.salary3-woi.salary4);i+;/ 查找职工信息void search()int n=0;printf("1按姓名查找n");printf("2按工号查找

13、n");printf("3按部门查找n");scanf("%d",&n);switch(n)case 1: xmcz();break;case 2: ghcz();break;case 3: bmcz();break;default: printf(" 输入错误 !n");break;void xmcz()/ 按姓名查找char name30;int i=0;printf(" 请输入要查找职工姓名 :");scanf("%s",name);system("cls&qu

14、ot;);printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补贴项目及金额t 扣款项目及金额t 总工资 n");for (i=0;i<Number;i+)if (strcmp(name,)=0)printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi. ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4 ,woi.salary1+woi.salary2+woi.salary3-woi.sa

15、lary4);void ghcz()/ 按工号查找char id10;int i=0;printf(" 请输入要查找工号:");scanf("%s",id);system("cls");printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补贴项目及金额t 扣款项目及金额t 总工资 n");for (i=0;i<Number;i+)if (strcmp(id,woi.ID)=0)printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",woi

16、.name,woi.ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4 ,woi.salary1+woi.salary2+woi.salary3-woi.salary4);void bmcz()/ 按部门查找char depa30;int i=0;printf(" 请输入要查询的部门名称 :");scanf("%s",depa);system("cls");printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补贴项目及金额 t

17、扣款项目及金额t 总工资 n");for (i=0;i<Number;i+)if (strcmp(depa,woi.depa)=0)printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi. ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4 ,woi.salary1+woi.salary2+woi.salary3-woi.salary4);/ 删除职工信息void del()int n=0;printf("1按姓名删除n")

18、;printf("2按工号删除n");scanf("%d",&n);switch(n)case 1: xmsc();break;case 2: ghsc();break;void xmsc()/ 按姓名删除FILE *fp=NULL;char name30;int i=0;int j=0;printf(" 请输入要删除的职工姓名: ");scanf("%s",name);for(i=0;i<Number;i+)if (strcmp(name,)=0)for (j=i;j<Numb

19、er-1;j+)woj=woj+1;Number-;/ 将剩余数据写入文件 擦除以前的数据for (i=0;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);printf(" 删除成功 ;n");void ghsc()/ 按工号删除FILE *fp=NULL;char id60;int i=0 fwrite(&woi,sizeof(struct worker),1,fp);int j=0 printf("请输入要删除的职工工号: ");scanf("

20、;%s",id);for(i=0;i<Number;i+)if (strcmp(id,woi.ID)=0)for (j=i;j<Number-1;j+)woj=woj+1;Number-;/ 将剩余数据写入文件 擦除以前的数据for (i=0;i<Number;i+) fclose(fp);printf(" 删除成功 ;n");/ 个人工资统计void statistics()int i=0;double sum100;for(i=0;i<Number;i+)sumi=woi.salary1+woi.salary2+woi.salary3-

21、woi.salary4;printf("%s 的总工资为: %fn",,sumi);void statistic()/ 统计职工工资int n=0;printf("1 按工资段统计n");printf("2 按部门统计n");scanf("%d",&n);switch(n)case 1: gzdtj();break;case 2: bmtj();break;default: printf(" 输入错误 !n");break;void gzdtj()/ 按工资段统计int

22、sa1,sa2;int i=0;int n,m;int sl20=0,0;double sum100;printf(" 请输入要查询的工资段:");scanf("%d-%d",&sa1,&sa2);system("cls");for(i=0;i<Number;i+)sumi=woi.salary1+woi.salary2+woi.salary3-woi.salary4;for(i=0;i<Number;i+) n=sumi/1000;if (n>9) n=10;switch(n)case 0:sl0+

23、;break;case 1:sl1+;break;case 2:sl2+;break;case 3:sl3+;break;case 4:sl4+;break;case 5:sl5+;break;case 6:sl6+;break;case 7:sl7+;break;case 8:sl8+;break;case 9:sl9+;break;case 10:sl10+;break;m=sa1/1000;switch(m)case 0:printf(" 工资在 1000 以下的人数为 %dn",sl0);break;case 1:printf("工资在1000到2000

24、之间的人数为%dn",sl1);break;case 2:printf("工资在2000到3000之间的人数为%dn",sl2);break;case 3:printf("工资在3000到4000之间的人数为%dn",sl3);break;case 4:printf("工资在4000到5000 之间的人数为%dn",sl4);break;case 5:printf("工资在5000到6000 之间的人数为%dn",sl5);break;case 6:printf("工资在6000到7000之间的

25、人数为%dn",sl6);break;case 7:printf("工资在7000到8000之间的人数为%dn",sl7);break;case 8:printf("工资在8000到9000 之间的人数为%dn",sl8);break;case 9:printf(" 工资在 9000到 10000之间的人数为 %dn",sl9);break;case 10:printf(" 工资在 10000 以上的人数为 %dn",sl10);break;void bmtj()/ 按部门统计char depa30;fl

26、oat sum=0;int i=0;printf(" 请输入要查询的部门名称 :");scanf("%s",depa);system("cls");printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补贴项目及金额t 扣款项目及金额t 总工资 n");for (i=0;i<Number;i+)if (strcmp(depa,woi.depa)=0)printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi. ID,w

27、oi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4 ,woi.salary1+woi.salary2+woi.salary3-woi.salary4);sum=sum+woi.salary1+woi.salary2+woi.salary3-woi.salary4;printf(" 该部门的总工资为: %fn",sum);/ 修改职工信息void modify()int mode=0;printf(" 请选择修改查找方式n");printf("1按姓名查找修改n");print

28、f("2按工号查找修改n");scanf("%d",&mode);switch(mode)case 1: xmxg();break;case 2: ghxg();break;default: printf(" 输入错误 !n");break;void xmxg()/ 按姓名修改FILE *fp=NULL;char name30;int i=0;printf(" 请输入要修改的职工姓名: ");scanf("%s",name);for (i=0;i<Number;i+)if (str

29、cmp(name,);elsebreak;printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补贴项目及金额 t 扣款项目及金额t 总工资 n");printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi. ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4 ,woi.salary1+woi.salary2+woi.salary3-woi.salary4);printf(" 请重新输入该

30、职工信息 ");printf("姓名:");scanf("%s", );printf("工号:");scanf("%s",woi.ID);printf(" 所属部门: ");scanf("%s",woi.depa);printf("基本工资:");scanf("%d",woi.salary1);printf("奖励工资:");scanf("%d",woi.salary2)

31、;printf(" 补贴项目即金额: ");scanf("%d", woi.salary3);printf(" 扣款项目及金额:");scanf("%d", woi.salary4);/ 信息修改后重新更新文件里面的数据 以保持数据一致性for (i=0;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);void ghxg()/ 按工号修改FILE *fp=NULL;char id30;int i=0;printf("

32、; 请输入要修改的职工工号: ");scanf("%s",id);for (i=0;i<Number;i+)if (strcmp(id,woi.ID);elsebreak;printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补贴项目及金额 t 扣款项目及金额t 总工资 n");printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi. ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.sal

33、ary4 ,woi.salary1+woi.salary2+woi.salary3-woi.salary4);printf(" 请重新输入该职工信息 ");printf("姓名:");scanf("%s", );printf("工号:");scanf("%s",woi.ID);printf(" 所属部门:");scanf("%s",woi.depa);printf(" 基本工资:");scanf("%d&quo

34、t;,woi.salary1);printf(" 奖励工资:");scanf("%d",woi.salary2);printf(" 补贴项目即金额:");scanf("%d", woi.salary3);printf("扣款项目及金额:");scanf("%d", woi.salary4);信息修改后重新更新文件里面的数据以保持数据一致性for (i=0;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);printf("t=> 修改成功 n");/保存数据void reserve()printf("t=程序在运行时已自动保存.n&quo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论