C语言用函数实现电话簿管理系统

C语言用函数实现电话簿管理系统

在C语言中,使用函数是一个非常重要的编程技巧。本文将演示如何使用函数实现电话簿管理系统。

实现思路

电话簿管理系统需要实现的功能包括添加联系人、删除联系人、查询联系人、显示联系人等。为了方便管理,可以将这些功能封装在函数中。

添加联系人

添加联系人主要涉及以下操作:

  1. 输入联系人姓名和电话号码。
  2. 将联系人信息存储到文件中。

以下是实现添加联系人的函数的代码:

void add_contact()
{
    char name[50];
    char phone[20];

    printf("请输入姓名:");
    scanf("%s", name);
    printf("请输入电话号码:");
    scanf("%s", phone);

    FILE* fp = fopen("contacts.txt", "a");
    fprintf(fp, "%s,%s\n", name, phone);
    fclose(fp);

    printf("联系人添加成功!\n");
}

删除联系人

删除联系人主要涉及以下操作:

  1. 输入要删除的联系人姓名。
  2. 在文件中查找匹配的联系人记录。
  3. 如果找到匹配的联系人记录,则将其删除。

以下是实现删除联系人的函数的代码:

void remove_contact()
{
    char name[50];
    printf("请输入要删除的联系人姓名:");
    scanf("%s", name);
    FILE* fp = fopen("contacts.txt", "r");
    char temp[100];

    int found = 0;
    while (fgets(temp, 100, fp) != NULL)
    {
        char* token = strtok(temp, ",");
        if (strcmp(token, name) == 0)
        {
            found = 1;
            continue;
        }

        FILE* new_fp = fopen("new_contacts.txt", "a");
        fprintf(new_fp, "%s", temp);
        fclose(new_fp);
    }

    fclose(fp);

    if (found)
    {
        remove("contacts.txt");
        rename("new_contacts.txt", "contacts.txt");
        printf("联系人删除成功!\n");
    }
    else
    {
        remove("new_contacts.txt");
        printf("没有找到匹配的联系人记录。\n");
    }
}

查询联系人

查询联系人主要涉及以下操作:

  1. 输入要查询的联系人姓名。
  2. 在文件中查找匹配的联系人记录。
  3. 如果找到匹配的联系人记录,则将其输出。

以下是实现查询联系人的函数的代码:

void search_contact()
{
    char name[50];
    printf("请输入要查询的联系人姓名:");
    scanf("%s", name);
    FILE* fp = fopen("contacts.txt", "r");
    char temp[100];

    int found = 0;
    while (fgets(temp, 100, fp) != NULL)
    {
        char* token = strtok(temp, ",");
        if (strcmp(token, name) == 0)
        {
            found = 1;
            printf("联系人姓名:%s\n", token);
            token = strtok(NULL, ",");
            printf("联系人电话:%s\n", token);
        }
    }

    fclose(fp);

    if (!found)
    {
        printf("没有找到匹配的联系人记录。\n");
    }
}

显示联系人

显示联系人主要涉及以下操作:

  1. 从文件中读取所有联系人记录。
  2. 逐条输出联系人记录。

以下是实现显示联系人的函数的代码:

void show_contacts()
{
    FILE* fp = fopen("contacts.txt", "r");
    char temp[100];

    while (fgets(temp, 100, fp) != NULL)
    {
        char* token = strtok(temp, ",");
        printf("联系人姓名:%s\n", token);
        token = strtok(NULL, ",");
        printf("联系人电话:%s\n", token);
    }

    fclose(fp);
}

示例说明

以下是如何在主函数中调用上述函数的示例:

int main()
{
    int choice;

    while (1)
    {
        printf("\n1. 添加联系人");
        printf("\n2. 删除联系人");
        printf("\n3. 查询联系人");
        printf("\n4. 显示所有联系人");
        printf("\n5. 退出\n");
        printf("请选择您要进行的操作:");
        scanf("%d", &choice);

        switch (choice)
        {
        case 1:
            add_contact();
            break;
        case 2:
            remove_contact();
            break;
        case 3:
            search_contact();
            break;
        case 4:
            show_contacts();
            break;
        case 5:
            return 0;
        default:
            printf("\n输入错误,请重新输入!\n");
            break;
        }
    }
}

通过上述示例代码,可以实现一个简单的电话簿管理系统,用户可以通过输入数字选择要执行的操作,然后调用相应的函数执行该操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言用函数实现电话簿管理系统 - Python技术站

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

