基于C语言实现个人通讯录管理系统
更新时间:2023-08-09需求描述
个人通讯录管理系统需要实现以下功能:
- 添加联系人:可以输入联系人的姓名、手机号码、电子邮件地址以及其他相关信息。
- 查找联系人:可以根据姓名或手机号码查找联系人。
- 编辑联系人:可以修改联系人各个字段的信息。
- 删除联系人:可以根据姓名或手机号码删除联系人。
- 显示联系人列表:可以列出所有联系人的信息。
- 排序联系人:可以按照姓名或手机号码对联系人进行升序或降序排序。
代码实现
以下是基于C语言实现个人通讯录管理系统的代码:
#include#include #include // 联系人结构体 typedef struct { char name[50]; char phone[20]; char email[50]; // 其他字段... } Contact; // 全局变量 Contact contacts[100]; // 最多存储100个联系人 int numContacts = 0; // 当前联系人数量 // 添加联系人 void addContact(Contact contact) { if (numContacts >= 100) { printf("联系人数量已达到上限"); return; } contacts[numContacts++] = contact; printf("联系人添加成功"); } // 查找联系人 void searchContact(char *searchKey) { int found = 0; for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, searchKey) == 0 || strcmp(contacts[i].phone, searchKey) == 0) { printf("姓名:%s\n", contacts[i].name); printf("手机号码:%s\n", contacts[i].phone); printf("电子邮件地址:%s\n", contacts[i].email); // 其他字段... found = 1; } } if (!found) { printf("未找到相关联系人"); } } // 编辑联系人 void editContact(char *searchKey, Contact newContact) { int found = 0; for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, searchKey) == 0 || strcmp(contacts[i].phone, searchKey) == 0) { contacts[i] = newContact; printf("联系人信息已更新"); found = 1; } } if (!found) { printf("未找到相关联系人"); } } // 删除联系人 void deleteContact(char *searchKey) { int found = 0; for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, searchKey) == 0 || strcmp(contacts[i].phone, searchKey) == 0) { for (int j = i; j < numContacts - 1; j++) { contacts[j] = contacts[j + 1]; } numContacts--; printf("联系人已删除"); found = 1; } } if (!found) { printf("未找到相关联系人"); } } // 显示联系人列表 void displayContacts() { if (numContacts == 0) { printf("联系人列表为空"); return; } for (int i = 0; i < numContacts; i++) { printf("姓名:%s\n", contacts[i].name); printf("手机号码:%s\n", contacts[i].phone); printf("电子邮件地址:%s\n", contacts[i].email); // 其他字段... printf("\n"); } } // 排序联系人 void sortContacts(int sortBy, int sortOrder) { // sortBy=0表示按姓名排序,sortBy=1表示按手机号码排序 // sortOrder=0表示升序,sortOrder=1表示降序 // 使用合适的排序算法对contacts数组进行排序 // 根据排序结果打印联系人列表 } int main() { // 主程序逻辑,根据用户输入调用相应的函数进行操作 // 包括菜单显示、参数输入、函数调用等 return 0; }
代码解释
上述代码实现了一个简单的个人通讯录管理系统。首先定义了Contact结构体,用于存储联系人的信息,包括姓名、手机号码、电子邮件地址等字段。
然后通过全局变量contacts来存储所有联系人的信息,并使用numContacts记录当前联系人的数量。
代码中实现了几个基本的功能函数:
- addContact函数用于添加联系人,将传入的Contact结构体添加到contacts数组中。
- searchContact函数用于查找联系人,通过遍历contacts数组,比较传入的搜索关键字与联系人的姓名和手机号码,找到匹配的联系人并打印信息。
- editContact函数用于修改联系人,通过搜索关键字找到需要修改的联系人,并用传入的新Contact结构体替换原有的联系人信息。
- deleteContact函数用于删除联系人,通过搜索关键字找到需要删除的联系人,并将后续的联系人信息向前移动,同时减少numContacts数量。
- displayContacts函数用于显示联系人列表,遍历contacts数组,打印所有联系人的信息。
另外,代码中还提供了sortContacts函数的函数框架,用于对联系人进行排序,实现方式可以根据实际需求选择合适的排序算法。
总结
个人通讯录管理系统的代码实现了基本的增删查改功能,并提供了显示联系人列表和排序联系人的函数框架。
通过该系统,用户可以方便地管理个人联系人,添加、查找、编辑和删除联系人的操作都得到了支持。
开发人员可以结合实际需求,完善和扩展该系统,添加更多的功能和字段,提高用户体验和系统的可用性。