用链表来实现通讯录并保存到文件中

前言

上次介绍了链表,那么这次我们用链表来实现通讯录,其中用到了链表、循环、数据结构、指针、还有malloc内存函数、fread和fwrite文件操作函数。
我们在实现通讯录中要具备几项功能:
1.创建链表
2.输出链表内容
3.删除链表中的内容
4.修改链表中的内容
5.添加新内容在链表
6.把链表的内容读入文件并保存
7.从文件中读入内容放进链表
最后来看完整的代码加代码效果吧。

一、先建一个通讯录的框架

我们可以利用switch循环体来做一个功能选择的模式,其中用到了枚举的可读性方便来选择功能。
代码如下:
用链表来实现通讯录并保存到文件中_第1张图片
这是枚举
用链表来实现通讯录并保存到文件中_第2张图片

二、功能的实现

1.先创建链表

我们是创建通讯录,通讯录中有,姓名、性别、年龄、电话号码、地址。
我们先创建一个节点结构体:
用链表来实现通讯录并保存到文件中_第3张图片
链表结构示意图:
在这里插入图片描述
这head表示头指针,这个指针变量保存一个头节点地址。
节点中pNext指针是指向下一个节点来连接这些节点,由此就叫他们为链表。
最后一个节点中pNext指向NULL。
代码如下:
用链表来实现通讯录并保存到文件中_第4张图片

2.输出链表内容

通过头指针指向的头节点一一向后查看,这里就用到了每个节点中的pNext指针。
代码如下:
用链表来实现通讯录并保存到文件中_第5张图片

3.删除链表中的内容

删除就是释放,就是把我们想删除的节点释放,然后把这个节点的前后节点连接就行。
我们先用输出链表内容的函数来查看我们想删除哪个。
代码如下:
用链表来实现通讯录并保存到文件中_第6张图片

4.修改链表中的内容

我们先调用输出链表内容函数来查看想修改的节点,再用switch来选择要修改的内容。
代码如下:
用链表来实现通讯录并保存到文件中_第7张图片

5.添加新内容在链表中

我们可以把我们想添加的新成员在头节点进行,就是抢头节点的称号,自己当头节点。
代码如下:
用链表来实现通讯录并保存到文件中_第8张图片

6.把链表的内容读入文件并保存

这里利用fread函数来实现,也用for循环来一个一个读入文件中。
这里需要一个函数来计算节点的个数。
计数代码如下:
用链表来实现通讯录并保存到文件中_第9张图片
保存文件的代码如下:
用链表来实现通讯录并保存到文件中_第10张图片

7.从文件中读入内容放进链表

这样可以把我们上次的内容重新在链表中呈现。
这里我们又要一个一个开辟空间来创建节点。
代码如下:
用链表来实现通讯录并保存到文件中_第11张图片

三.完整的代码加效果

这是头文件的代码:
用链表来实现通讯录并保存到文件中_第12张图片
这是main函数的代码:
用链表来实现通讯录并保存到文件中_第13张图片
这是功能函数实现的代码:
这个代码太长我分成了两个图。
用链表来实现通讯录并保存到文件中_第14张图片

用链表来实现通讯录并保存到文件中_第15张图片

效果如下:
用链表来实现通讯录并保存到文件中_第16张图片
用链表来实现通讯录并保存到文件中_第17张图片
用链表来实现通讯录并保存到文件中_第18张图片
用链表来实现通讯录并保存到文件中_第19张图片
用链表来实现通讯录并保存到文件中_第20张图片
用链表来实现通讯录并保存到文件中_第21张图片
用链表来实现通讯录并保存到文件中_第22张图片

总结

写到这里就完了,有写不到位的地方欢迎留言。

你可能感兴趣的:(笔记)