1、C语言课程设计通讯录#include#includestruct person char name8; char tel15; char addr50;char filename20;FILE *fp;void creat();void output();void search();void append();void modify();void deleted(); int main() int m; creat(); while(1) printf(nn添加,请按1); printf(n查找,请按2); printf(n修改,请按3); printf(n删除,请按4); printf(n输
2、出,请按5); printf(n退出,请按0n); scanf(%d,&m); if(m=0&m=5) switch(m) case 1: append(); break; case 2: search(); break; case 3: modify(); break; case 4: deleted(); break; case 5: output(); break; case 0: break; printf(nn操作完毕,请再次选择!); else printf(nn选择错误,请再次选择!); return 0;void creat() struct person one; long
3、s1; printf(n请输入通讯簿名:); scanf(%s,filename); if(fp=fopen(filename,w)=NULL) printf(n不能建立通讯簿!); fprintf(fp,%-10s%-20s%-50sn,姓名,电话号码,住址); printf(n请输入姓名、电话号码及住址(以0结束)n); scanf(%s,one.name); while(strcmp(one.name,0) scanf(%s%s,one.tel,one.addr); fprintf(fp,%-10s%-20s%-50sn,one.name,one.tel,one.addr); scanf
4、(%s,one.name); fclose(fp);void output() struct person one; if(fp=fopen(filename,r)=NULL) printf(n不能打开通讯簿!); printf(nn%20sn,通 讯 簿); while(!feof(fp) fscanf(fp,%s%s%sn,one.name,one.tel,one.addr); printf(%-10s%-20s%-50s,one.name,one.tel,one.addr); fclose(fp);void append() struct person one; if(fp=fopen(
5、filename,a)=NULL) printf(n不能打开通讯簿!); printf(n请输入添加的姓名、电话号码及住址n); scanf(%s%s%s,one.name,one.tel,one.addr); fprintf(fp,%-10s%-20s%-50sn,one.name,one.tel,one.addr); fclose(fp);void search() int k=0; char namekey8; struct person one; printf(n请输入姓名:); scanf(%s,namekey); if(fp=fopen(filename,rb)=NULL) pri
6、ntf(n不能打开通讯簿!); while(!feof(fp) fscanf(fp,%s%s%sn,one.name,one.tel,one.addr); if(!strcmp(namekey,one.name) printf(nn已查到,记录为:); printf(n%-10s%-18s%-50s,one.name,one.tel,one.addr); k=1; if(!k) printf(nn对不起,通讯簿中没有此人的记录。); fclose(fp);void modify() int m,k=0; long offset; char namekey8; struct person one
7、; printf(n请输入姓名:); scanf(%s,namekey); if(fp=fopen(filename,r+)=NULL) printf(n不能打开通讯簿!); while(!feof(fp) offset=ftell(fp); fscanf(fp,%s%s%sn,one.name,one.tel,one.addr); if(!strcmp(namekey,one.name) k=1; break; if(k) printf(n已查到,记录为:); printf(n%-10s%-18s%-50s,one.name,one.tel,one.addr); printf(n请输入新姓名
8、、电话号码及住址:); scanf(%s%s%s,one.name,one.tel,one.addr); fseek(fp,offset,SEEK_SET); printf(%ld,ftell(fp); fprintf(fp,%-10s%-20s%-50sn,one.name,one.tel,one.addr); else printf(n对不起,通讯簿中没有此人的记录。); fclose(fp);void deleted() int m,k=0,flag; long offset1,offset2; char namekey8, valid4; struct person one; prin
9、tf(n请输入姓名:); scanf(%s,namekey); if(fp=fopen(filename,r+)=NULL) printf(n不能打开通讯簿!); while(!feof(fp) offset1=ftell(fp); fscanf(fp,%s%s%sn,one.name,one.tel,one.addr); if(!strcmp(namekey,one.name) k=1; break; if(k) printf(n已查到,记录为); printf(n%-10s%-18s%-50s,one.name,one.tel,one.addr); printf(n确实要删除,按1;不删除,按0:); scanf(%d,&m); if(m) fseek(fp,offset1,SEEK_SET); fprintf(fp,%-10s%-20s%-50sn,); else printf(n对不起,通讯簿中没有此人的记录。); fclose(fp);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1