c语言 电话簿管理
电话簿管理系统设计
前言:电话簿管理是一个常见的应用程序,用于组织和管理联系人的信息。本文将使用C语言设计和实现一个简单的电话簿管理系统,包括联系人的添加、删除、查找和显示功能。
功能设计和代码实现
本电话簿管理系统将使用链表数据结构存储联系人信息。每个联系人由姓名和电话号码组成,我们将采用结构体存储每个联系人的信息。以下是代码示例:
#include#include #include // 定义联系人结构体 typedef struct Contact { char name[50]; char phoneNumber[15]; struct Contact* next; } Contact; // 全局变量,链表头指针 Contact* head = NULL; // 添加联系人 void addContact() { // 创建新的联系人节点 Contact* newContact = (Contact*)malloc(sizeof(Contact)); // 输入联系人信息 printf("请输入姓名:"); scanf("%s", newContact->name); printf("请输入电话号码:"); scanf("%s", newContact->phoneNumber); // 将联系人添加到链表 newContact->next = head; head = newContact; printf("联系人添加成功!\n"); } // 显示所有联系人 void displayContacts() { Contact* current = head; // 遍历链表,打印联系人信息 while (current != NULL) { printf("姓名:%s\n", current->name); printf("电话号码:%s\n", current->phoneNumber); printf("-------------------\n"); current = current->next; } } // 主函数 int main() { // 菜单选择功能 int choice; do { printf("电话簿管理系统\n"); printf("1. 添加联系人\n"); printf("2. 显示联系人\n"); printf("3. 退出\n"); printf("请输入选择:"); scanf("%d", &choice); switch (choice) { case 1: addContact(); break; case 2: displayContacts(); break; case 3: printf("再见!\n"); break; default: printf("无效的选择,请重新输入。\n"); } printf("\n"); } while (choice != 3); return 0; }
代码解释和规范
以上代码通过使用链表数据结构存储联系人信息,实现了电话簿管理系统的基本功能。接下来,我们对部分代码进行解释和规范说明:
1. 第9行定义了联系人结构体,包含姓名、电话号码和指向下一个联系人的指针。联系人结构体的大小通过sizeof操作符来确定,并用typedef关键字定义了结构体类型为Contact。
2. 第13行声明了全局变量head,它是指向链表第一个联系人的指针。此处使用全局变量是为了方便在不同的函数之间共享链表的头指针。
3. 第20-35行是添加联系人的函数addContact()的实现。该函数首先通过动态内存分配创建一个新的联系人节点,然后提示用户输入联系人的姓名和电话号码。最后,将新联系人节点添加到链表的头部。
4. 第37-51行是显示所有联系人的函数displayContacts()的实现。该函数使用当前指针current遍历整个链表,并打印出每个联系人的姓名和电话号码。遍历链表直到current指针为空(达到链表尾部)。
总结
本文介绍了一个使用C语言设计和实现的电话簿管理系统。通过链表数据结构存储联系人信息,实现了联系人的添加和显示功能。通过这个简单示例,您可以进一步扩展该系统,增加其他功能,如联系人的删除、查找等。希望本文对您理解和应用全栈编程有所帮助。