2022年用C语言编写通讯 .pdf
#include #include typedef struct Friends char sName30; int tel; int sMovtel; int home; char Emaile30; char assort30; Friends; int c; void jianli (); void search (); void amend (); void change (); void input (Friends *p); void output (Friends *p); void sdele (); void fugai (); int main() int a,b=1; char s; while(b=1) printf(tt通讯录 n); printf(t1 、新建 n); printf(t2 、查找 n); printf(t3 、修改 n); printf(t4 、删除 n); printf( 请选择 .n); scanf(%d,&a); switch(a) case 1:jianli ();break; case 2:search ();break; case 3:amend ();break; case 4:sdele();break; printf( 是否返回主菜单(YorN)n); fflush(stdin); scanf(%c,&s); if(s=y| s=Y) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - b=1; else break; return 0; /*新建 */ void jianli () int b=1; char d; Friends x; FILE *fp; 通讯录 .txt,ab); while (b=1) input(&x); fwrite(&x,sizeof(x),1,fp); printf( 是否继续新建 (YorN)?n); fflush(stdin); scanf(%c,&d); if(d=y|d=Y) b=1; else break; fclose(fp); /*查找 */ void search () int h , j = 1 , n=0 , num ; char k20; FILE *fp; Friends y; printf(t1 、按号码查找 n); printf(t2 、按姓名查找 n); printf( 请选择 .n); scanf(%d,&h); if(h=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - printf(t 请输入你查找的号码!n); while(j=1) scanf(%d,&num); 通讯录 .txt,rb); while(!feof(fp) fread(&y,sizeof(y),1,fp); if(num=y.sMovtel) output(&y); break; if(num!=y .sMovtel) printf( 你输入的号码有误!n 请重新输入 n); j=1; fclose(fp); if(h=2) printf(t 请输入你查找的姓名!n); while(j=1) scanf(%s,k); 通讯录 .txt,rb); while(!feof(fp) fread(&y,sizeof(y),1,fp); if(strcmp(k,y .sName)=0) output(&y); break; if(strcmp(k,y .sName)!=0) printf( 你输入的姓名有误!n 请重新输入 n); j=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - fclose(fp); /*修改 */ void amend () int h , j = 1 , n=0 , num ; char k20; FILE *fp; Friends y; printf(t1 、按号码查找你所需要修改的原始资料n); printf(t2 、按姓名查找你所需要修改的原始资料n); printf( 请选择 .n); scanf(%d,&h); if(h=1) printf(t 请输入查找你的号码!n); while(j=1) scanf(%d,&num); 通讯录 .txt,rb); while(!feof(fp) c+; fread(&y,sizeof(y),1,fp); if(num=y.sMovtel) change (); break; if(num!=y .sMovtel) printf( 你输入的号码有误!n 请重新输入 n); j=1; fclose(fp); if(h=2) printf(t 请输入你查找的姓名!n); while(j=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - c+; scanf(%s,k); 通讯录 .txt,rb); while(!feof(fp) fread(&y,sizeof(y),1,fp); if(strcmp(k,y .sName)=0) change (); break; if(strcmp(k,y .sName)!=0) printf( 你输入的姓名有误!n 请重新输入 n); j=1; fclose(fp); /*删除 */ void sdele() int h , j = 1 , n=0 , num ; char k20; FILE *fp; Friends y; printf(t1 、按号码查找你所需要修改的原始资料n); printf(t2 、按姓名查找你所需要修改的原始资料n); printf( 请选择 .n); scanf(%d,&h); if(h=1) printf(t 请输入查找你的号码!n); while(j=1) scanf(%d,&num); 通讯录 .txt,rb); while(!feof(fp) fread(&y,sizeof(y),1,fp); if(num=y.sMovtel) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - fugai (); break; if(num!=y .sMovtel) printf( 你输入的号码有误!n 请重新输入 n); j=1; fclose(fp); if(h=2) printf(t 请输入你查找的姓名!n); while(j=1) scanf(%s,k); 通讯录 .txt,rb); while(!feof(fp) fread(&y,sizeof(y),1,fp); if(strcmp(k,y .sName)=0) fugai (); break; if(strcmp(k,y .sName)!=0) printf( 你输入的姓名有误!n 请重新输入 n); j=1; fclose(fp); void change ()/* 用于修改 */ int f,j; FILE *fp; Friends z ; j=c*133; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - printf( 你要修改的内容:n); printf(t1 、姓名 nt2、手机号 nt3、固定电话号码n); printf(t4 、电子信箱 nt5、家庭住址、 nt6、分类 n); printf( 请选择 .n); scanf(%d,&f); printf( 输入你的新信息!n); switch(f) 通讯录 .txt,wb); fread(&z,sizeof(z),1,fp); fseek(fp,j,SEEK_SET); scanf(%s,z.sName); fwrite(&z.sName,sizeof(z.sName),1,fp); fclose(fp); output (&z); break; fclose(fp); 通讯录 .txt,rb); fread(&z,sizeof(z),1,fp); fseek(fp,(j+31),SEEK_SET); scanf(%d,&z.sMovtel); fwrite(&z.sMovtel,sizeof(z.sMovtel),1,fp); fclose(fp); break; 通讯录 .txt,rb); fread(&z,sizeof(z),1,fp); fseek(fp,(j+35),SEEK_SET); scanf(%d,&z.tel); fwrite(&z.tel,sizeof(z.tel),1,fp); fclose(fp); 通讯录 .txt,rb); fread(&z,sizeof(z),1,fp); fseek(fp,(j+73),SEEK_SET); scanf(%s,z.Emaile); fwrite(&z.Emaile,sizeof(z.Emaile),1,fp); fclose(fp); break; 通讯录 .txt,rb); fread(&z,sizeof(z),1,fp); fseek(fp,(j+69),SEEK_SET); scanf(%d,&z.home); fwrite(&z.home,sizeof(z.home),1,fp); fclose(fp); break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 通讯录 .txt,rb); fread(&z,sizeof(z),1,fp); fseek(fp,(j+103),SEEK_SET); scanf(%d,&z.assort); fwrite(&z.assort,sizeof(z.assort),1,fp); fclose(fp); break; void input (Friends *p)/*输入 */ printf( 请输入姓名: n); scanf(%s,p-sName); printf( 请输入手机号码:n); scanf(%d,&p-sMovtel); printf( 请输入固定电话号码:n); scanf(%d,&p-tel); printf( 请输入电子信箱:n); scanf(%s,p-Emaile); printf( 输入家庭住址 ); scanf(%s,p-home); printf( 请分类: n); scanf(%s,p-assort); void output (Friends *p)/*输出 */ printf(*n); printf(%sn,p-sName); printf(%dn,p-sMovtel); printf(%dn,p-tel); printf(%sn,p-Emaile); printf(%dn,p-home); printf(%sn,p-assort); void fugai ()/* 用于删除*/ Friends d; FILE *fp; 通讯录 .txt,rb); fread(&d,sizeof(d),1,fp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -