版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、设设计一个工资管理程序存储的数据包括:姓名,职工号,所属部门,基本工资,奖励工资,补贴项目及金额和扣款项目及金额。功能:1) 加入一个人的记录2) 删除一个人的记录3) 显示所有人的记录4) 查询(包括按人名查询工资和按工号查询)5) 统计功能(包括统计某一工资范围的人数和统计各部门的工资总数)6) 修改功能2、设计目的1. 熟悉c语言程序的编辑、编译链接和运行的过程。2. 熟练运用if语句和switch语句以及嵌套应用。3. 学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。4.掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。5. 掌握结
2、构体类型变量、数组的定义和使用。6. 掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使 用字符串。3、设计思路(包括所用的函数)void ghcz();按工号查找void bmtj();按部门统计void xmcz();按姓名查找 void bmcz();按部门查找 void del();删除职工信息 void xmsc();按姓名删除void modify();修改职工信息 void ghxg();按工号修改void xmxg();按姓名修改 void reserve。;/保存职工信息开始1、添加职工信息:添加函数流程图2、查看职工信息:查看函数流程图3、查找职工信息
3、:定义n=0输入n按工号查找输入错误终止终止4、删除职工信息:定义n=0终止按工号删除输入n5、个人工资统计结束个人工资统计流程图6、统计职工工资定义n=0输入n按部门统计输入错误终止终止7、修改职工工资修改函数流程图4、程序代码#i nclude <stdio.h>#i nclude <stdlib.h>#in elude <stri ng.h>struct workerchar depa30;char n ame30;char ID10;int salary1,salary2,salary3,salary4;int dq(struct worker wo
4、);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 modify();void ghxg();void xmxg();void reserve();void back();struct worker wo100; / 保存所有的
5、职工信息 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();/ 查看职工信息break;case 3:search();back();/ 查找职工信息
6、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 *fp=NULL;int i=0;
7、while(fread(&woi,sizeof(struct worker),1,fp) i+;fclose(fp);return i;void show()printf("n");printf("t*职工工资管理系统 *nn");printf("t* *nn");AAAAAAAAAAAAAAAAAn");AAAAAAAAAAAAAAAAAn");AAAAAAAAAAAAAAAAAn");printf("tAAAAAAAAAAAAAAA1printf("tAAAAAAAAAAA
8、AAAA2printf("tAAAAAAAAAAAAAAA3printf("tAAAAAAAAAAAAAAA4printf("tAAAAAAAAAAAAAAA5printf("tAAAAAAAAAAAAAAA6添加职工信息 查看职工信息 查找职工信息 删除职工信息 个人工资统计 统计职工工资 修改职工信息AAAAAAAAAAAAAAAAA门");AAAAAAAAAAAAAAAAAn");AAAAAAAAAAAAAAAAAAn");AAAAAAAAAAAAAAAAA门");printf("tAAAAAAAA
9、AAAAAAA7printf("tAAAAAAAAAAAAAAA8 printf("tAAAAAAAAAAAAAAA0 printf("t* 保存数 据AAAAAAAAAAAAAAAAA门"); 退出 系 统aaaaaaaaaaaaaaaaa门门"); *n");void bc(struct worker *wo)FILE *fp=NULL;fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);/添加职工信息void add()int numberTemp=0;int i=0;struct
10、worker temp;printf(" 请输入要添加职工个数: ");scanf("%d",&numberTemp); for(i=0;i<numberTemp;i+)printf(" 输入第 %d 个职工信息 n",i+1);printf(" 姓名: "); scanf("%s",);printf(" 工号: ");scanf("%s",temp.ID);printf(" 所属部门 :"); scan
11、f("%s",temp.depa); printf(" 基本工资: ");scanf("%d",&temp.salary1);printf(" 奖励工资: "); scanf("%d",&temp.salary2);printf(" 补贴项目即金额: "); scanf("%d",&temp.salary3);printf(" 扣除项目即金额 :");scanf("%d", &temp
12、.salary4);woNumber+=temp; / 写入到数组 bc(&temp); / 写入到文件printf(" 添加成功 n");/查看职工信息void see()int i=0;printf(" 以下是全部职工 n");printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补贴项目及金额 t 扣款项目及金额 t 总工 资n “);while(i<Number) printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi.ID,w
13、oi.depa,woi.salary1,wo i.salary2,woi.salary3,woi.salary4,woi.salary1+woi.salary2+woi.salary3-woi.salary4);i+;/查找职工信息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()
14、;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 奖励工资 t 补贴项目及金额 t 扣款项目及金额 t 总工 资n “);for (i=0;i<Number;i+)if (st
15、rcmp(name,)=0)printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi.ID,woi.depa,woi.salary1,wo i.salary2,woi.salary3,woi.salary4,woi.salary1+woi.salary2+woi.salary3-woi.salary4);void ghcz()/ 按工号查找char id10;int i=0;printf(" 请输入要查找工号 :");scanf("%s",id);system("
16、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.ID,woi.depa,woi.salary1,woi.salary2,woi.salary3,woi.salary4,woi.salary1+woi.salary2+woi.salary3-woi.sala
17、ry4);void bmcz()/ 按部门查找char depa30;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",,w
18、oi.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");printf("2 按工号删除 n");scanf("%d",&n);switch(n)case 1: xmsc();break;case 2: ghsc();break;void xmsc()/ 按姓名删除FILE
19、*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<Number-1;j+)woj=woj+1;Number-;/ 将剩余数据写入文件 擦除以前的数据 for (i=0;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp); prin
20、tf(" 删除成功 ;n");void ghsc()/ 按工号删除FILE *fp=NULL; char id60;int i=0;int j=0;printf(" 请输入要删除的职工工号: "); scanf("%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+)fwrite(&woi,sizeo
21、f(struct worker),1,fp);fclose(fp);printf(" 删除成功 ;n");/个人工资统计void statistics()int i=0;double sum100;for(i=0;i<Number;i+) sumi=woi.salary1+woi.salary2+woi.salary3-woi.salary4; printf("%s 的总工资为: %fn",,sumi);void statistic()/ 统计职工工资int n=0;printf("1 按工资段统计 n");pr
22、intf("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,&
23、;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+;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
24、7:sl7+;break;case 8:sl8+;break;case 9:sl9+;break; case 10:sl10+;break;m=sa1/1000;switch(m)case 0:printf(" case 1:printf(" case 2:printf(" case 3:printf("case 4:printf("case 5:printf("case 6:printf("工资在 工资在 工资在 工资在 工资在 工资在 工资在 工资在 工资在 工资在1000 以下的人数为 %dn",sl0);b
25、reak;1000 到2000 到3000 到4000 到5000 到6000 到7000 到8000 到9000 到200030004000500060007000之间的人数为 之间的人数为 之间的人数为 之间的人数为 之间的人数为 之间的人数为 之间的人数为 之间的人数为%dn",sl1);break;%dn",sl2);break;%dn",sl3);break;%dn",sl4);break;%dn",sl5);break;%dn",sl6);break;case 7:printf("case 8:printf(&q
26、uot;case 9:printf("case 10:printf(" 工资在 10000 以上的人数为 %dn",sl10);break;8000900010000 之间的人数为%dn",sl7);break;%dn",sl8);break;%dn",sl9);break;void bmtj()/ 按部门统计char depa30;float sum=0; int i=0;printf(" 请输入要查询的部门名称 :");scanf("%s",depa);system("cls&qu
27、ot;);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,woi.depa,woi.salary1,wo i.salary2,woi.salary3,woi.salary4,woi.salary1+woi.salary2+woi.salary3-woi.sala
28、ry4);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:
29、 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 (strcmp(name,);elsebreak;printf("t 姓名 t 工号 t 所属部门 t 基本工资 t 奖励工资 t 补贴项目及金额 t 扣款项目及金额 t 总工
30、 资n “);printf("t%st%st%st%dtt%dtt%dtt%dtt%dn",,woi.ID,woi.depa,woi.salary1,wo i.salary2,woi.salary3,woi.salary4,woi.salary1+woi.salary2+woi.salary3-woi.salary4); printf(" 请重新输入该职工信息 ");printf(" 姓名: ");scanf("%s", );printf(" 工号: ");sca
31、nf("%s",woi.ID);printf(" 所属部门: ");scanf("%s",woi.depa);printf(" 基本工资: ");scanf("%d",woi.salary1);printf(" 奖励工资: ");scanf("%d",woi.salary2);printf(" 补贴项目即金额: ");scanf("%d", woi.salary3);printf(" 扣款项目及金额 :&q
32、uot;);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(" 请输入要修改的职工工号: ");scanf("%s",id);for (i=0;i<Number;i+)if (strcmp(id,woi.I
33、D);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(" 请重新输入该职工信息 ");printf(" 姓名: &quo
34、t;);scanf("%s", );printf(" 工号: ");scanf("%s",woi.ID);printf(" 所属部门 :");scanf("%s",woi.depa);printf(" 基本工资: ");scanf("%d",woi.salary1);printf(" 奖励工资: ");scanf("%d",woi.salary2);printf(" 补贴项目即金额: &qu
35、ot;);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");void back()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 24秋国开《幼儿园课程基础》形成性考核1-4答案
- 茶叶创新喝法研究报告
- 茶叶二十年研究报告
- 重庆财经学院《国际结算》2022-2023学年第一学期期末试卷
- 策划设计宣传运营方案
- 策划优惠劵发放方案
- 炒瓜子课程设计
- 三年级数学(上)计算题专项练习附答案集锦
- 潮州物业绿化养护方案
- 仲恺农业工程学院《数据结构》2021-2022学年期末试卷
- 传统文化作文指导课件
- 部编版语文四年级上册第五单元(复习课件)
- 苏教版高一数学必修1全套精美课件
- 层面解剖与层面外科课件
- 《飞夺泸定桥》-完整版课件
- Word中表格的设计与制作
- 啤酒制造业的成本核算
- 质量检查大纲
- (中职)税收基础项目六 企业所得税教学课件
- X中医院安全生产领导小组
- 《干将莫邪》 完整版课件
评论
0/150
提交评论