用c语言实现一个电话薄(附完整代码)

下面是用C语言实现一个电话薄的攻略。

1. 确定数据结构

首先需要确定电话薄的数据结构,可以使用结构体类型来表示每个联系人,包括姓名和电话号码两个元素。代码如下:

struct Contact {
    char name[20];
    char phone[12];
};

2. 实现主函数

主函数负责用户的交互,可以使用一个数组来存储电话薄中的联系人信息。具体实现过程如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Contact {
    char name[20];
    char phone[12];
};

int main()
{
    int num = 0;
    struct Contact contacts[10];

    while (1) {
        printf("\n请选择要进行的操作:\n");
        printf("1. 添加联系人\n");
        printf("2. 查找联系人\n");
        printf("3. 显示所有联系人\n");
        printf("4. 退出电话薄\n");

        int choice;
        scanf("%d", &choice);

        switch (choice) {
        case 1:
            if (num < 10) {
                printf("\n请输入联系人姓名和电话号码:\n");
                scanf("%s %s", contacts[num].name, contacts[num].phone);
                printf("添加联系人成功!\n");
                num++;
            } else {
                printf("\n电话薄已满,无法添加联系人。\n");
            }
            break;
        case 2:
            printf("\n请输入要查找的联系人姓名:\n");
            char name[20];
            scanf("%s", name);

            for (int i = 0; i < num; i++) {
                if (strcmp(name, contacts[i].name) == 0) {
                    printf("\n%s 的电话号码是:%s\n", name, contacts[i].phone);
                    break;
                }
                if (i == num - 1) {
                    printf("\n未找到 %s 的联系人信息。\n", name);
                }
            }
            break;
        case 3:
            if (num == 0) {
                printf("\n电话薄为空。\n");
            } else {
                printf("\n电话薄中的联系人如下:\n");
                for (int i = 0; i < num; i++) {
                    printf("%s\t%s\n", contacts[i].name, contacts[i].phone);
                }
            }
            break;
        case 4:
            printf("\n感谢使用电话薄,再见!\n");
            exit(0);
        default:
            printf("\n输入有误,请输入 1-4 中的一个数字。\n");
        }
    }

    return 0;
}

3. 添加联系人

用户选择添加联系人后,程序会要求用户输入联系人的姓名和电话号码,并将其添加到数组中。添加联系人的代码如下:

if (num < 10) {
    printf("\n请输入联系人姓名和电话号码:\n");
    scanf("%s %s", contacts[num].name, contacts[num].phone);
    printf("添加联系人成功!\n");
    num++;
} else {
    printf("\n电话薄已满,无法添加联系人。\n");
}

其中,num 表示电话薄中联系人的个数。如果 num 小于 10,则可以添加联系人;否则提示电话薄已满。

4. 查找联系人

用户选择查找联系人后,程序会要求用户输入要查找的联系人姓名,并在数组中查找对应的电话号码。代码如下:

printf("\n请输入要查找的联系人姓名:\n");
char name[20];
scanf("%s", name);

for (int i = 0; i < num; i++) {
    if (strcmp(name, contacts[i].name) == 0) {
        printf("\n%s 的电话号码是:%s\n", name, contacts[i].phone);
        break;
    }
    if (i == num - 1) {
        printf("\n未找到 %s 的联系人信息。\n", name);
    }
}

其中,strcmp 函数用于判断两个字符串是否相等。如果找到对应的联系人,则输出电话号码;否则输出未找到的提示信息。

示例说明

以下是两个电话薄的使用示例,以便更好地理解程序的实现。

示例1

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
1

请输入联系人姓名和电话号码:
张三 12345678910
添加联系人成功!

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
1

请输入联系人姓名和电话号码:
李四 98765432101
添加联系人成功!

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
3

电话薄中的联系人如下:
张三   12345678910
李四   98765432101

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
2

请输入要查找的联系人姓名:
李四

李四 的电话号码是:98765432101

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
2

请输入要查找的联系人姓名:
王五

未找到王五的联系人信息。

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
4

感谢使用电话薄,再见!

示例2

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
1

请输入联系人姓名和电话号码:
张三 12345678910
添加联系人成功!

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
2

请输入要查找的联系人姓名:
李四

未找到李四的联系人信息。

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
3

电话薄中的联系人如下:
张三  12345678910

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
1

请输入联系人姓名和电话号码:
李四 98765432101
添加联系人成功!

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
3

电话薄中的联系人如下:
张三  12345678910
李四  98765432101

