通讯录需求:
实现一个通讯录,
通讯录中存放保存人的信息:
名字、年龄、性别、
电话、地址
通讯录相关功能:
- 通讯录中可以存放100个人的信息
- 增加联系人
- 删除指定联系人
- 修改指定联系人
- 查找指定联系人
- 显示所有联系人的信息
- 排序功能
多文件实现通讯录
(1). contact.h文件 -- 相关函数和结构体类型的声明:
1 . 结构体 struct PeoInfo -- 存放通讯录联系人的信息:
使用 typedef 重命名结构体,
将 struct PeoInfo 重命名为 PeoInfo,
方便后续使用
图示:
2 . 结构体 struct contact -- 通讯录类型:
使用 typedef 重命名结构体,
创建通讯录信息结构体变量数组
创建一个变量来记录当前通讯录data的人数
图示:
3 . 函数 InitContact() 的声明 -- 初始化通讯录类型变量
参数接收 -- 通讯录类型变量地址
返回类型 -- void
图示:
4 . 函数 AddContact() 的声明 -- 增加通讯录成员:
参数接收 -- 通讯录类型变量地址
返回类型 -- void
图示:
5 . 对常量使用进行优化 -- 设置 全局变量 和 枚举
(一).
设置 全局变量:
contact.h 中,
定义全局变量 MAX 100 -- 设置通讯录最多人数,
其它通讯录信息也是同理
图示:
(二).
设置 枚举:
对测试中,用户输入的选项进行枚举,
用对应的功能名字代表对应的选项
在 contact.h 文件中设置好后,
在 test.c 文件中进行修改
图示:
6 . 函数 ShowContact() 的声明 -- 打印通讯录所有成员信息:
参数接收 -- const Contact* pc
(只是打印,不用修改所以设置为常量)
返回类型 -- void
图示:
7 . 函数 FindByName() 的声明 -- 删除指定通讯录成员信息:
参数接收 -- 通讯录类型变量地址 和 要查找的名字字符串
返回类型 -- int,返回找到的元素下标 或 未找到情况的-1
注:
该函数只在 contact.c文件 中支持其它函数,
为了保密可以不在该文件声明
图示:
8 . 函数 DelContact() 的声明 -- 删除指定通讯录成员信息:
参数接收 -- 通讯录类型变量地址
返回类型 -- void
图示: