云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构课程设计(通讯录制作)

数据结构课程设计(通讯录制作)

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 8:46:42

printf(\

return NULL;

}

输出函数更简单,直接输出链表即可

if(info==NULL) printf(\当前记录为空!\

else

printf(\姓名\\t街道\\t\\t城市\\t国家\\t邮编\\t\\n\while(info)

{ display(info);/*display为输出节点函数,一些列print组成*/ if(info->next==NULL) {break; } info=info->next; }; 4.存储与导入 存储 存储时通过fopen打开文件(没有该文件时则创建)

fp=fopen(\生成文件*/

if(!fp) {printf(\然后通过fwrite将链表信息写入文件

while(info) /*把链表写入文件*/

{fwrite(info,sizeof(struct address),1,fp);

info=info->next;}

fwrite每次从info读取一个sizeof(struct address)长度的数据,

欢迎共阅

写入fp文件中。 写入完毕后即关闭文件

fclose(fp);

导入

导入时先建立链表,为节点分配内存空间 然后打开文件,将文件的内容写入内存链表中

register int t, size; struct address *info,*temp=0; char *p;

FILE *fp; /*打开文件*/ if((fp=fopen(\{ printf(\return; } printf(\调用文件*/ size=sizeof(struct address); /*为结点分配内存*/

start= (struct address *)malloc(size); if(!start) /*如果读取失败,返回*/

{ printf(\ exit(0);

} info=start; p=(char*)info;

while((*p++=getc(fp))!=EOF)

欢迎共阅

{

for(t=0;t

info->next=(struct address *)malloc(size);

if(!info->next)

{

printf(\ return;

}

info->prior=temp;

temp=info; info=info->next; p=(char*)info; } temp->next=0; last=temp; start->prior=0; fclose(fp); 注意:每次文件存储的时候都会覆盖以前存在文件里的内容,而每次导入的时候都会改变链表的内容。

因此每次打开程序时请先导入存储在文件里的数据,或者将record.txt备

份存储起来,避免数据丢失。

四.设计总结

通过本次课程设计,我学到了很多东西。

以前从没有用过文件方面的知识,而这次设计中用到了,刚开始使用时出了很多问题,在文件存储时经常遇到意外错误而导致程序终止了。这次的实验使我对结构体,链表的认识更深刻,使用更熟练,刚开始时在链表插入时遇到好多次内存

欢迎共阅

方面的错误,还有插入操作时对指针的使用不太熟练。通过一次次的思考与实验,思路更加清晰,程序的容错能力也越来越强。这次实验让我学到很多书本上没有的

东西。

程序里多次用到for(;;)循环,还有(struct address *)malloc(sizeof(struct address))为节点分配内存空间。

在文件操作中主要涉及到的函数有: fopen(”文件名”,”使用文件方式”); fwrite(info,sizeof(struct address),1,fp) ; fclose(文件指针); 五.参考资料 C程序设计(第三版) 谭浩强 清华大学出版社 数据结构(C++版) 李根强 中国水利水电出版社

附完整源码: #include #include #include struct address{ /*定义结构*/

char name[10]; char street[50]; char city[10]; char state[15]; char eip[7];

struct address *next; /*后继指针*/

欢迎共阅

搜索更多关于: 数据结构课程设计(通讯录制作) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

printf(\ return NULL; } 输出函数更简单,直接输出链表即可 if(info==NULL) printf(\当前记录为空!\else printf(\姓名\\t街道\\t\\t城市\\t国家\\t邮编\\t\\n\while(info) { display(info);/*display为输出节点函数,一些列print组成*/ if(info->next==NULL) {break; } info=info->next; }; 4.存储与导入 存储 存储时通过fopen打开文件(没有该文件时则创建) fp=fopen(\生成文件*/ if(!fp) {printf(\然后通过fwrite将链表信息写入文件

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com