C语言实现简易通讯录实例

C语言实现简易通讯录实例

简介

本项目将使用C语言实现一个简易通讯录,可以添加联系人、删除联系人、修改联系人以及查看通讯录中所有联系人的信息。

环境

开发平台:Windows / Linux / MacOS

编译器:gcc

功能列表

  1. 添加联系人
  2. 删除联系人
  3. 修改联系人
  4. 查看通讯录中所有联系人的信息

数据结构

为了实现通讯录的功能,我们需要用到两种数据结构:联系人和通讯录。

联系人

联系人是通讯录中的基本单元,包含以下信息:

  • 姓名(字符串类型,最长不超过 20 个字符)
  • 性别(字符类型,'M' 表示男性,'F' 表示女性)
  • 年龄(整型,取值范围为 1 到 150)
  • 电话号码(字符串类型,最长不超过 15 个字符)
  • 住址(字符串类型,最长不超过 50 个字符)

我们可以定义一个结构体来表示一个联系人:

struct person {
    char name[20];
    char gender;
    int age;
    char phone[15];
    char address[50];
};

通讯录

通讯录是联系人的集合,可以对其中的联系人进行添加、删除、修改和查询操作。通讯录的存储可以使用数组或链表。在这里,我们使用数组来存储所有的联系人。

通讯录包含以下信息:

  • 联系人数组(最多可以存储 1000 个联系人)
  • 联系人数量

我们可以定义一个结构体来表示通讯录:

#define MAX_PERSONS 1000

struct address_book {
    struct person persons[MAX_PERSONS];
    int count;
};

添加联系人

添加联系人操作可以分为以下几个步骤:

  1. 从用户输入中获取新联系人的信息
  2. 在通讯录中添加新联系人
  3. 更新通讯录中联系人数量的计数器

下面是实现添加联系人函数的示例代码:

void add_person(struct address_book *book) {
    if (book->count == MAX_PERSONS) {
        printf("通讯录已满,无法添加新联系人。\n");
        return;
    }

    struct person new_person;

    printf("请输入新联系人的信息:\n");
    printf("姓名:");
    scanf("%s", new_person.name);
    printf("性别(M/F):");
    scanf(" %c", &new_person.gender);
    printf("年龄:");
    scanf("%d", &new_person.age);
    printf("电话号码:");
    scanf("%s", new_person.phone);
    printf("住址:");
    scanf("%s", new_person.address);

    book->persons[book->count] = new_person;
    book->count++;

    printf("新联系人已成功添加到通讯录中。\n");
}

删除联系人

删除联系人操作可以分为以下几个步骤:

  1. 从用户输入中获取待删除联系人的姓名
  2. 在通讯录中查找该姓名对应的联系人
  3. 如果找到了该联系人,则删除它
  4. 更新通讯录中联系人数量的计数器

下面是实现删除联系人函数的示例代码:

void delete_person(struct address_book *book) {
    char name[20];
    printf("请输入待删除联系人的姓名:");
    scanf("%s", name);

    int i;
    for (i = 0; i < book->count; i++) {
        if (strcmp(book->persons[i].name, name) == 0) {
            int j;
            for (j = i; j < book->count - 1; j++) {
                book->persons[j] = book->persons[j + 1];
            }
            book->count--;
            printf("联系人 %s 已从通讯录中删除。\n", name);
            return;
        }
    }

    printf("没有找到名为 %s 的联系人。\n", name);
}

示例说明

示例 1:添加联系人

struct address_book book;
book.count = 0;

add_person(&book);

/*
输出:
请输入新联系人的信息:
姓名:Peter
性别(M/F):M
年龄:30
电话号码:13912345678
住址:Shanghai
新联系人已成功添加到通讯录中。
*/

示例 2:删除联系人

struct address_book book;
book.persons[0] = (struct person){"Peter", 'M', 30, "13912345678", "Shanghai"};
book.count = 1;

delete_person(&book);

