【C语言】C语言—通讯录管理系统(源码)【独一无二】

简介: 【C语言】C语言—通讯录管理系统(源码)【独一无二】

一、设计要求

选题三 通讯录管理程序(百行代码)

设计一个通讯录管理程序。该程序具有以下功能: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()

  • 提供一个循环菜单,允许用户选择不同的操作(添加、查询、删除、修改、排序、显示所有联系人、退出)。
  • 根据用户选择调用相应的函数执行操作。

这段代码实现了一个功能齐全的通讯录管理系统,涵盖了联系人管理的基本操作。代码结构清晰,模块化设计使得每个功能单独实现,便于维护和扩展。通过使用不同的排序算法,代码展示了对联系人进行排序的多种实现方法,体现了算法的多样性和应用场景。通过这种设计,用户可以方便地管理通讯录中的联系人,提升了用户体验和系统的实用性。


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

三、运行结果

添加通讯录信息

查询通讯录信息

修改通讯录信息

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

排序通讯录信息

显示通讯录信息

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

删除通讯录

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

相关文章
|
19天前
|
存储 C语言
【C语言篇】深入理解指针3(附转移表源码)
【C语言篇】深入理解指针3(附转移表源码)
30 1
|
13天前
|
存储 C语言
探索C语言数据结构:利用顺序表完成通讯录的实现
本文介绍了如何使用C语言中的顺序表数据结构实现一个简单的通讯录,包括初始化、添加、删除、查找和保存联系人信息的操作,以及自定义结构体用于存储联系人详细信息。
17 2
|
19天前
|
存储 编译器 C语言
【C语言】学生管理系统:完整模拟与实现(一)
【C语言】学生管理系统:完整模拟与实现
|
18天前
|
存储 C语言
手把手教你用C语言实现通讯录管理系统
手把手教你用C语言实现通讯录管理系统
|
19天前
|
测试技术 C语言
【C语言】学生管理系统:完整模拟与实现(三)
【C语言】学生管理系统:完整模拟与实现
|
19天前
|
C语言
【C语言】学生管理系统:完整模拟与实现(二)
【C语言】学生管理系统:完整模拟与实现
|
19天前
|
存储 编译器 C语言
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
31 0
|
2月前
|
算法 编译器 C语言
【C语言篇】猜数字游戏(赋源码)
rand函数会返回⼀个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MAX的⼤⼩是依赖编译器上实现的,但是⼤部分编译器上是32767。
91 1
|
2月前
|
数据采集 自动驾驶 算法
C语言自动驾驶实战项目:基于激光雷达的实时路径规划与避障系统
C语言自动驾驶实战项目:基于激光雷达的实时路径规划与避障系统
81 0
|
2月前
|
算法 IDE 程序员
C语言与嵌入式系统:嵌入式C编程基础。
C语言与嵌入式系统:嵌入式C编程基础。
59 0