c语言编程笔录

您现在的位置是:首页 > C语言 > C#

C#

C语言实现制作通讯录(新手推荐)

刘翊惠 2023-08-09C#
前言通讯录是一个经典的程序需求,通过C语言的实现可以帮助我们更好地理解和学习编程基础。在这个项目中,我们将使用C语言来设计和实现一个简单的通讯录应用。该应用程序将允许用户添加、删除

前言

通讯录是一个经典的程序需求,通过C语言的实现可以帮助我们更好地理解和学习编程基础。在这个项目中,我们将使用C语言来设计和实现一个简单的通讯录应用。该应用程序将允许用户添加、删除和查找联系人的信息,并将其存储在一个数据结构中。

实现思路

为了实现通讯录应用,我们可以使用结构体和链表来存储联系人的信息。结构体可以用来表示每个联系人的属性,例如姓名、电话号码和电子邮件地址等。链表则可以用来组织联系人,使其可以动态添加和删除。

首先,我们需要定义一个表示联系人的结构体,其中包括姓名(name)、电话号码(phone)和电子邮件地址(email)等字段。然后,我们可以创建一个链表结构,其中的每个节点包含一个联系人结构体,并且具有指向下一个节点的指针。

接下来,我们可以实现以下功能:

  1. 添加联系人:向链表中插入一个新的联系人节点。
  2. 删除联系人:从链表中删除指定的联系人节点。
  3. 查找联系人:通过姓名或电话号码等信息,在链表中查找并返回匹配到的联系人。
  4. 显示所有联系人:遍历链表,并将每个联系人的信息打印到屏幕上。

代码实现

#include 
#include 
#include 

// 定义联系人结构体
struct Contact {
    char name[100];
    char phone[20];
    char email[100];
    struct Contact* next;
};

// 全局变量,表示链表头
struct Contact* head = NULL;

// 添加联系人
void addContact(char name[], char phone[], char email[]) {
    struct Contact* newContact = (struct Contact*)malloc(sizeof(struct Contact));
    strcpy(newContact->name, name);
    strcpy(newContact->phone, phone);
    strcpy(newContact->email, email);
    newContact->next = head;
    head = newContact;
}

// 删除联系人
void deleteContact(char name[]) {
    struct Contact* current = head;
    struct Contact* previous = NULL;

    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            if (previous == NULL) {
                head = current->next;
                free(current);
                return;
            } else {
                previous->next = current->next;
                free(current);
                return;
            }
        }

        previous = current;
        current = current->next;
    }

    printf("联系人%s不存在。\n", name);
}

// 查找联系人
struct Contact* findContact(char name[]) {
    struct Contact* current = head;

    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            return current;
        }
        current = current->next;
    }

    return NULL;
}

// 显示所有联系人
void displayAllContacts() {
    struct Contact* current = head;

    if (current == NULL) {
        printf("通讯录为空。\n");
        return;
    }

    while (current != NULL) {
        printf("姓名:%s,电话:%s,邮箱:%s\n", current->name, current->phone, current->email);
        current = current->next;
    }
}

代码说明

在上述代码中,我们定义了Contact结构体来存储联系人的信息。通过addContact函数可以向通讯录中添加新的联系人。deleteContact函数可以根据指定的姓名删除联系人。findContact函数可以查找并返回匹配到的联系人。displayAllContacts函数用于遍历并打印通讯录中所有的联系人信息。

总结

通过以上的代码实现,我们可以实现一个简单的通讯录应用,可以添加、删除、查找联系人信息,并可以显示所有联系人的信息。这个项目可以帮助新手更好地理解和学习C语言的基础知识,包括结构体、链表和内存管理等方面的内容。

文章评论