优秀毕业论文——基于c语言实现电话簿管理系统内容摘要:

etchar()。 scanf(%c,amp。 saveflag)。 if(saveflag==39。 y39。 ||saveflag==39。 Y39。 ) save (head)。 else printf(\n请在退出程序之前 , 保存当前的编辑工作。 \n)。 return head。 } void print(ID *head) { ID* temp。 temp=head。 system(cls)。 /*清屏 */ printf(姓名 : \t电话号码 : \n)。 if(head==NULL) { printf(当前链表为空 , 请先创建新的链表或者加载文件 \n)。 } else do { printf(%s\t%s\n,tempname,temptel)。 temp=tempnext。 }while(temp!=NULL)。 } 11 void save(ID *head) { FILE *fp。 ID* t。 /*定义一个 可以移动的指针,作用:从头到尾遍历一遍单链表,向文件中写入 */ if ((fp=fopen(,w))==NULL) { printf(打开文件失败。 \n)。 getch()。 exit(1)。 } printf(正在保存文件 , 请稍候 ...\n)。 t=head。 while(t!=NULL) { fwrite(t,sizeof(ID),1,fp)。 t=tnext。 } fclose(fp)。 printf(文件保存成功 \n)。 } ID * load() { FILE *fp。 ID *t1,*t2,*head=NULL。 char ch。 if((fp=fopen(,r))==NULL) /*判断文件是否存在 */ { printf(打开文件失败。 没有该文件 \n)。 getch()。 exit(1)。 } ch=fgetc(fp)。 /*判断文件是否为空 */ 12 if(ch==EOF) { printf(文件 为空 , 请重新建立一个电话簿 \n)。 return (head)。 } else { printf(文件正在读取中 ...\n)。 rewind(fp)。 } t1=(ID *) malloc(sizeof(ID))。 head=t1。 while(!feof(fp)) { if(fread(t1,sizeof(ID),1,fp)!=1) break。 /*如果没有读取的内容,则结束 */ t1next=(ID *)malloc(sizeof(ID))。 t2=t1。 t1=t1next。 } t2next=NULL。 fclose(fp)。 printf(文件读取完毕 \n)。 return head。 } void search(ID* head) { printf(欢迎使用查找功能 , 只需要输入待查找者姓名的首字母 : \n)。 ID* p。 int flag,searchflag=1。 char c,choice。 while(searchflag) { flag=0。 printf(\n请输入待查找者姓名的首字母 : \n)。 scanf(%c,amp。 c)。 getchar()。 p=head。 while(p!=NULL) { if(pname[0]==c) 13 { printf(姓名 : %s\t电话号码 : %s\n,pname,ptel)。 flag=1。 } p=pnext。 /*p1指针向后移动一位 */ } if(flag==0) printf(\n对不起 ,未能找到符合条件的记录 \n)。 printf(\n查找完毕 , 是否需要重新查询。 Y/N)。 scanf(%c,amp。 choice)。 getchar()。 if(choice==39。 y39。 ||choice==3。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。