C++实现电话簿管理系统源码
需积分: 25 62 浏览量
更新于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的良好实例。
274 浏览量
211 浏览量
476 浏览量
190 浏览量
158 浏览量
407 浏览量
2022-11-06 上传
a_1115083723
- 粉丝: 0
- 资源: 3
最新资源
- 有关GSM原理一些详细描述
- MyEclipse中文攻略
- tech ourself shell programming
- 常用算法设计方法常用算法设计方法
- 王宏文《自动化专业英语教程》PART1中文翻译
- 中文TEX教程 inotes.pdf
- 时代光华《成功的项目管理》讲义
- Bruce Eckel - Thinking In Patterns Problem-Solving Techniques Using Java
- 电视系统常用名词解释
- modelsim 使用教程
- MyEclipse 6 Java 开发中文教程
- java模式(精华篇)
- JSP基础(英文版)
- ★java及j2ee面试题集(很重要).
- JSP网页编程 JSp课件
- Linux常用命令大全整理