/* -- Hello, world */#include<>struct person{ char name[8]; char tel[15];char addr[50];};char filename[20]="E:\\";FILE *fp;void creat();void output();void search();void append();void modify();void delete();main( ){ int m; creat(); while(1) {printf("\n\t\t*********欢迎使用通讯录信息管理系统*********\n\n"); printf("\n\t\t添加,请按1"); printf("\n\t\t查找,请按2"); printf("\n\t\t修改,请按3"); printf("\n\t\t删除,请按4"); printf("\n\t\t输出,请按5"); printf("\n\t\t退出,请按0\n");printf("\n\t\t********************************************\n\n");printf("Please select(0--5):");scanf("%d",&m); if(m>=0&&m<=5) { switch(m) { case 1: append(); break; case 2: search(); break; case 3: modify(); break; case 4: delete(); break; case 5: output(); break; case 0: exit(); } printf("\n\n操作完毕,请再次选择!"); } else printf("\n\n选择错误,请再次选择!"); } }/*输入模块creat( ): 创建通讯录的子函数。*/void creat(){ struct person one; long s1; /*printf("\n请输入通讯录文件名:"); scanf("%s",filename); */ if((fp=fopen(filename,"at+"))==NULL) { printf("\n不能建立通讯录!"); exit(); } fprintf(fp,"%-10s%-20s%-50s\n","姓名","电话号码","住址"); printf("\n请输入姓名、电话号码及住址(以0结束)\n"); scanf("%s",); while(strcmp(,"0")) { scanf("%s%s",); fprintf(fp,"%-10s%-20s%-50s\n",); scanf("%s",); } fclose(fp); }/*输出模块output( ):输出通讯录中联系人通讯信息的子函数*/void output(){ struct person one; if((fp=fopen(filename,"r"))==NULL) { printf("\n不能打开通讯录!"); exit(); } printf("\n\n%20s\n","通 讯 录"); while(!feof(fp)) { fscanf(fp,"%s%s%s\n",); printf("%-10s%-20s%-50s",); } fclose(fp); }/*添加模块append( ):向通讯录中添加某人通讯信息的子函数*/void append(){ struct person one; if((fp=fopen(filename,"a"))==NULL) { printf("\n不能打开通讯录!"); exit(); } printf("\n请输入添加的姓名、电话号码及住址\n"); scanf("%s%s%s",); fprintf(fp,"%-10s%-20s%-50s\n",); fclose(fp);}/*查找模块search( ):在通讯录中查找某人通讯信息的子函数*/void search(){ int k=0; char namekey[8]; struct person one; printf("\n请输入姓名:"); scanf("%s",namekey); if((fp=fopen(filename,"rb"))==NULL) { printf("\n不能打开通讯录!"); exit(); } while(!feof(fp)) { fscanf(fp,"%s%s%s\n",); if(!strcmp(namekey,)) { printf("\n\n已查到,记录为:"); printf("\n%-10s%-18s%-50s",); k=1; } } if(!k) printf("\n\n对不起,通讯簿中没有此人的记录。"); fclose(fp); }/*修改模块modify( ):在通讯录中修改某人通讯信息的子函数*/void modify(){ int m,k=0; long offset; char namekey[8]; struct person one; printf("\n请输入姓名:"); scanf("%s",namekey); if((fp=fopen(filename,"r+"))==NULL) { printf("\n不能打开通讯录!"); exit(); } while(!feof(fp)) { offset=ftell(fp); fscanf(fp,"%s%s%s\n",); if(!strcmp(namekey,)) { k=1; break; } } if(k) { printf("\n已查到,记录为:"); printf("\n%-10s%-18s%-50s",); printf("\n请输入新姓名、电话号码及住址:"); scanf("%s%s%s",); fseek(fp,offset,SEEK_SET); printf("%ld",ftell(fp)); fprintf(fp,"%-10s%-20s%-50s\n",); } else printf("\n对不起,通讯录中没有此人的记录。"); fclose(fp); }/*删除模块delete( ):在通讯录中删除某人通讯信息的子函数*/void delete(){ int m,k=0,flag; long offset1,offset2; char namekey[8], valid[4]; struct person one; printf("\n请输入姓名:"); scanf("%s",namekey); if((fp=fopen(filename,"r+"))==NULL) { printf("\n不能打开通讯录!"); exit(); } while(!feof(fp)) { offset1=ftell(fp); fscanf(fp,"%s%s%s\n",); if(!strcmp(namekey,)) { k=1; break; if(k) { printf("\n已查到,记录为"); printf("\n%-10s%-18s%-50s",); printf("\n确实要删除,按1;不删除,按0:"); scanf("%d",&m); if(m) { fseek(fp,offset1,SEEK_SET); fprintf(fp,"%-10s%-20s%-50s\n","","",""); } else printf("\n对不起,通讯录中没有此人的记录。"); fclose(fp); } } } }1###########################################################