1、#include #include #include #define N 10struct workerchar num20; /职员编号char name20; /职员名称char sex;/职员性别 int age;/职员年纪char remark20;/职员备注 stu10; void input()/职员基础信息录入int i=0; FILE *fp; /文件指针for(i=0;iN;i+) /录入信息printf(n请输入第%d个职员基础信息:n,i+1); printf(职员编号: );scanf(%s,stui.num); printf(职员名称: );scanf(%s,stui
2、.name);fflush(stdin);printf(职员性别: );scanf(%c,&stui.sex);printf(职员年纪:);scanf(%d,&stui.age);printf(备注: );scanf(%s,stui.remark); if(fp=fopen(worker-massge,wb)=NULL) /判定文件打开是否成功 printf(文件打开失败);exit(0);for(i=0;iN;i+) if(fwrite(&stui,sizeof(struct worker),1,fp)!=1) printf(file writer errorn);fclose(fp); v
3、oid show(int j)/显示职员信息 int i; FILE *fp; if(fp=fopen(worker-massge,rb)=NULL)/判定文件打开是否成功printf(文件打开失败); exit(0);for(i=0;ij;i+) fread(&stui,sizeof(struct worker),1,fp); /*读磁盘文件*/ printf(n*职员基础信息表*n); /显示职员信息 printf(编号t名称t性别t年纪t备注n);for(i=0;stui.age!=-1&iN;i+)printf(n%st%st%ct%dt%sn,stui.num,stui.name,s
4、tui.sex,stui.age,stui.remark);void search()/根据职员名称进行查询 int a,i,g,e;char d,r20,c20;FILE *fp; if(fp=fopen(worker-massge,rb)=NULL)/判定文件打开是否成功printf(文件打开失败); return;for(i=0;iN;i+) fread(&stui,sizeof(struct worker),1,fp); /*读磁盘文件*/ fclose(fp);while(g)printf(*请选择查询方法*n);printf( 1,姓名 2,序号 3,性别 4,年纪n );prin
5、tf(*n);scanf(%d,&a);switch(a)case 1:printf(请输入姓名:);scanf(%s,r);printf(姓名 序号 性别 年纪 备注 n );for(i=0;iN;i+) if(strcmp(stui.name,r)=0) printf(n%st%st%ct%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.remark);break;case 2:printf(请输序号:);scanf(%s,&c);printf(姓名 序号 性别 年纪 备注 n );for(i=0;iN;i+) if(strcmp(c,stu
6、i.num)=0) printf(n%st%st%ct%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.remark);break;case 3:printf(请输性别:);getchar();scanf(%c,&d);printf(姓名 序号 性别 年纪 备注 n );for(i=0;iN;i+) if(stui.sex=d) printf(n%st%st%ct%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.remark);break;case 4:printf(请输年纪:);scanf(%d,
7、&e);printf(姓名 序号 性别 年纪 备注 n );for(i=0;i10;i+) if(stui.age=e) printf(n%st%st%ct%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.remark);break;default :printf(错误);break;printf(-_是否继续查询(是按1/否按0):); scanf(%d,&g);void change(int k)/修改职员信息int i;FILE *fp; char listname20;char password10;doprintf(请输入修改密码n);
8、scanf(%s,password);if(strcmp(password,0819)!=0)printf(密码错误,不能修改n);continue;break;while(1);printf(密码正确,能够修改n); if(fp=fopen(worker-massge,rb)=NULL) printf(文件打开失败); return ;for(i=0;ik;i+) fread(&stui,sizeof(struct worker),1,fp); /*读磁盘文件*/ printf(nn-职员信息表-nn); printf(编号t姓名t性别t年纪t备注n);for(i=0;ik;i+)print
9、f(%st%st%ct%dt%sn,stui.num,stui.name,stui.sex,stui.age,stui.remark); printf(请输入要更改职员编号:);scanf(%s,listname);for(i=0;ik;i+)if(strcmp(listname,stui.num)=0)break;if(ik) /修改职员信息 printf(n请修改职员信息:n);printf(职员编号: );scanf(%s,stui.num); printf(职员姓名: );scanf(%s,stui.name);fflush(stdin);printf(职员性别: );scanf(%c
10、,&stui.sex);printf(职员年纪: );scanf(%d,&stui.age);printf(职员备注: );scanf(%s,&stui.remark);else printf(对不起,你请输入职员编号是错误或没有此编号); return ;/if(fp=fopen(worker-massge,wb)=NULL) printf(文件打开失败);exit(0);for(i=0;ik;i+) /往文件里写修改数据 if(fwrite(&stui,sizeof(struct worker),1,fp)!=1) printf(file writer errorn);fclose(fp)
11、; int del() /职员信息删除 int i,j,k=0;FILE *fp; char listname20;printf(请输入要删除职员编号:);scanf(%s,listname); if(fp=fopen(worker-massge,rb)=NULL) printf(文件打开失败);return 0; ; for(i=0;iN;i+) fread(&stui,sizeof(struct worker),1,fp); /*读磁盘文件*/fclose(fp); for(i=0;iN;i+)if(strcmp(listname,stui.num)=0)k=1;break;if(k=1)
12、 /修改职员信息 for(j=i;jN-1;j+) stuj=stuj+1; else printf(对不起,你请输入职员编号是错误或没有此编号); return 0;strcpy(stuj.num,000);stuj.age=-1;/往文件里写if(fp=fopen(worker-massge,wb)=NULL) printf(文件打开失败);return 0;for(i=0;iN-1;i+) /往文件里写修改数据 if(fwrite(&stui,sizeof(struct worker),1,fp)!=1) printf(file writer errorn);fclose(fp);ret
13、urn N-1;void save(int j) /保留职员信息 FILE *fp; int i; if(fp=fopen(worker-massge,wb)=NULL) printf(文件打开失败);exit(0);for(i=0;ij;i+) if(fwrite(&stui,sizeof(struct worker),1,fp)!=1) printf(file writer errorn);printf(保留成功n);fclose(fp);void main() char choice; /输入数值,确定选项. char password10;doprintf(请输入进入人事档案管理系统密
14、码n);scanf(%s,password);if(strcmp(password,0819)!=0)printf(密码错误,不能进入主界面n);continue;break;while (1); printf(密码正确,能够进入人事档案管理系统n); while(choice!=0) printf(*人事档案管理系统*n);printf( 1.输入职员基础信息 & 2.显示职员基础信息 n);printf( 3.保留职员基础信息 & 4.删除职员基础信息 n);printf( 5.修改职员基础信息(要输入密码) & 6.查询职员基础信息 n);printf( 0.退出系统 n);printf(*n); printf(请选择以上目录(0-6)n);scanf(%d,&choice);switch (choice)case 1:input();/输入职员信息break;case 2:show(N);/显示职员信息break;case 3:save(N); /保留职员信息break;case 4:del();/删除职员信息break;case 6:search();/查询职员break;case 5:change(N);/修改改职员信息break;