C/C++实现通讯录管理系统(附源码)

yizhihongxing

C/C++实现通讯录管理系统(附源码)攻略

简介

该项目是使用C/C++语言编写的通讯录管理系统。该系统实现了通讯录的增、删、改、查等功能,可以方便地管理用户的通讯录信息。本文将从环境配置、源码分析、运行流程等方面详细讲解该项目的实现过程。

环境配置

该项目是使用C/C++语言编写的,需要在本地安装相应的编译环境。推荐使用Visual Studio Code进行编辑和调试。下面是环境配置的详细步骤:

  1. 下载安装 Visual Studio Code,Visual Studio Code官网进行下载并安装。
  2. 安装 C/C++ 插件,运行Visual Studio Code,在扩展商店中搜索 C/C++ 插件进行下载和安装。
  3. 编写代码,完成项目功能,并调试运行。

源码分析

文件结构

该项目主要有4个文件:

  1. header.h:头文件,定义了程序中使用到的结构体和函数声明。
  2. main.cpp:程序入口文件,包含主函数和程序的主要流程。
  3. operate.cpp:实现了操作通讯录的函数,如添加、删除、显示等操作。
  4. file.cpp:实现了通讯录的文件读写操作。

数据结构

该项目使用了链表来存储通讯录信息,链表结构体定义如下:

struct Contact {
    string name;
    int sex;    // 1为男性,2为女性
    int age;    // 年龄
    string phone;   // 电话号码
    string addr;    // 地址
    Contact* next;  // 指向下一个节点的指针
};

函数实现

添加联系人函数的实现:

void AddContact(Contact* head) {
    Contact* p = head;
    while (p->next != NULL) {
        p = p->next;
    }

    Contact* newcontact = new Contact;
    cout << "请输入姓名:" << endl;
    cin >> newcontact->name;
    cout << "请输入性别(1为男,2为女):" << endl;
    cin >> newcontact->sex;
    cout << "请输入年龄:" << endl;
    cin >> newcontact->age;
    cout << "请输入电话号码:" << endl;
    cin >> newcontact->phone;
    cout << "请输入地址:" << endl;
    cin >> newcontact->addr;

    p->next = newcontact;
    newcontact->next = NULL;

    cout << "添加成功!" << endl;
}

删除联系人函数的实现:

void DelContact(Contact* head) {
    string name;
    cout << "请输入要删除的联系人姓名:" << endl;
    cin >> name;

    Contact* q = head;
    Contact* p = head->next;
    while (p != NULL) {
        if (p->name == name) {
            q->next = p->next;
            delete p;
            cout << "删除成功!" << endl;
            return;
        }
        q = q->next;
        p = p->next;
    }

    cout << "该联系人不存在!" << endl;
}

运行流程

  1. 运行程序,显示主菜单,如下图所示:

*************通讯录系统***************
*************1、添加联系人***************
*************2、显示联系人***************
*************3、修改联系人***************
*************4、删除联系人***************
*************5、查找联系人***************
*************6、清空联系人***************
*************0、退出系统***************

  1. 用户选择相应的操作,按照提示进行操作。

  2. 操作完成后,返回主菜单。

示例说明

示例1:添加联系人

用户选择“添加联系人”操作,在命令行中输入联系人信息,如下所示:

请输入姓名:
张三
请输入性别(1为男,2为女):
1
请输入年龄:
20
请输入电话号码:
13811112222
请输入地址:
北京市朝阳区
添加成功!

程序将联系人信息添加到通讯录中,并输出“添加成功!”的提示信息。

示例2:删除联系人

用户选择“删除联系人”操作,在命令行中输入要删除的联系人姓名,如下所示:

请输入要删除的联系人姓名:
张三
删除成功!

程序将指定的联系人从通讯录中删除,并输出“删除成功!”的提示信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C/C++实现通讯录管理系统(附源码) - Python技术站

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

