(F1+mid*sizeof(WORKERBASIC))->age,(F1+mid*sizeof(WORKERBASIC))->name); printf(\ } PrintPause(); return 0; }
int EditByage(WORKERBASIC *F1,int n) /*按年龄查找*/ { int a,flag=0,i; printf(\ printf(\ for(i=0;i
}
int Edit() /*查找*/ { WORKERBASIC load,*F1; int n=0,key=0,i; FILE *fp=NULL; cleanscreen(); if ((fp=fopen(\ { printf(\ PrintPause(); return 0; } while(!feof(fp)) /*统计职工的数量*/ { if (fread(&load,sizeof(WORKERBASIC),1,fp)==1) n++; } fclose(fp); if (n==0) { printf(\ PrintPause(); return 0; } F1=(WORKERBASIC *)malloc(n*sizeof(WORKERBASIC)); /*按职工的人数申请内存空间*/ fp=fopen(\ for(i=0;i printf(\ printf(\ printf(\ printf(\ printf(\ or Esc?\\n\ key=getch(); switch(key) { case '1': key=EditByNo(F1,n); break; case '2': key=EditByName(F1,n); break; case '3': key=EditByage(F1,n); break; } } free(F1); return 0; } int Modify() { WORKER *head=NULL,*t=NULL,*load=NULL; FILE *fp=NULL; char str[20]; int num; cleanscreen(); load=(WORKER *)malloc(sizeof(WORKER)); if((fp=fopen(\ { printf(\ PrintPause(); return 0; } head=t=load; if (fread(load,sizeof(WORKERBASIC),1,fp)!=1) { printf(\ PrintPause(); return 0; } while(!feof(fp)) /*修改*/ { load=(WORKER *)malloc(sizeof(WORKER)); t->next=load; if (fread(load,sizeof(WORKERBASIC),1,fp)!=1) break; t=load; } t->next=NULL;/*创建链表完成*/ fclose(fp); t=head; Scan(); printf(\ printf(\ scanf(\ getchar(); num=atoi(str); /*把字符串转换为长整型数*/ if ((strcmp(t->workerinfo.name,str)==0)||(num==t->workerinfo.No)||(num==t->workerinfo.age)) { printf(\ scanf(\ getchar(); printf(\ scanf(\ getchar(); printf(\ scanf(\ getchar(); printf(\ fp=fopen(\ t=head; if (head!=NULL) { fwrite(t,sizeof(WORKERBASIC),1,fp); while(t->next!=NULL) { t=t->next; if(fwrite(t,sizeof(WORKERBASIC),1,fp)!=1) { printf(\ PrintPause(); break; } } free(head); fclose(fp); } PrintPause(); return 0; } /*存入文件(目标在首地址)*/ while(t->next!=NULL) { t=t->next; if ((strcmp(t->workerinfo.name,str)==0)||(num==t->workerinfo.No)||(num==t->workerinfo.age)) { printf(\ scanf(\ getchar(); printf(\ scanf(\ getchar(); printf(\ scanf(\ getchar(); printf(\ fp=fopen(\ t=head; if (head!=NULL) { fwrite(t,sizeof(WORKERBASIC),1,fp); while(t->next!=NULL) { t=t->next; if(fwrite(t,sizeof(WORKERBASIC),1,fp)!=1) { printf(\ PrintPause(); break; } }/*存入文件(当不在首地址的时候)*/ free(head); fclose(fp); } }