C++实现电话簿管理系统源码
需积分: 9 71 浏览量
更新于2024-09-17
1
收藏 98KB DOC 举报
"这是一个C++实现的电话簿管理系统,由Mark Miller编写,版本1.0。这个系统能够处理电话联系人的添加、删除、查找和显示等功能,并且支持数据的保存和加载。"
在这个电话管理C++源代码中,开发者使用了面向对象编程的概念,创建了一个`friend_node`结构体来存储联系人信息。每个`friend_node`包含三个成员:`last_name`(姓)、`first_name`(名)和`phone_num`(电话号码),以及一个指向下一个节点的指针`next`,形成了一个单链表的数据结构。全局变量`head_ptr`作为链表的头指针,`current_ptr`则用于跟踪在链表中的当前位置。
源代码中定义了一系列的函数,包括:
1. `handle_choice(int choice)`:根据用户输入的选项来调用相应的功能函数。
2. `add_record()`:添加新的联系人记录到链表中。
3. `insert_node(friend_node* new_rec_ptr)`:插入新节点,可能在链表的头部或尾部。
4. `position_insertion_point(char last_name[20])`:找到插入新记录的合适位置,根据姓氏进行查找。
5. `make_node_new_head(friend_node* new_rec_ptr)`:将新节点设为链表的新头。
6. `add_node_to_end(friend_node* new_rec_ptr)`:在链表尾部添加新节点。
7. `move_current_to_end()`:将当前指针移动到链表的末尾。
8. `display_list()`:显示整个联系人列表。
9. `delete_record()`:删除联系人记录。
10. `delete_head_of_list()`:删除链表的首节点。
11. `delete_end_of_list(friend_node* previous_ptr)`:删除链表的尾节点。
12. `delete_from_middle_of_list(friend_node* previous_ptr)`:从链表中间删除节点。
13. `verify_delete()`:在删除操作前进行确认。
14. `delete_node(friend_node* previous_ptr)`:实际执行删除操作。
15. `delete_list()`:清空整个链表。
16. `search_by_name()`:按姓名查找联系人。
17. `write_list_to_file()`:将链表数据写入文件,用于持久化存储。
18. `load_list_from_file()`:从文件加载链表数据,恢复之前保存的记录。
通过这些函数,程序实现了基本的电话簿管理功能,如添加、删除、查找和显示联系人,同时支持数据的文件操作,确保了数据在程序运行前后的一致性。这个C++程序是学习数据结构、链表操作和文件I/O的良好实例。
2018-12-25 上传
239 浏览量
2010-06-28 上传
2011-06-20 上传
2009-03-01 上传
2012-01-02 上传
2022-11-06 上传
a_1115083723
- 粉丝: 0
- 资源: 3
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章