C++实现通讯录管理系统项目

C++实现通讯录管理系统项目,主要分为以下几个步骤:

1. 需求分析

在开发任何项目前,需要先进行需求分析,确定项目的目标和功能。

通讯录管理系统的主要功能包括添加联系人、显示联系人、删除联系人、修改联系人、清空联系人等操作。我们需要先确定这些操作的实现方式和操作流程。

2. 数据结构设计

在确定操作流程后,需要设计合适的数据结构来存储联系人信息。可以使用结构体来存储一个联系人的姓名、电话、地址等信息。

struct Person {
    string name;
    string phone;
    string address;
};

然后定义一个动态数组来保存多个联系人信息:

vector<Person> contactList;

3. 界面设计

通讯录管理系统需要简单的界面来显示和输入联系人信息。可以使用命令行作为界面,使用如下方式输入和显示联系人信息:

请输入要进行的操作序号:
1. 添加联系人
2. 显示联系人
3. 删除联系人
4. 修改联系人
5. 清空联系人

4. 功能实现

4.1 添加联系人

实现方式:从命令行输入联系人信息,将联系人信息保存到动态数组中。

示例代码:

void addContact() {
    cout << "请输入联系人姓名:" << endl;
    string name;
    getline(cin, name);

    cout << "请输入联系人电话:" << endl;
    string phone;
    getline(cin, phone);

    cout << "请输入联系人地址:" << endl;
    string address;
    getline(cin, address);

    // 新建联系人对象
    Person contact = { name, phone, address };
    // 将联系人添加到联系人列表中
    contactList.push_back(contact);

    cout << "添加联系人成功!" << endl;
}

4.2 显示联系人

实现方式:遍历动态数组中保存的联系人信息,将所有联系人信息输出到命令行。

示例代码:

void showContact() {
    for (int i = 0; i < contactList.size(); i++) {
        cout << "姓名:" << contactList[i].name << "\t";
        cout << "电话:" << contactList[i].phone << "\t";
        cout << "地址:" << contactList[i].address << endl;
    }
}

5. 完整示例代码

下面是完整的通讯录管理系统示例代码:

#include <iostream>
#include <vector>

using namespace std;

struct Person {
    string name;
    string phone;
    string address;
};

vector<Person> contactList;

void addContact() {
    cout << "请输入联系人姓名:" << endl;
    string name;
    getline(cin, name);

    cout << "请输入联系人电话:" << endl;
    string phone;
    getline(cin, phone);

    cout << "请输入联系人地址:" << endl;
    string address;
    getline(cin, address);

    Person contact = { name, phone, address };
    contactList.push_back(contact);

    cout << "添加联系人成功!" << endl;
}

void showContact() {
    for (int i = 0; i < contactList.size(); i++) {
        cout << "姓名:" << contactList[i].name << "\t";
        cout << "电话:" << contactList[i].phone << "\t";
        cout << "地址:" << contactList[i].address << endl;
    }
}

void deleteContact() {
    cout << "请输入要删除的联系人序号:" << endl;
    int index;
    cin >> index;
    if (index < 1 || index > contactList.size()) {
        cout << "输入序号错误,请重新输入!" << endl;
        return;
    }
    contactList.erase(contactList.begin() + index - 1);

    cout << "删除联系人成功!" << endl;
}

void modifyContact() {
    cout << "请输入要修改的联系人序号:" << endl;
    int index;
    cin >> index;
    if (index < 1 || index > contactList.size()) {
        cout << "输入序号错误,请重新输入!" << endl;
        return;
    }

    cout << "请输入新联系人姓名:" << endl;
    string name;
    getline(cin, name);

    cout << "请输入新联系人电话:" << endl;
    string phone;
    getline(cin, phone);

    cout << "请输入新联系人地址:" << endl;
    string address;
    getline(cin, address);

    contactList[index - 1].name = name;
    contactList[index - 1].phone = phone;
    contactList[index - 1].address = address;

    cout << "修改联系人成功!" << endl;
}

void clearContact() {
    contactList.clear();
    cout << "清空联系人成功!" << endl;
}

int main() {
    while (true) {
        cout << "请输入要进行的操作序号:" << endl;
        cout << "1. 添加联系人" << endl;
        cout << "2. 显示联系人" << endl;
        cout << "3. 删除联系人" << endl;
        cout << "4. 修改联系人" << endl;
        cout << "5. 清空联系人" << endl;

        int choice;
        cin >> choice;

        switch (choice) {
        case 1:
            addContact();
            break;
        case 2:
            showContact();
            break;
        case 3:
            deleteContact();
            break;
        case 4:
            modifyContact();
            break;
        case 5:
            clearContact();
            break;
        default:
            cout << "输入错误,请重新输入!" << endl;
            break;
        }
    }

    return 0;
}

