《2022年职工信息管理系统 2.pdf》由会员分享,可在线阅读,更多相关《2022年职工信息管理系统 2.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#include #include #include struct worker int num; char name20; char zhicheng10; int wages; int reward; long birth; int salary; work500,work1; /*定义结构体 */ void menu(); /声明菜单函数void type_in(); /声明录入函数void baocun(int); /声明保存函数void scan(); /声明浏览函数void del(); /声明删除函数void search(); /声明查询函数void search_zhiche
2、ng(); /声明按职称查询函数void search_name(); /声明按姓名查找函数void change(); /声明修改函数void order(); /声明排序函数void add(); /声明添加函数void order_wages(); void order_name(); void menu() /*菜单函数 */ printf(n); printf( welcome to n); printf( 职 工 信 息 管 理 系 统); printf(*n); printf( 1.录入职工信息n); printf( 2.浏览职工信息n); printf( 3.查询职工信息n);
3、 printf( 4.删除职工信息n); printf( 5.修改职工信息n); printf( 6.职工信息排序n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - printf( 7.添加职工信息n); printf( 8.退出 n); printf(*n); printf(n); /*/ void main() int n,f; while(1) do menu(); /* 调用菜单函数*/ printf( 请输入你需
4、要操作的序号(18):n); scanf(%d,&n); if(n=1&n=8) f=1; break; else f=0; printf( 您输入有误,请重新选择!); while(f=0); switch(n) case 1:printf( 录入职工信息 n);printf(n);type_in();break; case 2:printf( 浏览职工信息n);printf(n);system(cls);scan();break; case 3:printf( 查询职工信息n);printf(n);system(cls);search();break; case 4:printf( 删除职
5、工信息n);printf(n);system(cls);del();break; case 5:printf( 修改职工信息n);printf(n);system(cls);change();break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - case 6:printf( 职工信息排序n);printf(n);system(cls);order();break; case 7:printf( 添加职工信息n);pri
6、ntf(n);system(sls);add();break; case 8:goto loop;/* 用 goto 语句跳至跳至指定的行*/ default :break; loop:/ 行标system(cls); printf(nnnnnn - 谢谢使用! -nnnnnn); /*/ void type_in() /*录入函数 */ int i,m; printf( 请输入需要创建信息的职工人数(1-500):n); scanf(%d,&m); for (i=0;im;i+) printf( 请输入职工号:); scanf(%d,&worki.num); printf(n); print
7、f( 请输入姓名 : ); scanf(%s,worki.name); getchar(); printf( 请输入职称:); scanf(%s,&worki.zhicheng); printf( 请输入基本工资: ); scanf(%d,&worki.wages); printf( 请输入奖金 : ); scanf(%d,&worki.reward); printf( 请输入生日(格式如19900101): ); scanf(%d,&worki.birth); getchar();system(cls); printf(n 一个职工的信息档案创建完毕!请输入下一个职工的信息n); worki
8、.salary=worki.wages + worki.reward; printf(n); baocun(m); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - /*/ void baocun(int m) /*保存文件函数*/ int i; FILE *fp; if (fp=fopen(E:worker_list.txt,wb)=NULL) /* 创建文件并判断是否能打开*/ printf ( 此文件不能打开n); exi
9、t(0); for (i=0;im;i+) /*将内存中职工的信息输出到磁盘文件中去*/ if (fwrite(&worki,sizeof(struct worker),1,fp)!=1) printf(file write errorn); fclose(fp); /*/ int load() /* 导入函数 */ FILE*fp; int i=0; if(fp=fopen(E:worker_list.txt,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&worki,sizeof(struct worker),1,
10、fp); i+; while(feof(fp)=0); fclose(fp); return(i-1); /*/ void scan() /*浏览函数 */ int i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - int m=load(); printf(n 职工号 t 姓名 t 职称 t 基本工资 t 奖金 t 实际工资 t 生日n); for(i=0;im;i+) printf(n %dt%st %st %d t%d
11、t %dt %ldn,worki.num,worki.name, worki.zhicheng,worki.wages,worki.reward,worki.salary,worki.birth); printf( 按任意键继续n); getchar(); getchar();system(cls); /*/ void del() /*删除函数 */ int m=load(); int i,j,n,t,f; char name110; printf(n 原来的职工信息:n); scan(); /* 调用浏览函数*/ printf(n); printf( 请输入要删除的职工的姓名:n); sca
12、nf(%s,name1); for(f=1,i=0;f&im;i+) if(strcmp(worki.name,name1)=0) printf(n 已找到此人,原始记录为:n); printf(n职 工 号 t姓 名 t职 称 t 基 本 工 资 t 奖 金 t 实 际 工 资 t 生 日n); printf(n %dt%st %st %d t%dt %dt %ldn,worki.num,worki.name, worki.zhicheng,worki.wages,worki.reward,worki.salary,worki.birth); printf(n 确实要删除此人信息请按1,不删
13、除请按0n); scanf(%d,&n); if(n=1) /* 如果删除,则其他的信息都向前移一行*/ for(j=i;j=1&t=3) f=1; break; else f=0; printf( 您输入有误,请重新选择!); while(f=0);system(cls); while(f=1) switch(t) case 1:printf( 按姓名查询 n);search_name();break; case 2:printf( 按职称查询 n);search_zhicheng();break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
14、 - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - case 3:main();break; default:break; system(cls); /*/ void search_name()/* 按姓名查找函数*/ char name110; int i,t; int m=load(); printf( 请输入要查找的姓名:n); scanf(%s,name1); for(i=0;im;i+) if(strcmp(name1,worki.name)=0) printf(n 已找到此人,其记录为:n); printf(
15、n 职工号 t 姓名 t 职称 t 基本工资 t 奖金 t 实际工资 t 生日n); printf(n %dt%st %st %d t%dt %dt %ldn,worki.num,worki.name, worki.zhicheng,worki.wages,worki.reward,worki.salary,worki.birth); break; if(i=m) printf(n 对不起,查无此人n); printf(n); printf( 返回查询函数请按1,继续查询职工号请按2n); scanf(%d,&t); switch(t) case 1:search();break; case
16、2: break; default:break; /*/ void search_zhicheng()/* 按职称查找函数*/ char zhicheng110; int i,t; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - int m=load(); printf( 请输入要查找的职称:n); scanf(%s,zhicheng1); for(i=0;im;i+) if(strcmp(zhicheng1,worki.zh
17、icheng)=0) printf(n 已找到此人,其记录为:n); printf(n 职工号 t 姓名 t 职称 t 基本工资 t 奖金 t 实际工资 t 生日n); printf(n %dt%st %st %d t%dt %dt %ldn,worki.num,worki.name, worki.zhicheng,worki.wages,worki.reward,worki.salary,worki.birth); break; if(i=m) printf(n 对不起,查无此人n); printf(n); printf( 返回查询函数请按1,继续查询职工号请按2n); scanf(%d,&
18、t); switch(t) case 1:search();break; case 2: break; default:break; /*/ void change() /* 修改函数 */ int num; char name20; char zhicheng10; int wages; int reward; int birth; int salary; int b,c,i,n,t,f; int m=load(); /* 导入文件内的信息*/ printf(n 原来的职工信息:n); scan(); /* 调用浏览函数*/ printf(n); printf( 请输入要修改的职工的姓名:n
19、); scanf(%s,name); for(f=1,i=0;f&i7|c=1&k=3) f=1; break; else f=0; printf( 您输入有误,请重新选择!); while(f=0);system(cls); while(f=1) switch(k) case 1:printf(n 按姓名排序为(字母由小到大排列):n);order_name();break; case 2:printf(n 按基本工资排序为(由高到低排列 ):n);order_wages();break; case 3:system(cls);main();break; default:break; sys
20、tem(cls); /*/ void order_name()/* 按姓名排序函数*/ int i,j,k; int m=load(); for(i=0;im-1;i+) for(j=0;j0) work1=workj;workj=workj+1;workj+1=work1; baocun(m); printf(n 职工号 t 姓名 t 职称 t 基本工资 t 奖金 t 实际工资 t 生日n); for(j=0;jm;j+) printf(n %dt%st %st %d t%dt %dt %ldn,workj.num,workj.name, workj.zhicheng,workj.wages
21、,workj.reward,workj.salary,workj.birth); printf( 返回排序函数请按1,返回主菜单请按2n); scanf(%d,&k); switch(k) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - case 1:order();break; case 2:system(cls); main();break; default:break; system(cls); /*/ void or
22、der_wages()/* 按基本工资排序函数*/ int i,k,j; int m=load(); for(i=0;im-1;i+) for(j=0;jm-1-i;j+) if(workj.wagesworkj+1.wages)/*用起泡法排序*/ work1=workj;workj=workj+1;workj+1=work1; baocun(m); printf(n 职工号 t 姓名 t 职称 t 基本工资 t 奖金 t 实际工资 t 生日n); for(j=0;jm;j+) printf(n %dt%st %st %d t%dt %dt %ldn,workj.num,workj.name
23、, workj.zhicheng,workj.wages,workj.reward,workj.salary,workj.birth); printf( 返回排序函数请按1,返回主菜单请按2n); scanf(%d,&k); switch(k) case 1:order();break; case 2:system(cls); main();break; default:break; system(cls); /*/ void add() /* 添加函数 */ int n=load(); int i,m; printf( 请输入需要添加信息的职工人数n); scanf(%d,&m); for
24、(i=n;im+n;i+) printf( 请输入职工号:); scanf(%d,&worki.num); printf(n); printf( 请输入姓名 : ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - scanf(%s,worki.name); printf( 请输入职称:); scanf(%s,&worki.zhicheng); printf( 请输入基本工资: ); scanf(%d,&worki.wage
25、s); printf( 请输入奖金 : ); scanf(%d,&worki.reward); printf( 请输入生日(格式如19900101): ); scanf(%d,&worki.birth); getchar();system(cls); printf(n 一个职工的信息档案添加完毕!请输入下一个职工的信息n); worki.salary=worki.wages + worki.reward; printf(n); baocun(m+n);system(cls); printf( 添加职工档案完成。n 这时库存信息为:n); scan(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -