C++实现简易通讯录管理系统

C++实现简易通讯录管理系统

项目简介

本文主要介绍如何使用C++实现一个简易的通讯录管理系统,基本功能包括添加联系人信息、显示通讯录中的联系人信息、删除联系人信息、查找联系人信息、修改联系人信息。

实现步骤

  1. 定义联系人结构体

c++
struct Person {
string name; // 姓名
int age; // 年龄
string phone; // 电话号码
string sex; // 性别
};

  1. 创建通讯录管理类

c++
class AddressBook {
public:
// 构造函数
AddressBook();
// 添加联系人
void addPerson();
// 显示联系人信息
void showPerson();
// 查找联系人
void findPerson();
// 删除联系人
void deletePerson();
// 修改联系人
void modifyPerson();
private:
vector<Person> m_personList; // 通讯录中的联系人列表
};

  1. 实现通讯录管理类的具体函数

(1) 构造函数

c++
AddressBook::AddressBook()
{
m_personList.clear();
}

(2) 添加联系人

```c++
void AddressBook::addPerson()
{
cout << "姓名: ";
string name;
cin >> name;

   cout << "年龄: ";
   int age;
   cin >> age;

   cout << "电话: ";
   string phone;
   cin >> phone;

   cout << "性别: ";
   string sex;
   cin >> sex;

   Person person = { name, age, phone, sex };
   m_personList.push_back(person);

}
```

(3) 显示联系人信息

c++
void AddressBook::showPerson()
{
cout << "---------------------------------------" << endl;
cout << "姓名\t年龄\t电话\t性别" << endl;
for (int i = 0; i < m_personList.size(); i++) {
cout << m_personList[i].name << "\t"
<< m_personList[i].age << "\t"
<< m_personList[i].phone << "\t"
<< m_personList[i].sex << endl;
}
cout << "---------------------------------------" << endl;
}

(4) 查找联系人

```c++
void AddressBook::findPerson()
{
cout << "请输入要查找的联系人姓名: ";
string name;
cin >> name;

   for (int i = 0; i < m_personList.size(); i++) {
       if (m_personList[i].name == name) {
           cout << "姓名\t年龄\t电话\t性别" << endl;
           cout << m_personList[i].name << "\t"
               << m_personList[i].age << "\t"
               << m_personList[i].phone << "\t"
               << m_personList[i].sex << endl;
           return;
       }
   }
   cout << "没有找到联系人" << endl;

}
```

(5) 删除联系人

```c++
void AddressBook::deletePerson()
{
cout << "请输入要删除的联系人姓名: ";
string name;
cin >> name;

   for (vector<Person>::iterator it = m_personList.begin();
        it != m_personList.end(); it++) {
       if (it->name == name) {
           m_personList.erase(it);
           cout << "联系人已删除" << endl;
           return;
       }
   }
   cout << "没有找到联系人" << endl;

}
```

(6) 修改联系人

```c++
void AddressBook::modifyPerson()
{
cout << "请输入要修改的联系人姓名: ";
string name;
cin >> name;

   for (int i = 0; i < m_personList.size(); i++) {
       if (m_personList[i].name == name) {
           cout << "请输入要修改的信息(姓名 年龄 电话 性别): ";
           Person person;
           cin >> person.name >> person.age >> person.phone >> person.sex;
           m_personList[i] = person;
           cout << "联系人信息已修改" << endl;
           return;
       }
   }
   cout << "没有找到联系人" << endl;

}
```

  1. 创建一个测试函数

```c++
void test()
{
AddressBook addressBook;

   while (true) {
       cout << "---------------------------------------" << endl;
       cout << "请选择操作: " << endl;
       cout << "1. 添加联系人" << endl;
       cout << "2. 显示所有联系人" << endl;
       cout << "3. 查找联系人" << endl;
       cout << "4. 删除联系人" << endl;
       cout << "5. 修改联系人信息" << endl;
       cout << "6. 退出通讯录" << endl;
       cout << "---------------------------------------" << endl;

       cout << "请输入你选择的操作编号: ";
       int choice;
       cin >> choice;

       switch (choice)
       {
       case 1:
           addressBook.addPerson();
           break;
       case 2:
           addressBook.showPerson();
           break;
       case 3:
           addressBook.findPerson();
           break;
       case 4:
           addressBook.deletePerson();
           break;
       case 5:
           addressBook.modifyPerson();
           break;
       case 6:
           cout << "Goodbye!" << endl;
           return;
       default:
           cout << "输入错误,请重新输入" << endl;
           break;
       }
   }

}
```

  1. 在main函数中调用测试函数

c++
int main()
{
test();
return 0;
}

示例说明

示例一

当我们运行程序并选择添加联系人操作时,按照提示输入联系人的信息:

请选择操作: 
1. 添加联系人
2. 显示所有联系人
3. 查找联系人
4. 删除联系人
5. 修改联系人信息
6. 退出通讯录
---------------------------------------
请输入你选择的操作编号: 1
姓名: Tom
年龄: 28
电话: 139xxxxxxxx
性别: 男

