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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(职工工资管理系统C语言.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至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 bmtj();/ 按部门统计void modify(); 修改职工信息选择0退出结束查看函数流程图3、查找职工信息:定义n=0输入n按工号查找 输入错误终止 终止4、删除职工信息:定义n=0终止按工号删除5、个人工资统计个人工资统计流程图6、统计职工工资定义n=0输入n按部门统计输入错误终止终止7、修改职工工资结束4、程序代码#i nclude #i nclude #in elude str

3、uct workerchar depa30;char n ame30;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();v

4、oid bmtj();void modify。;void ghxg();void xmxg();void reserve();void back();struct worker wo100; / 保存所有的职工信息int Number=0; / 记录总的职工人数void mai n()int choose=0;while(1)show();prin tf(tt= 请选择:”);sca nf(%d,&choose);system(cls);switch(choose)case 0:exit(0); 退出break;case 1:add();back(); 添加职工信息break;case 2:s

5、ee();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;fflush(stdi n);system(cls);int dq(st

6、ruct worker wo)FILE *fp=NULL;int i=0;fp=fope n( C:/worker.dat,rb);while(fread(&woi,sizeof(struct worker),1,fp) i+;fclose(fp);return i;void show()prin tf(n);*职工工资管理系统*nn);prin tf(t* *nn);prin t(tAAAAAAAAAAAAAAA1添加职工信息AAAAAAAAAAAAAAAAA门)prin tf(tAAAAAAAAAAAAAAA2查看职工信息AAAAAAAAAAAAAAAAA门)prin tf(tAAAAAA

7、AAAAAAAAA3查找职工信息AAAAAAAAAAAAAAAAA门)卩命 tf(tAAAAAAAAAAAAAAA4删除职工信息AAAAAAAAAAAAAAAAA门)卩命 tf(tAAAAAAAAAAAAAAA5个人工资统计AAAAAAAAAAAAAAAAA门)卩命 tf(tAAAAAAAAAAAAAAA6统计职工工资AAAAAAAAAAAAAAAAAA门)卩命 tf(tAAAAAAAAAAAAAAA7修改职工信息AAAAAAAAAAAAAAAAA门)卩命 tf(tAAAAAAAAAAAAAAA8保存数 据 AAAAAAAAAAAAAAAAAn);卩命 tf(tAAAAAAAAAAAAAAA0

8、退 出系 统 AAAAAAAAAAAAAAAAAnn);prin tf(t* *n);void bc(struct worker *wo)FILE *fp=NULL;fp=fope n( C:/worker.dat,ab+);fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);/添加职工信息void add()int nu mberTemp=O;int i=0;struct worker temp;printf(” 请输入要添加职工个数:);sca nf(%d,&nu mberTemp);for(i=0;i nu mberTemp;i+)print

9、f(” 输入第d个职工信息n”,i+1);prin tf(姓名:);sea nf(%s,temp .n ame);prin tf(工号:);sea nf(%s,tempD);printf( 所属部门:”);sca nf(%s,temp.depa);prin tf( 基本工资:);sca nf(%d, &temp.salary1);prin tf( 奖励工资:);sca nf(%d, &temp.salary2);printf(” 补贴项目即金额:”);sca nf(%d, &temp.salary3);printf(” 扣除项目即金额:);sca nf(%d, &temp.salary4);w

