通讯录管理系统c语言代码
时间: 2023-07-31 07:05:43 浏览: 112
以下是一个简单的通讯录管理系统的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义通讯录结构体
typedef struct {
char name[20];
char phone[20];
} Contact;
// 定义函数原型
void add_contact(Contact *contacts, int *count);
void list_contacts(Contact *contacts, int count);
void search_contacts(Contact *contacts, int count);
void delete_contact(Contact *contacts, int *count);
int main()
{
Contact contacts[100]; // 定义一个包含100个联系人的数组
int count = 0; // 记录当前通讯录中联系人个数
int choice; // 记录用户选择的操作
while (1) {
// 显示菜单
printf("1. 添加联系人\n");
printf("2. 列出所有联系人\n");
printf("3. 查找联系人\n");
printf("4. 删除联系人\n");
printf("5. 退出程序\n");
printf("请选择操作: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact(contacts, &count);
break;
case 2:
list_contacts(contacts, count);
break;
case 3:
search_contacts(contacts, count);
break;
case 4:
delete_contact(contacts, &count);
break;
case 5:
exit(0);
default:
printf("无效的选择,请重试!\n");
}
}
return 0;
}
// 添加联系人
void add_contact(Contact *contacts, int *count)
{
// 如果通讯录已满,提示用户无法添加联系人
if (*count == 100) {
printf("通讯录已满,无法添加联系人!\n");
return;
}
// 输入联系人姓名和电话
printf("请输入联系人姓名: ");
scanf("%s", contacts[*count].name);
printf("请输入联系人电话: ");
scanf("%s", contacts[*count].phone);
// 更新联系人个数
(*count)++;
printf("联系人添加成功!\n");
}
// 列出所有联系人
void list_contacts(Contact *contacts, int count)
{
// 如果通讯录为空,提示用户
if (count == 0) {
printf("通讯录为空!\n");
return;
}
// 打印所有联系人信息
printf("所有联系人信息如下:\n");
for (int i = 0; i < count; i++) {
printf("姓名: %s\t电话: %s\n", contacts[i].name, contacts[i].phone);
}
}
// 查找联系人
void search_contacts(Contact *contacts, int count)
{
// 如果通讯录为空,提示用户
if (count == 0) {
printf("通讯录为空!\n");
return;
}
// 输入要查找的联系人姓名
char name[20];
printf("请输入要查找的联系人姓名: ");
scanf("%s", name);
// 遍历通讯录,查找联系人
for (int i = 0; i < count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("姓名: %s\t电话: %s\n", contacts[i].name, contacts[i].phone);
return;
}
}
// 如果未找到,提示用户
printf("未找到该联系人!\n");
}
// 删除联系人
void delete_contact(Contact *contacts, int *count)
{
// 如果通讯录为空,提示用户
if (*count == 0) {
printf("通讯录为空!\n");
return;
}
// 输入要删除的联系人姓名
char name[20];
printf("请输入要删除的联系人姓名: ");
scanf("%s", name);
// 遍历通讯录,查找要删除的联系人
for (int i = 0; i < *count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
// 如果找到了,将该联系人从数组中删除
for (int j = i; j < *count - 1; j++) {
strcpy(contacts[j].name, contacts[j+1].name);
strcpy(contacts[j].phone, contacts[j+1].phone);
}
(*count)--;
printf("联系人删除成功!\n");
return;
}
}
// 如果未找到,提示用户
printf("未找到该联系人!\n");
}
```
以上代码实现了添加、列出、查找和删除联系人等基本操作。注意,这只是一个简单的示例,实际的通讯录管理系统可能需要更多的功能和更复杂的实现。
阅读全文