版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*职工工资管理小软件*/#include<stdio .h>#include<string.h>#include<conio .h>#include<stdlib.h>#defineN 20int NN;/*函数声明*/void enter();int menu();void input();void output();void search();void search_employeeid();void search_name();void edit();void array ();void array_basesalary();void ar
2、ray_postwage();void array_totalwage();void array_yiliaobaoxian();void array_gongjijin();void statistics();void save();void load();void del();void delE();void delName();I*职工类型定义*/struct employeecharemployeeid10;charname10;intsex;intage;floatbasesalary;floatpostwage;floatyiliaobaoxian;floatgongjijin;f
3、loattotalwage;/*职工变量定义*/structemployee empN;structemployee replace;struct employee * p=emp;I*系统主函数* */void main()int c;while (1)nnnn" ); 欢迎进入职工工资管理系统进入管理系统 nn" );退出 nn" ););n" );printf( "printf( "nnn" );printf("1printf("0printf("nnnn"printf(&quo
4、t; 请输入你选择 :scanf( "%d", &c);switch (c)case 1: enter();break ;case 0: printf(II谢谢使用 !n" );exit(0);/*功能:登陆函数 , 进行密码验证*/void enter()char key10,password10 ="1" ;int k=1;printf( " 请输入密码 : n" ); scanf( "%s",key);while (k <=3)if (strcmp(password,key) =0)w
5、hile (1)int a;/system("cls");a =menu();switch (a)case 1:input(); break ;case 2:output(); break ;case 3: search(); break ;case 4:edit(); break ;case 5:array (); break ;case 6:load();statistics();break ;case 7:del();break ;case 0:printf("nn谢谢使用! nnnn"save();exit(0);elsek +;printf(
6、" 输入密码错误!请再次输入 :" ); scanf( "%s",key);if (k>2)if (strcmp(password,key) =0) continue ;elsen" );printf( " 输入密码错误三次 , 系统将自动退出! exit(0);/*功能 : 主菜单函数参数 :a类型:int说明 : 变量返回值 : a*/ int menu() int a ;printf(printf("nn" );H I *|nII欢迎进入职工工资管理系统);printf( "|n")
7、;printf( "|n");printf( "|n");printf( "|n");printf( "|n");printf("|n");*输入职工信息职工信息输出printf( "|3职工信息查询|n" );printf("|n" );printf("|4修改职工信息|n" );printf("|n" );printf("|5工资排序|n" );printf("|n" );
8、printf("|6工资统计|n" );printf("|n" );printf("|7删除职工信息|n" );printf("|n" );printf("|0退出|n" );printf("|n" );printf("|n" );printf("|*电气信息 1032 王利波*|n")Jprintf( "nn" );printf( " 请输入你所选择的选项 :" );scanf( "%
9、d", &a);while (a >7| a<0)printf( " error!n" );printf( " 请重新输入你所选择的选项 :" ); scanf( "%d", &a);return a; /*功能: 职工信息输入*void input()int c;进入职工信息输入模块 nnn" ); 请输入增加职工的数量 : nnn" );p=emp;printf( "printf( " scanf( "%d", &NN);.g
10、ongfor (c =0;c <NN;c+,p +) pc . totalwage =pc . basesalary +pc . postwage- pc . yiliaobaoxian -pc jijin;printf("请输入第个职工信息:nn" ,c +1);printf( " 请输入职工号 :n" ); scanf( "%s",p ->employeeid);if (strcmp(p ->employeeid, "0" )!=0)printf( "请输入职工姓名 :n"
11、 );scanf( "%s",p -> name) ;printf( "请输入职工性别 : n" );scanf( "%d", &p-> sex) ;printf( "请输入职工年龄 : n" );scanf( "%d", &p-> age) ;printf( "请输入职工基本工资 :n" );scanf( "%f", &p-> basesalary) ;printf("请输入职工岗位工资:n&qu
12、ot;);scanf( "%f", &p-> postwage) ;printf("请输入职工医疗保险:n");scanf( "%f" ,&p->yiliaobaoxian);printf("请输入职工公积金 :n");scanf( "%f", &p->gongjijin);printf( "职工信息输入完成! nn");elsereturn ;save();I*功能 : 职工信息输出*/void output()int j;load
13、(); p=emp;printf(进入职工信息输出模块 nnn" );printf( "n" );printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 医疗保险 | 公 积金 | 总工资 |n" );printf( "n" );for (j =0;j <NN;j +) pj . totalwage =pj . postwage+pj . basesalary -pj . yiliaobaoxian jijin;printf( "|%8s|%7s|%5d|%5d| %7.2
14、f| %7.2f| %7.2f| %7.2f|%7.2f|n. employeeid,pj . name,pj . sex,IIpj . age,pj . basesalary,pj . postwage,pj . yiliaobaoxian,pj pj . totalwage);printf( " n");printf( "nn getchar();/* * 功能: 职工信息查询*职工信息输出完成!nn" );-pj . gong,pj. gongjijin,*/void search()int j;while (1) printf(printf( &
15、quot;1按职工号查询n" );printf( "2按职工姓名查询n" );printf( "0退出该项操作n" );printf( "nn" ); while (1)职工信息查询H*);*nnn"printf( " 请输入你的选择 n" ); scanf( "%d", &j);if (j >=0&&j <=2)switch (j)case 1:search_employeeid(); break ;case 2: search_name
16、(); break ;case 0: return ;elseprintf( " 输入错误! nn" );printf( " 请再次输入你的选择 : nn" );I*功能: 按职工号查询函数* */ void search_employeeid()char employeeid10;int k,j;p=emp;printf(H*按职工号查询职工信息*nnnnII);printf( " 请输入要查询职工的职工号nn" );scanf( "%s",employeeid); for (k =0;k <NN;k+)i
17、f (strcmp(employeeid,p -> employeeid) =0) j =k;pj . totalwage =pj . postwage+pj . basesalary -pj . yiliaobaoxian -pj . gongjijin;printf( "n" );医疗保险 | 公,pj. gongjijin,printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 积金 | 总工资 |n" );printf( "|%8s|%7s|%5d|%5d| %7.2f| %7.2f| %7.2
18、f| %7.2f|%7.2f|n" . employeeid,pj . name,pj . sex,pj . age,pj . basesalary,pj . postwage,pj . yiliaobaoxian,pj pj . totalwage);printf( "n" );break ;elseprintf( " not foundn" ); return ;I*功能: 按职工姓名查询函数* */ void search_name() char name10; int flog =0; int f,j;p=emp;printf(H*nn
19、nII);printf( "按职工姓名查询职工信息请输入要查询职工的姓名nn" );scanf( "%s",name);for (f =0;f <NN;f +,p +) if (strcmp(name,p -> name)=0) j =f;pj . totalwage =pj . postwage+pj . basesalary -pj . yiliaobaoxian -pj . gongjij in;printf(IIn" );printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 积
20、金 | 总工资 |n" );printf( "|%8s|%7s|%5d|%5d| %7.2f| %7.2f| %7.2f| %7.2f|%7.2f|n" . employeeid,pj . name,pj . sex,pj . age,pj . basesalary,pj . postwage,pj . yiliaobaoxian,pj pj . totalwage);printf( "n" );break ;elseprintf( " not found nn" );return ;getchar();I*功能: 职工信息
21、修改函数*/void edit()char e10;int g =0,j;char flog;p =emp;printf( " 请输入你要修改职工的职工号 scanf( "%s",e);for (g =0;g <NN;g+)/ if(*e=pg.employeeid)if (strcmp(e,p -> employeeid) =0)j =g;医疗保险 | 公,pj. gongjijin,n" );pj . totalwage =pj . postwage+pj . basesalary -pj . yiliaobaoxian -pj . go
22、ngjij in;printf( "n" );printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 医疗 保险 | 公积金 | 总工资 |n" );printf( "|%8s|%7s|%5d|%5d| %7.2f| %7.2f| %7.2f| %7.2f|%7.2f|n" ,pj . em ployeeid,pj . name,pj . sex,pj . age,pj . basesalary,pj . postwage,pj . yiliaobaoxian,pj. gongjijin,pj .
23、totalwage);printf( "n" );printf( " 是否要修改该职工信息? y( 是 )or n( 否 ) ? nn" ); getchar();scanf( "%c", &flog);if (flog = 'y' )printf("请输入新姓名:n");scanf("%s",p -> name);printf("请输入性别 :n");scanf( "%d", &p-> sex);printf(
24、"请输入年龄 :n");scanf("%d", &p-> age);printf( "请输入基本工资 :n" );scanf( "%f" , &p-> basesalary);printf( "请输入岗位工资 :n" );scanf( "%f" , &p-> postwage);printf( "请输入职工医疗保险 :n" );scanf("%f", &p-> yiliaobaox
25、ian);printf("请输入职工公积金 : n" );scanf("%f" , &p-> gongjijin);printf( " 修改职工信息成功! nn" );if (flog = 'n' )printf( " 退出该项操作! nn" ); return ;save();if (g =NN)printf( " return ;not found nnn");/* 功能: 职工工资排列函数* void array ()int j; while (1) prin
26、tf( "*土*工资排序 *nn"printf( "1r.、 r t - r . ,-、/ r rnn"按基本工资排序printf( "2按岗位工资排序nn"printf( "3按总工资排序nn"printf( "4按医疗保险排序nn"printf( "5按公积金排序nn"printf( "printf( "nnn" ); while (1)printf( "scanf( "%d", &j);if (j &g
27、t;=0&&j <=5) switch (j) case 1:0退出nn"请输入你的选择 :nn"array_basesalary(); break ; case 2:array_postwage(); break ; case 3:););););););););array_totalwage();case 4:array_yiliaobaoxian();case 5:array_gongjijin();case 0:return ;elseprintf( "printf( "break ;break ;break ;输入错误!
28、nnn" ); 请再次输入你的选择 :nn" );/* 功能: 按基本工资排列 (选择法)*/void array_basesalary()int i,j,k;p =emp;for (i =0;i <NN- 1;i +)k =i;for (j =i +1;j <NN;j +)if (pk . basesalary <pj . basesalary)k=j;if (k != i)replace =empk;empk =empi;empi =replace;for (j =0;j <NN;j +)pj . totalwage =pj . postwage
29、+pj . basesalary -pj . yiliaobaoxian -pj .gong jijin;printf( "n" );printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 医疗保险 | 公 积金 | 总工资 |n" );printf( "|%8s|%7s|%5d|%5d| %7.2f| %7.2f| %7.2f| %7.2f|%7.2f|n" ,pj. employeeid,pj . name,pj . sex,pj . age,pj . basesalary,pj . postw
30、age,pj . yiliaobaoxian,pj. gongjijin,pj . totalwage);printf( "n" );/* 功能: 按岗位工资排列 (冒泡法)void array_postwage()int i,j;p=emp;for (i =0;i <NN;i +)for (j =0;j <NN- i;j +)if (pj . postwage<pj+1 . postwage)replace =empj;empj =empj +1;empj +1 =replace;for (j =0;j <NN;j +)pj . totalwage
31、 =pj . postwage+pj . basesalary -pj . yiliaobaoxian -pj .gong jijin;printf( "n" );printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 医疗保险 | 公 积金 | 总工资 |n" );printf( "|%8s|%7s|%5d|%5d| %7.2f| %7.2f| %7.2f| %7.2f|%7.2f|n" ,pj . em ployeeid,pj . name,pj . sex,pj . age,pj . base
32、salary,pj . postwage,pj . yiliaobaoxian,pj . gongjijin, pj . totalwage);printf( "n" );/* 功能: 按医疗保险排列 (冒泡法)*/void array_yiliaobaoxian()int i,j;p=emp;for (i =0;i <NN;i +)for (j =0;j <NN- i;j +)if (pj . yiliaobaoxian <pj+1 . yiliaobaoxian)replace =empj;empj =empj +1;empj +1 =replace;
33、for (j =0;j <NN;j +)pj . totalwage =pj . postwage+pj . basesalary -pj . yiliaobaoxian -pj .gong jijin;printf( "n" );printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 医疗保险 | 公 积金 | 总工资 |n" );printf( "|%8s|%7s|%5d|%5d| %7.2f| %7.2f| %7.2f| %7.2f|%7.2f|n" ,pj . em ployeeid,
34、pj . name,pj . sex,pj . age,pj . basesalary,pj . postwage,pj . yiliaobaoxian,pj. gongjijin,pj . totalwage);printf( "n" );/* 功能:按公积金排列 (选择法)*/ void array_gongjijin()int i,j,k;p =emp;for (i =0;i <NN- 1;i +)k =i;for (j =i +1;j <NN;j +)if (pk . gongjijin <pj . gongjijin)k=j;if (k != i
35、)replace =empk;empk =empi; empi =replace;for (j =0;j <NN;j +)pj . totalwage =pj . postwage+pj . basesalary -pj . yiliaobaoxian -pj .gong jijin;printf( "n" );printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 医疗保险 | 公 积金 | 总工资 |n" );printf( "|%8s|%7s|%5d|%5d| %7.2f| %7.2f| %7.2
36、f| %7.2f|%7.2f|n" ,pj . em ployeeid,pj . name,pj . sex,pj . age,pj . basesalary,pj . postwage,pj . yiliaobaoxian,pj . gongjijin, pj . totalwage);printf( "n" );/* 功能:按总工资排列 (插入法)*/ void array_totalwage()int i,j;p =emp;for (i =1;i <NN;i +)replace =empi;for (j =i -1;j >=0&&
37、pi . totalwage >pi . totalwage;j - )empj +1 =empj;empj +1 =replace;for (j =NN- 1;j >=0;j - )pj . totalwage =pj . postwage+pj . basesalary -pj . yiliaobaoxian -pj .gong jijin;printf( "n" );printf( "| 职工号 | 姓名 | 性别 | 年龄 | 基本工资 | 岗位工资 | 医疗保险 | 公积金 | 总工资 |n" );,pj . em. gongjij
38、in,printf( "|%8s|%7s|%5d|%5d| %7.2f| %7.2f| %7.2f| %7.2f|%7.2f|n" ployeeid,pj . name,pj . sex,pj . age,pj . basesalary,pj . postwage,pj . yiliaobaoxian,pj pj . totalwage);printf( "n" ); /* 功能: 工资统计函数*/ void statistics()int z,a =0,b =0,c =0;p=emp;for (z =0;z <NN;z+)if (pz . tot
39、alwage >3000)a+;continue ;if (pz . totalwage >=2000&&pz . totalwage <=3000)b+;continue ;if (pz . totalwage <=2000&&pz . totalwage >0)c+;continue ;printf("总工资在 3000元以上的职工人数有 : %dnn",a);printf("总工资在 2000元至 3000元的职工人数有 :%dnn",b);printf("总工资在 2000元
40、以下的职工人数有 : %dnn",c);getchar();/*功能: 导出函数*/ void save()int k;FILE *fp;p=emp;if (fp =fopen( "emp_list" , "wb" ) =NULL)printf( "Create file error!n");return ;for (k =0;k <NN;k+,p +)if (fwrite(p, sizeof ( struct employee),1,fp) !=1)printf( " file save error!nn&
41、quot; );break ;elsecontinue ;getchar();fclose(fp);/* 功能: 导入函数*/ void load()int l;FILE *fp;p=emp;if (fp =fopen( "emp_list" ,"rb" ) =NULL)printf( "Create file error!n");exit(0);for (l =0;l <NN;l +,p +)if (fread(p, sizeof ( struct employee),1,fp) !=1)printf( " file
42、 read error!nn" );break ;elsecontinue ;getchar();fclose(fp);/* 功能: 删除函数*/ void del()int in;while (1)printf( "*n"printf( "| 1.按职工号码删除printf( "|n"printf( "| 2.职工按姓名删除printf( "|n"printf( "| 3.返回上一级菜单printf( "*n"); |n");); |n");); |n&
43、quot;);); );printf("请在13之间选择:"scanf( "%d", &in);if (in <1 | in >3)printf( "a 输入有误, 请重新输入! n" ); continue ;elsebreak ;switch (in)case 1:delE();break ;case 2:delName();break ;case 3:break ;/* 删除函数 , 按职工号码删除 */void delE()char employeeid10;char ch;请输入要删除的职工的姓名int t,i,j; p =emp; printf( "n" ); printf( "n 输入: " );scanf( "%s",employeeid);for (i =0;i <NN;i +)if (strcmp(employeeid,pi. employeeid) =0)t =i;printf( "n" );printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川德阳绵竹市第三人民医院招聘5人备考题库及参考答案详解
- 2026辽宁报刊传媒集团(辽宁日报社)面向社会招聘高层次人才10人备考题库附答案详解(轻巧夺冠)
- 2026山东德州京德眼科医院招聘备考题库及完整答案详解1套
- 2026新疆兵能煤业有限责任公司招聘15人备考题库附答案详解(考试直接用)
- 《闻官军收河南河北》教学设计
- 造纸工艺与质量管理手册
- 餐厅菜品研发与推广手册
- 面料选择与服装设计手册
- 木材加工生产与质量控制手册
- 艺术表演演出后复盘与总结手册
- 电影《安妮霍尔》剧本
- 《机器人驱动与运动控制》全套教学课件
- 2024年6月浙江省高考生物试卷真题(含答案解析)
- 学校保安服务投标方案(技术方案)
- (必练)广东初级养老护理员考前强化练习题库300题(含答案)
- DL-T-1946-2018气体绝缘金属封闭开关设备X射线透视成像现场检测技术导则
- 八大作业票审批流程
- 交管12123学法减分考试题大全(含答案)
- 医院医生电子处方笺模板-可直接改数据打印使用
- 色盲检测图(俞自萍第六版)
- 高二【美术(人教版)5】客观看物体 (认知形体)-课件
评论
0/150
提交评论