用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日

相关文章

  • C语言实现通讯录的示例代码

    C语言实现通讯录的示例代码是一个经典的练手项目。下面,我将为大家详细讲解:如何实现通讯录,在此过程中,我将会向大家展示这样一个经典的示例代码实现。本文主要分为以下几个部分: 实现通讯录系统需要考虑的因素 编写通讯录示例代码的具体步骤 两个示例说明 1. 实现通讯录系统需要考虑的因素 要实现一个通讯录系统,需要考虑以下几个因素: 数据结构:通讯录使用什么数据结…

    C 2023年5月24日
    00
  • C语言实现队列的示例详解

    C语言实现队列的示例详解 简介 队列是一种常用的数据结构,类似于排队,先进先出。C语言中可以使用结构体、数组、指针等方式来实现队列。本文将介绍如何使用数组实现队列。 实现过程 使用数组实现队列需要定义两个指针:一个指向队列头,一个指向队列尾。 1. 定义队列结构体 结构体定义如下,其中front为队列头指针,rear为队列尾指针,maxSize为队列容量,a…

    C 2023年5月23日
    00
  • Win10打开软件报错“应用程序无法正常启动0xc0150002”解决方法图文教程

    以下是详细的攻略: 问题描述 当尝试打开某些软件时,可能会出现以下错误提示: 应用程序无法正常启动0xc0150002。 该错误通常由缺失或损坏的Microsoft Visual C++ 等可视化库文件引起。 解决方法 为了解决这个问题,我们可以尝试以下几种方法。 方法一:重新安装Microsoft Visual C++运行库 打开控制面板,并进入“程序和功…

    C 2023年5月23日
    00
  • 利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突问题

    欢迎使用Debug调试工具来解决0xC0000005错误,通常表示内存读写出现异常导致访问根本不存在的地址,需要做一定的Debug步骤解决。 以下是完整攻略: 1. 安装并启动Visual Studio 首先需要确保Visual Studio是安装并完善配置的,打开Visual Studio。 2. 选择调试方式 在执行程序时发生了错误,但是我们得通过Deb…

    C 2023年5月23日
    00
  • C++实现LeetCode(642.设计搜索自动补全系统)

    下面是C++实现LeetCode设计搜索自动补全系统(642题)的完整攻略。 问题描述 实现一个搜索自动补全系统,可以支持以下功能: 给定一个字符串prefix,返回所有下一个可能的查询已经它们的出现次数,按照次数排列(降序); 插入一个句子sentence时,插入这个句子的所有前缀。 输入的所有字符串都只包含小写字母,且长度不会超过1000。 示例: 输入…

    C 2023年5月23日
    00
  • JSONP跨域原理以及实现方法详解

    当我们在网页中使用AJAX技术进行异步数据请求时,经常会遇到一些跨域请求数据的问题。此时,如果我们确定请求的目标网站是值得信任的,就可以考虑使用JSONP来解决跨域请求的问题。 什么是JSONP JSONP全称为JSON with Padding,是一种跨域数据请求方式。JSONP的原理是通过动态创建元素,并将需要请求的数据作为参数传递到URL中,从而让服务…

    C 2023年5月23日
    00
  • C语言中#if的使用详解

    让我详细讲解一下“C语言中#if的使用详解”的完整攻略。 1. #if的基本用法 if指令是C语言中条件编译的一种方式。它的用法如下: #if condition /* some code */ #endif 其中,condition可以是任何能被求值的表达式,通常是宏定义或预定义宏。如果condition为真,该指令中的代码才会被编译,否则该指令中的代码将…

    C 2023年5月23日
    00
  • 三星QN900C口碑怎么样? 三星Neo QLED QN90C电视评测

    三星QN900C口碑怎么样? 三星QN900C是三星公司最新推出的一款高端电视,配备了最先进的量子点技术,可以产生更加真实、细致、颜色鲜艳的画面效果。近年来,随着人们对品质生活的追求,三星QN900C在市场上备受瞩目,受到了很多电视爱好者的关注。 在使用者的评论中,三星QN900C获得了很高的评价。用户表示这款电视画面质量极佳,色彩鲜艳、细节丰富、对比度高,…

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