ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:207.84KB ,
资源ID:9856069      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9856069.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(职工工资管理系统C语言.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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

2、。5.掌握结构体类型变量、数组的定义和使用。6. 掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。3、 设计思路(包括所用的函数) 图1 程序功能图void show();void add();/添加职工信息void see();/查看职工信息void search();/查找职工信息void ghcz();/按工号查找void xmcz();/按姓名查找void bmcz();/按部门查找void del();/删除职工信息void xmsc();/按姓名删除void ghsc();/按工号删除void statistics();/个人工资统计void st

3、atistic();/统计职工信息void gzdtj();/按工资段统计void bmtj();/按部门统计void modify();/修改职工信息void ghxg();/ 按工号修改void xmxg();/按姓名修改void reserve();/保存职工信息1、添加职工信息:添加函数流程图2、查看职工信息:查看函数流程图3、查找职工信息:查找函数流程图4、删除职工信息:删除函数流程图5、个人工资统计个人工资统计流程图6、统计职工工资工资统计流程图7、修改职工工资修改函数流程图4、 程序代码#include #include #include struct workerchar de

4、pa30;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 mo

5、dify();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();back();/添加职工信息break; case 2:see();back();/查看职工信息

6、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;fflush(stdin);system(cls);int dq(struct worker wo)FILE

7、*fp=NULL;int i=0;fp=fopen(C:/worker.dat,rb);while(fread(&woi,sizeof(struct worker),1,fp)i+;fclose(fp);return i;void show()printf(n);printf(t*职工工资管理系统*nn);printf(t*nn);printf(t1添加职工信息n);printf(t2查看职工信息n);printf(t3查找职工信息n);printf(t4删除职工信息n);printf(t5个人工资统计n);printf(t6统计职工工资n);printf(t7修改职工信息n);printf(

8、t8 保 存 数 据n);printf(t0 退 出 系 统nn);printf(t*n);void bc(struct worker *wo)FILE *fp=NULL;fp=fopen(C:/worker.dat,ab+);fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);/添加职工信息void add() int numberTemp=0;int i=0;struct worker temp; printf(请输入要添加职工个数:);scanf(%d,&numberTemp);for(i=0;inumberTemp;i+)printf(输入

9、第%d个职工信息n,i+1);printf(姓名:);scanf(%s,temp.name);printf(工号:);scanf(%s,temp.ID);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);woNumber+=temp; /写入到数组bc(&temp

10、); /写入到文件printf(添加成功n);/查看职工信息void see() int i=0;printf(以下是全部职工n);printf(t姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n);while(iNumber)printf(t%st%st%st%dtt%dtt%dtt%dtt%dn,woi.name,woi.ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4,woi.salary1+woi.salary2+woi.salary3-woi.salary4);i+;/查找职工信息

11、void search() int n=0;printf(1 按姓名查找n);printf(2 按工号查找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);printf(t姓名t工号t所属部门t基本工资t奖

12、励工资t补贴项目及金额t扣款项目及金额t总工资n);for (i=0;iNumber;i+)if (strcmp(name,woi.name)=0)printf(t%st%st%st%dtt%dtt%dtt%dtt%dn,woi.name,woi.ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4,woi.salary1+woi.salary2+woi.salary3-woi.salary4);void ghcz()/按工号查找 char id10;int i=0;printf(请输入要查找工号:);scanf(%s,id);

13、system(cls);printf(t姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n);for (i=0;iNumber;i+)if (strcmp(id,woi.ID)=0)printf(t%st%st%st%dtt%dtt%dtt%dtt%dn,woi.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

14、 i=0; printf(请输入要查询的部门名称:); scanf(%s,depa); system(cls); printf(t姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n); for (i=0;iNumber;i+) if (strcmp(depa,woi.depa)=0) printf(t%st%st%st%dtt%dtt%dtt%dtt%dn,woi.name,woi.ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4,woi.salary1+woi.salary2+woi.sal

15、ary3-woi.salary4); /删除职工信息void del() int n=0;printf(1 按姓名删除n);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;iNumber;i+)if (strcmp(name,woi.name)=0)for (j=i;jNumb

16、er-1;j+)woj=woj+1;Number-;/将剩余数据写入文件 擦除以前的数据fp=fopen(C:/worker.dat,wb);for (i=0;iNumber;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);printf(删除成功;n);void ghsc()/按工号删除 FILE *fp=NULL;char id60;int i=0;int j=0;printf(请输入要删除的职工工号:);scanf(%s,id);for(i=0;iNumber;i+)if (strcmp(id,woi.ID)=0) for (j=

17、i;jNumber-1;j+)woj=woj+1;Number-;/将剩余数据写入文件 擦除以前的数据fp=fopen(C:/worker.dat,wb);for (i=0;iNumber;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);printf(删除成功;n);/个人工资统计void statistics() int i=0;double sum100;for(i=0;iNumber;i+)sumi=woi.salary1+woi.salary2+woi.salary3-woi.salary4;printf(%s的总工资为:%f

18、n,woi.name,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 sa1,sa2;int i=0;int n,m;int sl20=0,0;double sum100;printf(请输入要查询的工资段:);scanf(%d-%d,&sa1,&sa2);sys

19、tem(cls);for(i=0;iNumber;i+)sumi=woi.salary1+woi.salary2+woi.salary3-woi.salary4;for(i=0;i9) n=10;switch(n)case 0:sl0+;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; cas

20、e 10:sl10+;break;m=sa1/1000; switch(m)case 0:printf(工资在1000以下的人数为%dn,sl0);break; case 1:printf(工资在1000到2000之间的人数为%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之

21、间的人数为%dn,sl5);break; case 6:printf(工资在6000到7000之间的人数为%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; float sum=

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

23、oi.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); printf(2 按工号查找修改n); scanf(%d,&mode);switch(mode)case 1: xmxg();break;case 2: ghxg();break;default: printf(输入错误!n);break; v

24、oid xmxg()/按姓名修改 FILE *fp=NULL;char name30;int i=0;printf(请输入要修改的职工姓名:);scanf(%s,name);for (i=0;iNumber;i+)if (strcmp(name,woi.name);elsebreak;printf(t姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n);printf(t%st%st%st%dtt%dtt%dtt%dtt%dn,woi.name,woi.ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.sala

25、ry4,woi.salary1+woi.salary2+woi.salary3-woi.salary4);printf(请重新输入该职工信息);printf(姓名:);scanf(%s, woi.name);printf(工号:);scanf(%s,woi.ID);printf(所属部门:);scanf(%s,woi.depa);printf(基本工资:);scanf(%d,woi.salary1);printf(奖励工资:);scanf(%d,woi.salary2);printf(补贴项目即金额:);scanf(%d, woi.salary3);printf(扣款项目及金额:);scanf(%d, woi.salary4);/信息修改后重新更新文件里面的数据 以保持数据一致性fp=fopen(C:/worker.dat,wb);for (i=0;iNumber;i+

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

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