C语言实现基础通讯录:录入、查找与管理
需积分: 12 162 浏览量
更新于2024-09-09
收藏 7KB TXT 举报
本资源是一个用C语言编写的简单通讯录程序,主要功能包括录入、查询、显示、修改和删除联系人信息。通讯录的数据结构定义了两个部分:`Stu` 结构体用于存储单个联系人的姓名、性别、年龄、删除标记和地址;`TongXunLu` 结构体数组用来存储1000个这样的`Stu` 对象,同时维护一个计数器`count` 来跟踪当前的记录数量。
1. **程序结构与文件包含**:
- 包含必要的头文件,如`stdlib.h`, `stdio.h`, `conio.h`, 和 `string.h`,用于标准输入输出、字符串处理和动态内存管理。
- `#define MAX1000` 定义了一个常量,表示通讯录最大可存储1000个联系人。
2. **数据类型与枚举**:
- 使用`enum OP`枚举类型定义了六种操作:退出(EXIT)、添加(ADD)、查找(FIND)、显示(SHOW)、修改(MODIFY)和删除(DELE),以及一个表示通讯录为空的`EMPTY` 状态。
3. **定义结构体**:
- `Stu` 结构体包含了联系人的姓名、性别、年龄、删除标记和地址字段。
- `TongXunLu` 结构体数组`stu` 是一个动态数组,存储`Stu` 结构体的实例,数组大小固定为1000。
4. **函数声明**:
- `void initiate()` 初始化通讯录,将`count` 设为0。
- `void add(ptxl *ptxl)` 用于添加新的联系人,检查数组是否已满,然后读取并存储新联系人的信息。
- `void find(ptxl *ptxl, const char* name)` 通过名字查找联系人,返回其在数组中的索引或-1表示未找到。
- `void show(ptxl *ptxl)` 显示通讯录中的所有联系人信息。
- `void modify(ptxl *ptxl)` 和 `void dele(ptxl *ptxl)` 分别实现修改和删除指定联系人功能,需要用户提供要操作的联系人信息。
- `void empty(ptxl *ptxl)` 清空整个通讯录。
- `void menu()` 是主菜单,控制用户与程序的交互。
5. **核心函数调用**:
- 在`main()` 函数中,会根据用户选择的操作调用相应的函数。例如,当用户选择添加操作时,会调用`add()` 函数来处理输入。
6. **输入验证与查找逻辑**:
- 在`add()` 函数中,使用`strcmp()` 函数比较输入的姓名与通讯录中现有联系人的姓名,确保唯一性。
- 在`find()` 函数中,通过循环遍历通讯录查找指定姓名,使用`strcmp()` 进行匹配。
这个通讯录程序提供了基本的联系人管理功能,适合于学习C语言中数组、结构体、动态内存分配以及用户界面设计的基础知识。通过实践编写这样的程序,可以帮助理解C语言数据结构和控制流程的运用。
2012-01-29 上传
2023-05-10 上传
2023-05-10 上传
2023-07-09 上传
2023-05-10 上传
2023-04-07 上传
2016-02-24 上传
qq_36713215
- 粉丝: 0
- 资源: 2
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析