用结构体写一个简单的通讯录

一个简单的通讯录

通讯录应该具备简单的一些功能
1 增添联系人
2 删除联系人
3 查找联系人
4 修改联系人
5 按名字给联系人排序
6 查看通讯录
除此之外,应该在实现上还应该具备一些其他的功能函数
比如 初始化通讯录用结构体写一个简单的通讯录
这些都是功能函数,而整个函数入口应该为main
用结构体写一个简单的通讯录
为了更加清晰,更加鲜明的体现功能区域,将所有的宏定义,和一些声明我放在一个头文件中。
用结构体写一个简单的通讯录

要创建一个通讯录,我们要抽象化一个人,将这个人的一些信息放在一个结构体中
用结构体写一个简单的通讯录
而一个通讯录中不可能只有一个人,所以需要一个结构体数组,来装你要存入的数据
用结构体写一个简单的通讯录
并创建一个整形变量sz来记录当前通讯录当前存入了多少个人

而在整个main()中只有一个函数test(),我们将整个函数功能的选择放在这里,虽然switch语句并不好,但在这里,依然用switch进行选择
用结构体写一个简单的通讯录

用结构体写一个简单的通讯录
本来选择用switch时,应该用一个整形来进行选择,但在这里,我用了一个枚举类型,来更直观的进行选择
用结构体写一个简单的通讯录
枚举类型,从上至下,对应的数字应该为 0,1,2,3,4,5,6

接下来就是每个功能函数的实现

初始化通讯录

用结构体写一个简单的通讯录
首先传结构体指针过来,需要判断有效性,用assert断言判断,初始化通讯录
人数为0,并给结构体数组中每个元素赋值0,此处用memset内存建立函数实现。

增添联系人

用结构体写一个简单的通讯录

查看通讯录

将已经录入的信息打印一遍
用结构体写一个简单的通讯录

内部查找函数

因为进行下来的操作时都有一个操作就是查找所以,先写一个内部的查找函数
用结构体写一个简单的通讯录

删除联系人

用结构体写一个简单的通讯录
此处就要用到上述写的内部查找函数

查找联系人

用结构体写一个简单的通讯录
找到之后打印一遍,给用户一个友好的提示

修改联系人

用结构体写一个简单的通讯录

按名字给联系人排序

此处用的是冒泡排序
用结构体写一个简单的通讯录
到此,所有功能都已实现,但此通讯录是一个静态通讯录,不能根据具体的实际情况进行扩容。