相关文章

  • C++实现扫雷、排雷小游戏

    C++实现扫雷、排雷小游戏攻略 游戏介绍 扫雷是一种单人益智游戏,目标是在一个方块网格中排雷,并尽可能快的完成游戏。游戏规则如下: 在一个大小为M * N的矩阵中,有一些地雷分布在矩阵中,其他方块是空白的 玩家可以翻开其中一个空白方块,如果该方块旁边有雷,则游戏失败,否则该方块会显示周围的雷数 如果翻开的方块周围没有雷,则该方块的周围的方块也会被翻开,直到所…

    C 2023年5月24日
    00
  • C语言对于volatile与gcc优化的探究

    C语言对于volatile与gcc优化的探究 什么是volatile关键字 在C语言中,volatile是一个关键字,可以用来修饰一个变量,告诉编译器这个变量没有被优化,需要实时读取。 volatile的作用是防止编译器进行一些优化,例如在一个循环中,变量的值在循环中被修改,而且这个变量还被其他模块所使用,那么为了保证其他模块使用的变量是最新的,我们就需要用…

    C 2023年5月23日
    00
  • C++可调用对象callable object深入分析

    C++ 可调用对象(Callable Object)深入分析 可调用对象是一个对象,它能够像函数一样被调用,包括函数指针、函数对象、成员函数指针等。在 C++11 标准中加入的可调用对象是一个非常强大的特性,我们可以利用它来编写更加灵活和高效的代码。 本文将深入介绍 C++ 中可调用对象的概念、用法以及注意事项。其中会包含两个示例,以帮助读者更好地理解可调用…

    C 2023年5月22日
    00
  • 基于C语言实现简单的扫雷游戏

    基于C语言实现简单的扫雷游戏攻略 需求分析 在实现扫雷游戏之前,我们需要明确游戏的需求和规则。扫雷游戏的规则大致如下:1. 游戏界面由一个矩形格子组成,每个格子可以是地雷或数字或空白。2. 游戏开始时,所有格子都是未翻开的状态。3. 玩家通过点击格子来翻开它们。当翻开的格子是空白时,它周围的8个格子也会被翻开。当翻开的格子是数字时,为周围8个格子中地雷的数量…

    C 2023年5月23日
    00
  • Linux中使用C语言的fork()函数创建子进程的实例教程

    下面是详细讲解创建子进程的实例教程。 什么是子进程? 在Linux系统中,一个进程可以创建其他进程。被创建的进程称为子进程,而新创建进程的进程称为父进程。子进程继承了父进程的所有属性和资源,包括进程ID、打开的文件描述符、信号处理方式等。 如何创建子进程? Linux中使用C语言提供了 fork() 函数来创建子进程。fork()函数是一个系统调用,调用后会…

    C 2023年5月23日
    00
  • 详解C/C++高精度算法的简单实现

    详解C/C++高精度算法的简单实现 简介 高精度算法是指在计算机上处理大数(比int、long long等数据类型的范围还要大)时,用特殊的算法进行计算的技术,它可以大大提高程序的精度。本文将详细讲解在C/C++语言中实现高精度算法的方法。 实现思路 实现高精度算法的主要思路是将大数拆分成多个小数,每个小数用数组存储数据,然后借助数组的运算来实现对大数的计算…

    C 2023年5月23日
    00
  • C++11中std::packaged_task的使用详解

    这里我将为你详细讲解“C++11中std::packaged_task的使用详解”的完整攻略。 1. 什么是std::packaged_task std::packaged_task 是一个封装了一个可调用对象(函数,函数指针,lambda表达式等)的类模板,其可以异步地执行该可调用对象,并在需要时获取该对象的结果。 std::packaged_task 可…

    C 2023年5月23日
    00
  • Maplesoft Maple 2020官方正式版安装教程图文详细介绍(含下载地址)

    Maplesoft Maple 2020正式版安装教程 本文介绍了Maplesoft Maple 2020正式版的安装方法,包括下载和安装过程。 下载Maple软件 官网下载链接:https://www.maplesoft.com/support/downloads/ 访问上述链接,找到Maple软件的下载链接,选择合适的版本下载。 下载完成后双击安装包,开…

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