我们可以通过选择“显示所有联系人”操作,来查看当前通讯录中的联系人:

请选择操作: 
1. 添加联系人
2. 显示所有联系人
3. 查找联系人
4. 删除联系人
5. 修改联系人信息
6. 退出通讯录
---------------------------------------
请输入你选择的操作编号: 2
---------------------------------------
姓名    年龄    电话      性别
Tom    28      139xxxxxxxx    男
---------------------------------------

示例二

当我们运行程序并选择查找联系人操作时,按照提示输入要查找的联系人姓名:

请选择操作: 
1. 添加联系人
2. 显示所有联系人
3. 查找联系人
4. 删除联系人
5. 修改联系人信息
6. 退出通讯录
---------------------------------------
请输入你选择的操作编号: 3
请输入要查找的联系人姓名: Tom

如果通讯录中存在该联系人,则会输出该联系人的信息:

姓名    年龄    电话       性别
Tom    28      139xxxxxxxx    男

如果通讯录中不存在该联系人,则会输出“没有找到联系人”。

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

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

相关文章

  • vs2005编译时出现C2859错误该怎么办?

    题目中提到的C2859错误是VS2005编译器出现的一种错误,主要是因为编译器没有足够的内存来处理源代码的语法。 解决方法如下: 方法一: 打开项目工程,找到Solution Explorer中的“.vcxproj”文件。 在文件夹中找到“ClCompile”节点,将“AdditionalOptions”项目的信息更改为“/Zm300”。 重新编译项目。 这…

    C 2023年5月23日
    00
  • Beego中ORM操作各类数据库连接方式详细示例

    我来为您详细讲解一下“Beego中ORM操作各类数据库连接方式详细示例”的完整攻略。 什么是Beego ORM Beego ORM是Beego框架中的ORM组件,它可以方便快捷地与数据库进行交互。它支持常用的数据库,如MySQL、PostgreSQL等。 Beego ORM常用方法 Beego ORM提供了丰富的方法,常用的有: Insert:插入一条记录到…

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

    下面是vscode C++远程调试运行的攻略: 准备工作 首先,我们需要在本地安装 Visual Studio Code 和 C++ 编译器,以及在远程服务器上安装 gdbserver 和相应的 C++ 编译器。 安装 Visual Studio Code:进入Visual Studio Code官网,下载并安装最新版本。 安装 C++ 编译器:如果你已经安…

    C 2023年5月23日
    00
  • 真三国无双7:猛将传关银屏C技怎么追加攻击? 关银屏C技追加攻击方法介绍

    OK,让我为您详细讲解“真三国无双7:猛将传关银屏C技怎么追加攻击?关银屏C技追加攻击方法介绍”的完整攻略。 猛将传关银屏C技的追加攻击 首先,我们需要知道什么是“C技追加攻击”。在真三国无双7中,每个武将都有自己的C技能,在使用C技能的时候,可以通过按下Attack按钮来进行追加攻击,有些武将的追加攻击可以造成更高的伤害,关银屏就是其中之一。 关银屏的C技…

    C 2023年5月23日
    00
  • C/C++语言printf命令使用方法

    C/C++语言printf命令使用方法 一、printf命令的作用 printf命令是C语言和C++语言中的一个常用的输出函数,用于将指定的文字、字符、数字等信息输出到屏幕上。其语法为: printf("格式化字符串", 输出参数); 其中,格式化字符串是一个包含格式控制字符和普通字符的字符串,控制字符串中使用%占位符表示需要输出的变量的…

    C 2023年5月23日
    00
  • 基于C++中常见内存错误的总结

    让我来为您详细讲解一下“基于C++中常见内存错误的总结”的完整攻略。这篇攻略的目的是总结和介绍C++中常见的内存相关错误,帮助C++程序员更好地解决内存错误的问题。 概述 C++是一门高效并且功能强大的编程语言。然而,由于C++是一门面向底层的语言,程序员需要自己管理内存。如果内存管理不当,会导致一系列的内存错误,比如内存泄露、野指针等。这些内存错误很难被发…

    C 2023年5月22日
    00
  • C++超详细讲解智能指针

    C++超详细讲解智能指针 简介 在C++中,智能指针是一种非常有用、安全的内存管理工具。相较于原始指针,它能够自动释放内存,避免内存泄漏等问题。同时,智能指针也能够避免重复释放内存、访问空指针以及释放栈上分配的内存等问题。本文将对智能指针进行详细的讲解,介绍其类型、使用方法以及注意事项。 智能指针类型 在C++中,常见的智能指针有以下几种: unique_p…

    C 2023年5月23日
    00
  • C语言解决百钱买百鸡问题

    请听我讲解如下。 C语言解决百钱买百鸡问题 问题描述 现在有100元钱,要买100只鸡,公鸡5元/只,母鸡3元/只,小鸡1元/3只。问应该如何购买才能最省钱呢? 解题思路 这是一个典型的线性方程组问题,我们可以列出如下方程: $$\begin{cases}5x + 3y + \frac{1}{3}z = 100 \x + y + z = 100\end{ca…

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