10、oNumber+=temp; / 写入到数组be(& temp); / 写入到文件printf(添加成功 n);/查看职工信息void see()int i=0;printf(” 以下是全部职工n);printf(t 姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n”);while(iNumber)prin tf(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 .sala

11、ry2+woi.salary3-woi.salary4);i+;/查找职工信息void search()int n=0;printf(1 按姓名查找n);printf(2 按工号查找n);printf(3 按部门查找n);sca nf(%d,&n);switch( n)case 1: xmcz();break;case 2: ghcz();break;case 3: bmcz();break;default: printf( 输入错误!n);break;void xmcz() 按姓名查找char n ame30;int i=0;printf(” 请输入要查找职工姓名:”);sca nf(%s,

12、 name);system(cls);printf(t 姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n”);for (i=O;iNumber;i+)if (strcmp( name,woi. name)=0)prin tf(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() 按工号查

13、找char id10;int i=0;printf(” 请输入要查找工号:);sca nf(%s,id);system(cls);printf(t 姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n”);for (i=0;iNumber;i+)if (strcmp(id,woi.ID)=0)prin tf(t%st%st%st%dtt%dtt%dtt%dtt%dn,woi. name,woi.ID,woi.d epa,woi.salary1,woi.salary2,woi.salary3,woi.salary4,woi.salary1+woi .salary2+

14、woi.salary3-woi.salary4);void bmcz() 按部门查找char depa30;int i=0;prin tf( 请输入要查询的部门名称 :”);scan f(%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)prin tf(t%st%st%st%dtt%dtt%dtt%dtt%dn,woi. name,woi.ID,woi.d epa,woi.salary1,woi.sala

15、ry2,woi.salary3,woi.salary4,woi.salary1+woi .salary2+woi.salary3-woi.salary4);/删除职工信息void del()int n=0;printf(1 按姓名删除n);printf(2 按工号删除n);sca nf(%d,&n);switch( n)case 1: xmsc();break;case 2: ghsc();break;void xmsc() 按姓名删除FILE *fp=NULL;char n ame30;int i=0;int j=0;printf(” 请输入要删除的职工姓名:”);sea nf(%s, na

16、me);for(i=0;iNumber;i+)if (stremp( name,woi. name)=O)for (j=i;jNumber-1;j+)woj=woj+1;Number-;/将剩余数据写入文件擦除以前的数据fp=fope n(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(” 请输入要删除的职工

17、工号:);sca nf(%s,id);for(i=0;iNumber;i+)if (strcmp(id,woi.ID)=0)for (j=i;jNumber-1;j+)woj=woj+1;Number-;/将剩余数据写入文件擦除以前的数据fp=fope n(C:/worker.dat,wb);for (i=O;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+)su

18、mi=woi.salary1+woi.salary2+woi.salary3-woi.salary4; prin tf(%s 的总工资为:%fn,woi. name,sumi);void statistic()/ 统计职工工资int n=0;printf(1 按工资段统计n);printf(2 按部门统计n);sca nf(%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,

19、m;int sl20=0,0;double sum100;printf(” 请输入要查询的工资段:”);sca nf(%d-%d, &sa1, &sa2);for(i=0;iNumber;i+)sumi=woi.salary1+woi.salary2+woi.salary3-woi.salary4;for(i=0;i9) n=10;switch( n)case O:slO+;break; case 1:sl1+;break; case 2:sl2+;break; case 3:sl3+;break; case 4:sl4+;break; case 5:sl5+;break; case 6:s

20、l 6+;break; case 7:sl7+;break;case 8:sl8+;break;case 9:sl9+;break; case 10:sl10+;break; 1000 以下的人数为 dn,sl0);break;%dn,sl1);break;%dn ,sl2);break;%dn ,sl3);break;%dn,sl4);break;%dn ,sl5);break;%dn ,sl6);break;%dn ,sl7);break;%dn ,sl8);break;1000到2000之间的人数为 2000到3000之间的人数为 3000到4000之间的人数为 4000到5000之间的

21、人数为 5000到6000之间的人数为 6000到7000之间的人数为 7000到8000之间的人数为 8000到9000之间的人数为9000 到 10000 之间的人数为 %dn,sl9);break;10000 以上的人数为 %dn,sl10);break;char depa30; float sum=0;int i=0;prin tf( 请输入要查询的部门名称 :”);scan f(%s,depa);printf(t 姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n);for (i=O;iNumber;i+)if (strcmp(depa,woi.dep

22、a)=0)prin tf(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);sum=sum+woi.salary1+woi.salary2+woi.salary3-woi.salary4;prin tf( 该部门的总工资为: %fn,sum);/修改职工信息void modify()int mode=0;printf(” 请选择修改查找方式

23、n);printf(1 按姓名查找修改n);printf(2 按工号查找修改n);sca nf(%d,&mode);switch(mode)case 1: xmxg();break;case 2: ghxg();break;default: printf( 输入错误!n);break;void xmxg() 按姓名修改FILE *fp=NULL;char n ame30;int i=0;printf(” 请输入要修改的职工姓名: );sca nf(%s, name);for (i=0;iNumber;i+)if (strcmp( name,woi. name);elsebreak;printf

24、(t 姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n”);prin tf(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);printf(” 请重新输入该职工信息);prin tf(姓名:);sca nf(%s, woi. name);prin tf(工号:);sca nf(%s,woi.ID);prin

25、 tf( 所属部门:);sca nf(%s,woi.depa);prin tf( 基本工资:);sca nf(%d,woi.salary1);prin tf( 奖励工资:);sca nf(%d,woi.salary2);printf(” 补贴项目即金额:”);sca nf(%d, woi.salary3);printf(” 扣款项目及金额:);sca nf(%d, woi.salary4);/信息修改后重新更新文件里面的数据 以保持数据一致性fp=fope n(C:/worker.dat,wb);for (i=O;iNumber;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);void ghxg() 按工号修改FILE *fp=NULL;char id30;int i=0;printf(” 请输入要修改的职工工号: );sca nf(%s,id);for (i=0;iNumber;i+)if (strcmp(id,woi.ID);elsebreak;printf(t 姓名t工号t所属部门t基本工资t奖励工资t补贴项目及金额t扣款项目及金额t总工资n”);prin tf(t%st%st%st%dtt%dtt%dtt%dtt%dn,woi. name,woi.ID,woi.d

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

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