👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
【C语言】C语言—通讯录管理系统(源码)【独一无二】
目录
- 【C语言】C语言—通讯录管理系统(源码)【独一无二】
 - 一、设计要求
 - 二、实现思路
 
- 1. 数据结构设计
 - 2. 添加联系人
 - 3. 显示联系人信息
 - 4. 查询联系人
 - 5. 删除联系人
 - 6. 修改联系人
 - 7. 排序联系人
 - 8. 显示所有联系人
 - 9. 主函数
 - 三、运行结果
 
- 添加通讯录信息
 - 查询通讯录信息
 - 修改通讯录信息
 - 排序通讯录信息
 - 显示通讯录信息
 - 删除通讯录
 
一、设计要求
选题三 通讯录管理程序(百行代码)
 设计一个通讯录管理程序。该程序具有以下功能:1. 添加通讯录信息:输入通讯录信息并予以保存,通讯录信息包
 括姓名、通信地址、邮政编码、电话号码;若电话号码已经存在,则不允许添加该信息。
 2.查询通讯录信息:根据输入的姓名查询通讯录信息;若输入的姓名为空,则查询出所有的通讯录信息;若查询出多条信息,将这些信息按电话号码由小到大排序后再显示。
 3.删除通讯录信息:根据输入的电话号码删除相应的通讯录信息
 4.修改通讯录信息:用输入的通讯录信息替换电话号码与之相同的已有通讯录信息。
二、实现思路
本代码实现了一个简单的通讯录管理系统,主要功能包括添加联系人、查询联系人、删除联系人、修改联系人、排序联系人和显示所有联系人。以下是代码的详细实现思路分析:
1. 数据结构设计
数据结构:
- 使用结构体 
Contact来表示联系人,包含姓名、地址、邮政编码和电话号码四个字段。 - 使用一个 
Contact数组contacts存储所有联系人,最大容量为MAX_ENTRIES。 - 使用一个全局变量 
contactCount记录当前联系人数量。 
2. 添加联系人
函数:void addContact()
- 检查通讯录是否已满,如果已满则提示用户并返回。
 - 读取用户输入的联系人信息,创建一个新联系人。
 - 检查新联系人的电话号码是否已存在,如果存在则提示用户并返回。
 - 将新联系人添加到通讯录,并更新 
contactCount。 - 提示用户联系人已成功添加。
 
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “通讯录” 获取。👈👈👈
3. 显示联系人信息
函数:void displayContact(Contact contact)
- 打印指定联系人的详细信息(姓名、地址、邮政编码、电话号码)。
 
4. 查询联系人
函数:void queryContact()
- 提供两种查询方式:按姓名查询和按电话号码查询。
 - 根据用户选择,调用 
queryByName()或queryByPhoneNumber()进行具体查询。 
按姓名查询:
 函数:void queryByName()
- 读取用户输入的姓名(允许用户按Enter键显示所有联系人)。
 - 遍历通讯录,找到匹配的联系人,存储在结果数组中。
 - 如果找到匹配的联系人,按电话号码排序并显示,否则提示未找到联系人。
 
按电话号码查询:
 函数:void queryByPhoneNumber()
- 读取用户输入的电话号码。
 - 遍历通讯录,找到匹配的联系人并显示,如果未找到则提示用户。
 
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “通讯录” 获取。👈👈👈
5. 删除联系人
函数:void deleteContact()
- 读取用户输入的要删除的联系人电话号码。
 - 遍历通讯录,找到匹配的联系人并将其删除(通过覆盖数组元素实现),更新 
contactCount。 - 提示用户联系人已删除,如果未找到则提示用户。
 
6. 修改联系人
函数:void modifyContact()
- 读取用户输入的要修改的联系人电话号码。
 - 遍历通讯录,找到匹配的联系人并读取新的联系人信息,更新联系人数据。
 - 提示用户联系人信息已更新,如果未找到则提示用户。
 
7. 排序联系人
函数:void sortContacts()
- 提供多种排序方式:冒泡排序、快速排序、堆排序、选择排序和归并排序。
 - 根据用户选择,调用相应的排序函数对联系人数组进行排序。
 - 提示用户联系人已排序并显示排序后的联系人信息。
 
排序算法实现:
- 冒泡排序:
void bubbleSort(Contact arr[], int n) - 快速排序:
void quickSort(Contact arr[], int low, int high) - 堆排序:
void heapSort(Contact arr[], int n) - 选择排序:
void selectionSort(Contact arr[], int n) - 归并排序:
void mergeSort(Contact arr[], int l, int r) 
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “通讯录” 获取。👈👈👈
8. 显示所有联系人
函数:void displayAllContacts()
- 检查通讯录是否为空,如果为空则提示用户。
 - 遍历通讯录并显示每个联系人的详细信息。
 
9. 主函数
函数:int main()
- 提供一个循环菜单,允许用户选择不同的操作(添加、查询、删除、修改、排序、显示所有联系人、退出)。
 - 根据用户选择调用相应的函数执行操作。
 
这段代码实现了一个功能齐全的通讯录管理系统,涵盖了联系人管理的基本操作。代码结构清晰,模块化设计使得每个功能单独实现,便于维护和扩展。通过使用不同的排序算法,代码展示了对联系人进行排序的多种实现方法,体现了算法的多样性和应用场景。通过这种设计,用户可以方便地管理通讯录中的联系人,提升了用户体验和系统的实用性。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “通讯录” 获取。👈👈👈
三、运行结果
添加通讯录信息

查询通讯录信息

修改通讯录信息

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “通讯录” 获取。👈👈👈
排序通讯录信息

显示通讯录信息

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “通讯录” 获取。👈👈👈
删除通讯录

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “通讯录” 获取。👈👈👈




