/*
输出:
请输入待删除联系人的姓名:Peter
联系人 Peter 已从通讯录中删除。
*/

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现简易通讯录实例 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Java爬虫 信息抓取的实现

    Java爬虫可以通过模拟浏览器的行为,自动化地访问网页并抓取所需信息,主要分为以下几个步骤: 1. 简述Web爬虫的基本工作流程 1.1 网页访问 要抓取的信息一般都在网页中,因此第一步是访问目标网站。由于Java爬虫需要模拟浏览器的行为,因此一般使用java.net.HttpURLConnection或org.apache.http.client.Http…

    C 2023年5月23日
    00
  • VSCode各语言运行环境配置方法示例详解

    下面我会为你详细讲解 “VSCode各语言运行环境配置方法示例详解”的完整攻略。 概述 在使用 Visual Studio Code 进行编程开发时,不同的语言需要不同的运行环境。本篇攻略将会详细讲解如何配置 VSCode 的运行环境。 步骤 步骤一:安装与配置相应的编程语言环境 首先确定你需要使用的编程语言,然后安装相应的运行环境。以 Node.js 为例…

    C 2023年5月23日
    00
  • Lua中的运算符简明总结

    Lua中的运算符可以用来进行各种数学运算以及逻辑判断。下面是一个简明总结: 算术运算符 符号 描述 示例 + 加法 a + b – 减法 a – b * 乘法 a * b / 除法 a / b % 取模(求余数) a % b ^ 乘方 a ^ b 示例1:使用算术运算符计算两个数的和、差、积、商、余数和乘方 a = 10 b = 5 print("…

    C 2023年5月22日
    00
  • 利用上下文属性将 C++ 对象嵌入 QML 里

    利用上下文属性将 C++ 对象嵌入 QML 里需要遵循以下步骤: 构建 C++ 类,使其能够注册到 QML 中 创建 QML 文件,利用上下文属性将 C++ 对象嵌入到 QML 中 在 QML 中使用 C++ 对象 下面我们用两个示例说明这个过程。 示例一 假设我们需要向 QML 注册名为 Person 的 C++ 类,并将其实例化之后添加到 QML 上下文…

    C 2023年5月22日
    00
  • C++定义和初始化string对象实例详解

    C++定义和初始化string对象实例详解 在C++中,string是一个非常常用的数据类型,可以用来表示字符串。本文将详细讲解如何定义和初始化string对象实例。 定义string对象 要定义一个string对象,可以用以下方式: #include <string> std::string str1; 这样就定义了一个名为str1的空stri…

    C 2023年5月22日
    00
  • C语言实现520表白代码 祝你表白成功!

    C语言实现520表白代码攻略 感谢您对C语言表白代码的关注。下面是实现520表白代码的完整攻略。 1. 准备工作 在开始实现520表白代码之前,需要安装C语言编译器。在Windows系统上,我们建议使用MinGW或者Visual Studio Code(带有C/C++扩展)作为编译器;在Linux系统上,可以使用GCC。 2. 编写C程序 我们可以通过在C程…

    C 2023年5月23日
    00
  • C语言文件操作详情(一)

    下面我将详细讲解“C语言文件操作详情(一)”的完整攻略。 一、文件操作的概念 在C语言中,文件被看作是一系列按照一定顺序排列的记录(Record)的集合。C语言提供了一组文件操作函数,可以用来打开、关闭、读写、移动文件。 二、文件的打开和关闭 在C语言中,打开文件需要使用fopen函数,关闭文件使用fclose函数。fopen函数可以使用不同的方式打开文件,…

    C 2023年5月23日
    00
  • Json格式详解

    Json格式详解 什么是Json? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,并易于机器解析和生成。它基于JavaScript语言的一个子集。JSON采用键值对的方式来描述信息,通过大括号{}包围对象,通过方括号[]包围数组。 Json格式规则 数据在名称/值对中 数据由逗号分隔 大括号{}包…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部