示例1:添加联系人

请输入要进行的操作序号:
1. 添加联系人
2. 显示联系人
3. 删除联系人
4. 修改联系人
5. 清空联系人
1
请输入联系人姓名:
张三
请输入联系人电话:
110
请输入联系人地址:
北京市海淀区
添加联系人成功!

示例2:显示联系人

请输入要进行的操作序号:
1. 添加联系人
2. 显示联系人
3. 删除联系人
4. 修改联系人
5. 清空联系人
2
姓名:张三   电话:110  地址:北京市海淀区

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

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

相关文章

  • Win7开机提示错误代码0xc0000102怎么办?

    Win7开机提示错误代码0xc0000102的解决方案 问题现象描述 在Windows 7系统开机的时候,会出现错误提示:0xc0000102。同时,系统无法正常启动,只能进入预启动维护模式。 问题解决方案 问题出现的可能原因是主引导记录(MBR)或系统分区被破坏或损坏。以下是一些解决方案: 1. 修复MBR或系统分区 1.1 使用Windows 7安装光盘…

    C 2023年5月23日
    00
  • 微信公众平台开发 数据库操作

    微信公众平台开发需要与后端进行数据传输和存储,因此数据存储与数据库操作是非常重要的一部分。本文将详细介绍微信公众平台开发中的数据库操作过程,包括数据库选择、连接、增删改查、数据类型等。 选择数据库 在微信公众平台开发中,我们可以选择适合自己的数据库,比如MySQL、MongoDB、Redis、SQLite、PostgreSQL等。开发者需要根据业务需求和技术…

    C 2023年5月23日
    00
  • C++程序中main(int argc, char *argv[])函数的参数意义

    下面是对“C++程序中main(int argc, char *argv[])函数的参数意义”的完整讲解。 main函数的定义 在C++程序中,main函数是程序的入口,用于在程序开始时运行。main函数有两个参数,其定义形式如下: int main(int argc, char *argv[]); 其中, argc:表示程序运行时命令行参数的个数(包括程序…

    C 2023年5月30日
    00
  • Java日常练习题,每天进步一点点(12)

    Java日常练习题,每天进步一点点(12) – 完整攻略 本题目需要求出给定一组数字中的前k大的数,并进行排序输出。下面是完成此任务的完整攻略: 题目分析 首先,我们需要清楚题目的要求——给定一组数字,求前k大的数并进行排序输出。因此,我们需要以下步骤: 读取输入数字列表; 求出前k大的数字; 将前k大的数字进行排序(从大到小); 输出排序后的前k大数字。 …

    C 2023年5月23日
    00
  • JavaScript中json对象和string对象之间相互转化

    JavaScript中json对象和string对象之间相互转化 在JavaScript中,我们经常需要将JSON对象和String对象相互转换。本文将详细讲解如何进行转换。 JSON对象转String对象 将JSON对象转换为String对象的方法是使用 JSON.stringify() 方法,它可以将一个JSON对象转换为一个格式化后的字符串。具体用法如…

    C 2023年5月23日
    00
  • C语言小程序 杨辉三角示例代码

    下面我来为您详细讲解“C语言小程序 杨辉三角示例代码”的攻略。 什么是杨辉三角 杨辉三角,又称帕斯卡三角形,是二项式系数在三角形中的一种几何排列。它是中国古代数学的杰出研究成果之一,杨辉是唐朝末年、宋朝初年的一位著名数学家。 杨辉三角的规律是:每个数等于它上方两数之和。它的形状如下图所示: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 …

    C 2023年5月23日
    00
  • C语言有哪些特点?

    C语言是一种高级编程语言,具有以下特点: 1. 语言简洁、紧凑 相对于其他编程语言,C语言的核心语法非常简单且紧凑,没有过多的冗余语法,使得程序员可以快速地入手。同时,C语言提供了相对较少的预定义函数(如printf, scanf等),大部分函数都需要自己定义,这也有利于程序员更深入地理解计算机程序的本质。 例如,以下是C语言的“Hello World”程序…

    C 2023年4月27日
    00
  • C语言中如何进行输入和输出操作?

    当我们学习编程语言时,输入和输出是非常重要的操作。在C语言中,可以通过标准输入输出库(stdiu.h)来实现输入和输出操作。 标准输入输出库 标准输入输出库是C语言中广泛使用的库,它提供了许多函数用于输入输出操作。下面是一些常用的函数: scanf():从标准输入流中读取数据并将其存储在变量中。 printf():将数据输出到标准输出流。 getchar()…

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