使用顺序表实现个人通讯录管理
需积分: 30 163 浏览量
更新于2024-09-12
2
收藏 35KB DOC 举报
"使用顺序表实现简单的通讯录系统,包括数据结构、添加、显示和删除功能。"
在本文中,我们将探讨如何使用顺序表来创建一个基本的通讯录系统。顺序表是一种线性数据结构,其中元素按照它们被添加的顺序进行存储。在这个通讯录系统中,每个联系人的信息(如姓名、街道、城市、邮编和国家)被封装在一个名为`message`的结构体中,然后这个结构体被存储在一个固定大小的数组`messagebook`中。
首先,我们定义了一个结构体`message`,它包含以下字段:
- `name`:存储联系人姓名,最大长度为`MAXI`个字符。
- `street`:存储街道名,最大长度同样为`MAXI`个字符。
- `cty`:存储城市名,最大长度为`MAXI`个字符。
- `eip`:存储邮政编码,类型为整型。
- `state`:存储国家名,最大长度为`MAXI`个字符。
接下来,我们有一个全局变量`n`,用于记录当前通讯录中存储的联系人数量。通讯录的核心功能包括:
1. **新建信息**:`enter()`函数用于获取用户输入的联系人信息,并创建一个新的`message`结构体。用户依次输入姓名、街道、城市、邮编和国家,然后函数返回新建的联系人信息。
2. **显示所有信息**:`display()`函数遍历整个`messagebook`数组,并打印出所有联系人的信息。它使用一个循环来访问每个元素,并打印出对应的姓名、街道、城市、邮编和国家。
3. **插入信息**:`dig()`函数将新建的联系人信息插入到已有的顺序表中。首先,它会检查数组中是否存在相同姓名的联系人,如果找到,则不执行插入操作。否则,会将所有后续的联系人向后移动一位,然后将新信息插入到适当的位置。最后,`n`值增加,表示添加了一个新的联系人。
4. **删除信息**:`del()`函数接收一个姓名作为参数,用于查找并删除具有该姓名的联系人。如果找到匹配的联系人,它会将其从数组中移除,并将所有后续的联系人向前移动一位,填补空缺。请注意,这个函数并未更新`n`值,因此在实际应用中,需要在调用此函数后手动更新`n`,以反映通讯录中的实际联系人数。
在实际的系统中,可能还需要添加其他功能,如搜索特定联系人、修改联系人信息等。同时,为了防止数组溢出,可以考虑使用动态内存分配来扩展数组大小。此外,为了提高效率和用户体验,可以使用二分查找等方法来改进查找和删除操作。但在这个基础版本中,顺序表简单易懂,适合初学者理解数据结构在实际问题中的应用。
2014-12-07 上传
2024-04-07 上传
2021-07-20 上传
点击了解资源详情
点击了解资源详情
空心木
- 粉丝: 0
- 资源: 1
最新资源
- 经典的Struts2 in Action.pdf完全版
- 使用VMWARE安装苹果(MAC)操作系统和VMACTOOL及上网详细教程
- 2009年软件设计师考试大纲
- Java Message Service.pdf
- ESX VMware backup
- QC教程。想要学习QC的理想帮手,使你快速入门
- 从硬盘安装windows 7
- ENVI 用户指南与上机操作
- MyEclipse6整合
- EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序
- vision_dev_module(NI视觉开发模块).pdf
- eclipse电子书
- halcon说明文件
- 嵌入式C语言精华(pdf)
- ARM入门文章详细介绍RAM入门的基本
- 局域网共享故障的分析与排除word文档。doc