C语言初学者自创通讯录程序:功能与操作指南
需积分: 4 88 浏览量
更新于2024-09-19
收藏 18KB TXT 举报
本资源是一份C语言编写的简单通讯录程序,由初学者自创,旨在学习基本的数据结构和文件操作。以下是详细的知识点解析:
1. **数据结构定义**:
- 使用`struct data`定义了一个名为`TEL`的数据结构,包含姓名(name)、电话(phone)和地址(addr)三个字段,以及一个指向下一个`TEL`结构体的指针`next`。这表明通讯录中的每个条目是链式存储的。
2. **全局变量**:
- `int n = 0`表示通讯录中元素的数量。
- `FILE *fp`用于文件操作,可能是用于读写联系人列表。
3. **菜单功能函数**:
- `void menu()`是主菜单,显示程序的主要操作选项,如添加(new), 查找(find), 显示(show), 保存(save), 删除(delete)等。
- `menu1()`, `menu11()`, `menu2()`, `menu21()`, `menu211()`, `menu2111()`, `menu22()`, `menu3()`等是递归调用的子菜单,分别对应不同功能的操作。
4. **文件操作**:
- `int open()`用于打开文件`myaddrbook`进行操作,可能是创建或读取。
- `void save()`用于将联系人数据保存到文件中。
- `void free()`可能用于释放动态分配的内存,即删除联系人数据。
5. **搜索与查找功能**:
- `void findbyname()`和`void findbytelephone()`用于根据姓名或电话号码查找特定的联系人。
- `void alter(TEL *p)`和`void move(TEL *p)`可能用于更新或移动联系人信息。
6. **显示功能**:
- `void showbylist()`显示整个通讯录列表。
- `void showbyname()`按姓名查找并显示联系人。
- `void showbydiqu()`可能按地址查找并显示联系人。
7. **输入与选择**:
- `void printchoose()`和`printstar()`用于在菜单中打印提示和选择标记。
- `void printstar()`可能用于打印多个星号构成的引导线,增加菜单的美观性。
8. **控制台操作**:
- `system("COLOR8f");` 和 `system("cls");` 被注释掉,可能是在Windows系统中用于设置文本颜色和清屏的命令。
这份C代码实现了一个基础的通讯录管理程序,包括链表数据结构、文件操作、查找和显示功能。这对于初学者来说是一个很好的实践项目,可以帮助他们熟悉C语言的数据结构、文件操作和基本的用户界面设计。
2010-01-13 上传
2008-10-28 上传
2015-03-11 上传
2013-01-21 上传
2010-05-08 上传
2012-12-27 上传
2018-10-25 上传
2014-12-08 上传
2013-01-05 上传
xiguapi1990
- 粉丝: 0
- 资源: 4
最新资源
- c代码-条件练习集合
- matlab由频域变时域的代码-eureca_face:EuRECA2021短期项目
- rsm
- 大三上学期实训——学生成绩管理系统,java后台,SpringMVC框架,mysql数据库.zip
- 14Oct_BatchProject:14Oct_Python批处理带有完整代码的Django网站项目
- modelo-tcc-uefs-ieee:模版乳胶Para Tratraho deConclusãode Curso de Engenharia daComputaçãoUniversidade Estadual de Feira de Santana-UEFS
- TestAssignmentForAndroidInternship
- QQ空间导出助手插件QZoneExport.zip
- cpp代码-165.4.6.3
- kafka-logsize-exporter:Python prometheus client for kafka logsize(Prometheus基于kafka logsize监控)
- hq9plus-in-perl6:用Perl 6编写的hq9 +解释器
- 基于Java的学生成绩学分制管理系统.zip
- dom4j-1.6.1.zip
- Metals_Mapping_GAM:使用广义添加剂建模进行预测性金属映射
- cpp代码-161.4.3.2
- ema-john-simple