c语言编程笔录

首页 > C语言 > c语言

c语言

C语言实现通讯录管理系统

更新时间:2023-08-09

前言

通讯录管理系统是一种用于存储和管理联系人信息的应用程序。使用C语言进行开发通讯录管理系统,可以实现对联系人信息的添加、删除、修改和查询等功能。本文将展示如何设计和编写代码,同时解析代码的用途和规范。

代码实现

首先,我们需要定义一个结构体来表示联系人的信息,包括姓名、电话号码和电子邮件。定义如下:

struct Contact {
    char name[50];
    char phone[20];
    char email[50];
};

接下来,我们可以使用动态内存分配来创建一个可以存储多个联系人的数组,并提供相应的功能函数来实现通讯录管理系统的操作。

1. 添加联系人功能:

void addContact(struct Contact *contacts, int *count) {
    // 检查通讯录是否已满
    if (*count >= MAX_CONTACTS) {
        printf("通讯录已满,无法添加新联系人。\n");
        return;
    }
    
    // 输入联系人信息
    printf("请输入联系人姓名:");
    scanf("%s", contacts[*count].name);
    printf("请输入联系人电话号码:");
    scanf("%s", contacts[*count].phone);
    printf("请输入联系人电子邮件:");
    scanf("%s", contacts[*count].email);
    
    *count += 1;  // 通讯录联系人数量加一
}

2. 删除联系人功能:

void deleteContact(struct Contact *contacts, int *count, char *name) {
    int position = -1;
    
    // 查找联系人位置
    for (int i = 0; i < *count; i++) {
        if (strcmp(contacts[i].name, name) == 0) {
            position = i;
            break;
        }
    }
    
    // 如果找到联系人,则删除
    if (position != -1) {
        for (int i = position; i < *count - 1; i++) {
            contacts[i] = contacts[i + 1];
        }
        *count -= 1;  // 通讯录联系人数量减一
        printf("成功删除联系人。\n");
    } else {
        printf("未找到该联系人。\n");
    }
}

3. 修改联系人功能:

void editContact(struct Contact *contacts, int count, char *name) {
    int position = -1;
    
    // 查找联系人位置
    for (int i = 0; i < count; i++) {
        if (strcmp(contacts[i].name, name) == 0) {
            position = i;
            break;
        }
    }
    
    // 如果找到联系人,则修改
    if (position != -1) {
        printf("请输入新的电话号码:");
        scanf("%s", contacts[position].phone);
        printf("请输入新的电子邮件:");
        scanf("%s", contacts[position].email);
        
        printf("成功修改联系人。\n");
    } else {
        printf("未找到该联系人。\n");
    }
}

4. 查询联系人功能:

void searchContact(struct Contact *contacts, int count, char *name) {
    int position = -1;
    
    // 查找联系人位置
    for (int i = 0; i < count; i++) {
        if (strcmp(contacts[i].name, name) == 0) {
            position = i;
            break;
        }
    }
    
    // 如果找到联系人,则输出相关信息
    if (position != -1) {
        printf("姓名:%s\n", contacts[position].name);
        printf("电话号码:%s\n", contacts[position].phone);
        printf("电子邮件:%s\n", contacts[position].email);
    } else {
        printf("未找到该联系人。\n");
    }
}

代码解析

上述代码通过结构体来表示联系人的信息,使用动态内存分配来创建一个存储联系人的数组。分别实现了添加、删除、修改和查询联系人信息的功能函数。

添加联系人功能首先判断通讯录是否已满,若未满则通过用户输入来添加新联系人信息,同时更新通讯录联系人数量。

删除联系人功能先查找联系人位置,如果找到则通过移动数组中的元素实现删除操作,同时更新通讯录联系人数量;反之报错未找到该联系人。

修改联系人功能也是先查找联系人位置,如果找到则通过用户输入来修改电话号码和电子邮件,同时报告成功修改;反之报错未找到该联系人。

查询联系人功能同样先查找联系人位置,如果找到则输出该联系人的姓名、电话号码和电子邮件;反之报错未找到该联系人。

总结

通过以上代码的实现,我们成功创建了一个C语言的通讯录管理系统。这个系统可以让用户添加、删除、修改和查询联系人信息,并有相应的错误提示功能。通过结构体和动态内存分配,我们可以灵活地管理联系人信息,使通讯录能够存储大量的联系人。