请选择要进行的操作:
1. 添加联系人
2. 查找联系人
3. 显示所有联系人
4. 退出电话薄
4

感谢使用电话薄,再见!

以上就是用C语言实现一个电话薄的完整攻略,希望对你有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用c语言实现一个电话薄(附完整代码) - Python技术站

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

相关文章

  • php7 错误处理机制修改实例分析

    PHP7 错误处理机制修改实例分析 一、背景 在PHP7中,错误处理机制发生了一些变化。具体来说,PHP7增加了Throwable接口和Error类,用于代替旧版的Exception类。此外,PHP7还引入了一种新的错误处理器:Throwable处理器。Throwable处理器是一种标准的PHP异常处理方式,可以通过使用try-catch语句来捕获和处理所有…

    C 2023年5月22日
    00
  • NBA2KOL安德森投篮包怎么样 C级球员投篮包介绍

    NBA2KOL安德森投篮包怎么样 C级球员投篮包介绍 简介 在NBA2KOL中,投篮包是非常重要的训练工具,它可以帮助球员提高投篮能力。其中,安德森投篮包被认为是一款比较实用的投篮训练工具,本文将详细介绍该投篮包的使用方法,并为大家介绍一些值得关注的C级球员投篮包。 安德森投篮包使用方法 打开NBA2KOL游戏,选择“训练”模式,在投篮训练界面中选择“安德森…

    C 2023年5月23日
    00
  • C语言简单实现门禁系统

    C语言简单实现门禁系统攻略 简介 门禁系统是现代化安全管理的一个必要设备,在学校、企业、小区等有着广泛的应用。本教程将介绍使用C语言实现一个简单的门禁系统的过程。 硬件设备 首先需要准备一些硬件设备: 1个Arduino主板 1个LED 1个继电器 1个磁铁传感器 1个蜂鸣器(可选) 软件准备 除了硬件设备,还需要软件支持: Arduino IDE软件(用于…

    C 2023年5月22日
    00
  • 孤岛惊魂4进不去 应用程序无法正常启动(0xc000007b)解决方法推荐

    下面是针对“孤岛惊魂4进不去 应用程序无法正常启动(0xc000007b)解决方法推荐”的攻略: 问题描述 当你尝试打开孤岛惊魂4游戏时,系统会报错:应用程序无法正常启动(0xc000007b),导致无法进入游戏。 这个错误通常是由缺少或损坏的动态链接库文件(DLL)引起的。这些库文件是运行游戏时所需的关键组件之一。 解决方法 方法一:安装游戏所需的适当版本…

    C 2023年5月23日
    00
  • Vue编写多地区选择组件

    下面是关于如何使用Vue编写多地区选择组件的完整攻略: 1. 安装和引入相关组件 首先,需要安装和引入Vue框架及相关组件,让我们先来安装Vue: npm install vue 然后,我们需要安装一些用于处理地区选择的相关组件,如vue-i18n、vue-select和vue-multiselect。 分别安装方法如下: npm install vue-i…

    C 2023年5月23日
    00
  • C++中关于互斥量的全面认知

    C++中的互斥量是多线程编程中实现同步的重要手段。以下是关于互斥量的全面认知攻略: 互斥量的基本概念 互斥量(Mutex)是一种同步工具,用于保护被多线程共享的资源(如共享内存)不被并发访问和修改,实现了资源的互斥访问。互斥量可以用于解决多线程环境中的竞争条件问题。 互斥量的使用 在C++中,互斥量是通过<mutex>头文件来使用。简单使用互斥量…

    C 2023年5月22日
    00
  • vscode C++远程调试运行(学习C++用)

    vscode C++远程调试运行(学习C++用)攻略 简介 本文主要介绍如何使用Visual Studio Code(以下简称VScode)进行C++远程调试运行。远程调试可以方便读者在本地开发环境中编辑、调试和运行分布在远端主机上的代码,对于学习C++等场景非常有用。 步骤 1. 环境搭建 在使用VScode进行远程调试之前,需要先搭建好相关的环境。具体来…

    C 2023年5月23日
    00
  • C++深入讲解类与对象之OOP面向对象编程与封装

    C++深入讲解类与对象之OOP面向对象编程与封装攻略 什么是OOP面向对象编程? OOP,全名是Object-Oriented Programming,中文翻译是面向对象编程,它是一种编程方法论和编程思想,其核心思想是将一组数据结构和处理它们的方法组成对象,以及描述对象间的相互关系,实现数据封装,代码重用和灵活性等特性。 OOP面向对象编程实现了三个基本特性…

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