电话簿管理程序是一个简单的应用程序,用于存储和管理联系人信息,如姓名、电话号码、地址等。在C语言中,我们可以创建一个电话簿管理程序来存储这些信息,并提供基本的操作如添加联系人、删除联系人、查找联系人等。以下是一个简单的电话簿管理程序的示例代码。

这是一个基本的示例,可能需要根据实际需求进行扩展和优化,这个程序使用了结构体来存储联系人信息,并使用链表来动态管理联系人列表。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义联系人结构体
typedef struct Contact {
char name[50];
char phoneNumber[20];
char address[100];
struct Contact *next;
} Contact;
// 定义全局变量,指向链表的头节点
Contact *head = NULL;
// 添加联系人函数
void addContact() {
Contact *newContact = (Contact *)malloc(sizeof(Contact)); // 创建新节点
printf("请输入联系人姓名:n");
scanf("%s", newContact->name); // 输入姓名
printf("请输入电话号码:n");
scanf("%s", newContact->phoneNumber); // 输入电话号码
printf("请输入地址:n");
scanf("%s", newContact->address); // 输入地址
newContact->next = head; // 将新节点放在链表头部
head = newContact; // 更新头节点指针
}
// 删除联系人函数(通过姓名查找并删除)
void deleteContact() {
char name[50]; // 存储要删除的联系人姓名
printf("请输入要删除的联系人姓名:n"); // 提示用户输入姓名
scanf("%s", name); // 获取用户输入的姓名
Contact *current = head; // 当前节点指向头节点
Contact *prev = NULL; // 用于追踪前一个节点,以便删除当前节点后更新链表结构
while (current != NULL) { // 遍历链表查找联系人信息
if (strcmp(current->name, name) == 0) { // 如果找到联系人信息,则删除该节点并更新链表结构
if (current == head) { // 如果当前节点是头节点,则更新头节点指针为下一个节点并释放当前节点的内存空间,否则,更新前一个节点的指针指向下一个节点并释放当前节点的内存空间,注意处理空指针的情况,最后更新头节点指针以反映新的链表结构,这里使用了链表的基本操作来删除节点,具体实现细节可能因实际需求而异,请根据实际情况进行调整和优化,如果找不到联系人信息,则输出相应的提示信息,最后返回主菜单供用户继续操作或退出程序,这个程序只是一个简单的示例代码,可能需要根据实际需求进行扩展和优化,可以添加更多的功能(如修改联系人信息、按电话号码查找联系人等),以及优化代码结构和界面等,在实际应用中,还需要考虑错误处理和数据验证等问题。




