使用顺序表实现个人通讯录管理
需积分: 50 7 浏览量
更新于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`,以反映通讯录中的实际联系人数。
在实际的系统中,可能还需要添加其他功能,如搜索特定联系人、修改联系人信息等。同时,为了防止数组溢出,可以考虑使用动态内存分配来扩展数组大小。此外,为了提高效率和用户体验,可以使用二分查找等方法来改进查找和删除操作。但在这个基础版本中,顺序表简单易懂,适合初学者理解数据结构在实际问题中的应用。
1076 浏览量
108 浏览量
160 浏览量
点击了解资源详情
302 浏览量

空心木
- 粉丝: 0
最新资源
- SmartGit最新版本18.1.1,Git可视化操作更简单
- 探索环境公平:团队项目与可视化研究
- Deno分支的grammy_i18n:本地化支持与TypeScript集成
- EditPlus文本编辑器:Windows平台的好替代
- Code Compare:VS代码比较工具的官方免费安装版
- 全屏秒表倒计时工具:美观易用的计时软件
- 实现教育系统批处理与UI交互的EDUC-PEN-REG-BATCH-API
- IntelliJ Protobuf插件:高效支持Protobuf语言的开发工具
- 海康DS-8632N-E8固件20171211升级指南
- 手机联系人数据通过Service加载至缓存技术解析
- 像素小秘书V1.03绿色免费版:RPG游戏辅助工具
- 创新设计:防折书弹性书夹的原理与应用
- 代码构建的浪漫表白网页 - 学习新技术的项目展示
- 贝基·班伯里·摩根分析全球森林生产力趋势
- CyJsonView v2.3.1: 强大JSON处理与格式化工具
- Java基础入门到进阶全面提升指南