1、 float sk; /保存职工税款 float sfgz; /保存职工实发工资 ZGGZ;void menu() printf( Empoyee Systemn);- -n *1 input record *2 delete recordn); printf( *3 search record *4 modify recordn printf( *5 insert record *6 count recordn); printf( *7 sort record *8 save recordn printf( *9 display record *0 quit recordnPlease en
2、ter you choice(0-9)nint input(ZGGZ a,int k) int j,x; char str10; j=x=0; while(1) printf(-n printf(请输入职工的编号:(按0返回主菜单) scanf(%s,str); strcpy(ak.num,str); for(j=0;jk;j+) if(strcmp(aj.num,str)=0) printf(已经有工号为%s的员工信息!请重新输入员工号。n,str); scanf(%s,str); strcpy(ak.num,str); if(strcmp(ak.num,0)=0) break; print
3、f(请输入职工的姓名: scanf(,ak.name); printf(请输入职工的基本工资: scanf(%f,&ak.jbgz);请输入职工的奖金:ak.jj);请输入职工的扣款: scanf(%f,&ak.kk); ak.yfgz=ak.jbgz+ak.jj-ak.kk; ak.sk=ak.yfgz*(0.05); ak.sfgz=ak.yfgz*(0.95); k+; return k; int del(ZGGZ a,int y) int i=0; int x=0; char str15;请输入你要删除的编号或姓名: scanf(-删除成功-n for(i=0;iy;i+) if(!s
4、trcmp(str,ai.num)|!strcmp(str,ai.name) while(iy) strcpy(ai.num,ai+1.num); strcpy(ai.name,ai+1.name); ai.jbgz=ai+1.jbgz; ai.jj=ai+1.jj; ai.kk=ai+1.kk; ai.sfgz=ai+1.sfgz; ai.sk=ai+1.sk; ai.yfgz=ai+1.yfgz; i+; x+; if(x=0)输入的编号或姓名不存在,请重新输入:n return y-x;int sear(ZGGZ a,int y) int i; int x=0; char str15;请
5、输入你要查找的编号或姓名: scanf(,str); for(i=0;y;i+) if(!strcmp(str,ai.num)|!strcmp(str,ai.name)员工编号为%sn,ai.num);员工姓名为%sn,ai.name); printf(基本工资:%fn,ai.jbgz);奖金:%fn,ai.jj);扣款:%fn,ai.kk);应发工资:,ai.yfgz);税款:,ai.sk);实发工资:%fn,ai.sfgz); x+; if(x=0) 未找到该记录n return -1;void mod(ZGGZ a,int y) int i; int x=0; char str15;请输
6、入你要修改的编号: scanf(%s,str); for(i=0;y;i+) if(!strcmp(str,ai.num)|!strcmp(str,ai.name) 请输入修改后职工的姓名: scanf(,ai.name);请输入修改后职工的基本工资:ai.jbgz);请输入修改后职工的奖金:ai.jj);请输入修改后职工的扣款:,&ai.kk);-修改成功-n ai.yfgz=ai.jbgz+ai.jj-ai.kk; ai.sk=ai.yfgz*(0.05); ai.sfgz=ai.yfgz*(0.95); x+; if(x=0)未找到要修改的编号nint insert(ZGGZ a,int
7、 y)请输入你要插入的编号:请输入一条新的记录信息: for(i=0;ix+1;i-) ai.jbgz=ai-1.jbgz; ai.jj=ai-1.jj; ai.kk=ai-1.kk; ai.sfgz=ai-1.sfgz; ai.sk=ai-1.sk; ai.yfgz=ai-1.yfgz; strcpy(ai.name,ai-1.name); strcpy(ai.num,ai-1.num); printf(请输入职工的编号: scanf(,ax.num); scanf(,ax.name); printf(请输入职工的基本工资: scanf(%fax.jbgz);请输入职工的奖金: scanf(
8、ax.jj);请输入职工的扣款:%fax.kk); ax.yfgz=ax.jbgz+ax.jj-ax.kk; ax.sk=ax.yfgz*(0.05); ax.sfgz=ax.yfgz*(0.95); return y+1;void count(ZGGZ a,int y) int q11=0,0,0,0,0,0,0,0,0,0,0; int x; x=(int)ai.yfgz/1000; switch(x) case 9:q1+;break; case 8:q2+;break; case 7:q3+;break; case 6:q4+;break; case 5:q5+;break; case
9、 4:q6+; case 3:q7+; case 2:q8+; case 1:q9+; case 0:q10+; default:q0+;应发工资在 10000以上 的人数为%dn,q0);应发工资在 9000到10000 的人数为%dn,q1);应发工资在 8000到9000 的人数为%dn,q2);应发工资在 7000到8000 的人数为%dn,q3); 应发工资在 6000到7000 的人数为%dn,q4);应发工资在 5000到6000 的人数为%dn,q5);应发工资在 4000到5000 的人数为%dn,q6);应发工资在 3000到4000 的人数为%dn,q7);应发工资在 2
10、000到3000 的人数为%dn,q8);应发工资在 1000到2000 的人数为%dn,q9);应发工资在 1000以上 的人数为%dn,q10);void sort(ZGGZ a,int y) int i,j; float t; for(j=0;jai+1.sfgz) t=ai.sfgz; ai.sfgz=ai+1.sfgz; ai+1.sfgz=t; t=ai.jbgz; ai.jbgz=ai+1.jbgz; ai+1.jbgz=t; t=ai.jj; ai.jj=ai+1.jj; ai+1.jj=t; t=ai.kk; ai.kk=ai+1.kk; ai+1.kk=t; t=ai.yf
11、gz; ai.yfgz=ai+1.yfgz; ai+1.yfgz=t; t=ai.sk; ai.sk=ai+1.sk; ai+1.sk=t; strcpy(str,ai.num); strcpy(ai.num,ai+1.num); strcpy(ai+1.num,str); strcpy(str,ai.name); strcpy(ai.name,ai+1.name); strcpy(ai+1.name,str);void save(ZGGZ a,int n) FILE *fp; if(fp=fopen(sj.txt,wb)=NULL)cannot open filen return;n; if
12、(fwrite(&ai,sizeof(struct employee),1,fp)!=1) printf(file write errorn fclose(fp);void display(ZGGZ a,int n) int i=0; if(n=0) Files are emptyn return; do-n员工编号为%sn,ai.num);员工姓名为%sn,ai.name);基本工资:,ai.jbgz);奖金:,ai.jj);扣款:%fn,ai.kk);应发工资:,ai.yfgz);税款:,ai.sk);实发工资:,ai.sfgz); i+; while(in);void main() int selete,c=0; int i=0; int z=0; char q,p,x,s; ZGGZ b100; if(fp=fopen(sj.txt,rb)=NULL) printf(Not Found! else do fread(&bi,sizeof(struct employee),1,fp); i+; while(!feof(fp); fclose(fp); c=i-1; while(1) menu();%dselete); if(selete=0)