相关文章

  • C语言中程序环境和预处理的详细图文讲解

    针对“C语言中程序环境和预处理的详细图文讲解”这一主题,我会为你提供一份完整攻略。本攻略主要分两部分:程序环境和预处理。下面就分别进行详细讲解。 程序环境 什么是程序环境? 程序环境指的是程序执行的环境,包括操作系统、硬件设备等因素。C语言的程序需要在特定的环境下才能执行。 程序的执行过程 当程序运行时,它需要在内存中占用一定的空间。程序在执行过程中分为以下…

    C 2023年5月23日
    00
  • C语言中main函数与命令行参数详细讲解

    C语言中main函数与命令行参数详细讲解 简介 在C语言中,我们通常将所有的程序逻辑写在main函数中。main函数是C语言程序的入口函数,程序从main函数开始执行,当main函数执行完成返回时,整个程序也就结束了。 在本文中,我们将主要讲解C语言中main函数的基本语法以及如何使用命令行参数。 main函数语法 在C语言中的main函数基本语法如下: i…

    C 2023年5月23日
    00
  • 探究在C++程序并发时保护共享数据的问题

    探究在C++程序并发时保护共享数据的问题,是一项十分重要的任务。在多线程编程中,通过并发执行多个线程,可以充分利用计算机的多核处理能力,提高程序的执行效率。但同时,多个线程访问同一个共享数据时,就会带来数据竞争的问题,如果不加以保护,就会导致程序出现未定义的行为,例如崩溃、死锁等。 为了解决这个问题,C++中提供了多种保护共享数据的方法,以下是一些常用的攻略…

    C 2023年5月30日
    00
  • C 标准库 time.h

    time.h 是 C 标准库中的一个头文件,它提供了一系列函数来操作日期和时间。下面我们来详细讲解如何使用 time.h 标准库。 时间表示法 在 time.h 中,通常使用 time_t 类型来表示时间戳(timestamp),即表示从 1970 年 1 月 1 日 0 时 0 分 0 秒到某一个时间点所经过的秒数。时间戳可以用 time() 函数获取。 …

    C 2023年5月10日
    00
  • 开机0xc000000f进不了系统怎么办?0xc000000f进不了系统修复方法

    开机0xc000000f进不了系统怎么办 问题描述 在开机时,如果系统提示0xc000000f错误,那么说明Windows启动管理器中的某个文件已损坏或被删除,Windows无法正常启动。 修复方法 方法一:使用Windows安装光盘修复启动 将Windows安装光盘插入电脑并重启电脑。 进入Windows安装环境界面,选择语言、时间以及货币格式等信息。 单…

    C 2023年5月23日
    00
  • C程序中Ubuntu、stm32的内存分配问题

    内存是计算机系统中最重要的资源之一。在C程序中,内存分配问题一直是一个关键问题。本文将介绍如何在Ubuntu和stm32环境下进行内存分配、管理、释放以及如何进行调试。 在Ubuntu下的内存分配 内存分配函数 在Ubuntu下,内存分配函数是基于C语言标准库中的malloc()函数实现的。malloc()函数使用时需要包含<stdlib.h>头…

    C 2023年5月23日
    00
  • 如何利用最简单的C语言实现AI五子棋

    以下是详细的攻略。 一、概述 AI五子棋的实现可以使用简单的C语言编写。整个程序可以分为三个部分:用户交互、棋盘表示、决策引擎。用户交互包括输入和输出,棋盘表示包括棋盘的状态,决策引擎则用于决策AI下一步的位置。下面将分别对这三个部分进行详细的说明。 二、用户交互 用户交互可以通过控制台实现。程序需要输出当前棋局状态并获取用户下子的位置。输出可以使用简单的A…

    C 2023年5月23日
    00
  • 恐怖黎明0xc000007b怎么办_恐怖黎明0xc000007b错误的解决方法

    恐怖黎明0xc000007b错误的解决方法 什么是0xc000007b错误 0xc000007b错误是Windows操作系统中常见的错误之一,它通常会出现在启动应用程序时。这个错误通常是由于缺少或损坏了应用程序所需的某项文件或库,导致程序无法正常启动。 恐怖黎明0xc000007b错误的解决方法 以下是一些可能有效的恐怖黎明0xc000007b错误解决方法:…

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