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日

相关文章

  • FGO伊丽莎白巴陶里怎么样 C龙娘详细分析

    FGO伊丽莎白巴陶里怎么样 C龙娘详细分析 伊丽莎白巴陶里 伊丽莎白巴陶里(以下简称伊丽莎白)是一名SR级从者,属性为从者女性/恶魔。她在游戏中具有比较全面的能力,可以作为团队中的输出和支援,同时还拥有较高的生存能力。 技能分析 歌唱自由 (自身):提升自身攻击力(3宝石)和获得星星(5-10颗),持续3回合。该技能可以大幅提升伊丽莎白的输出能力,同时也可以…

    C 2023年5月23日
    00
  • C/C++实现经典象棋游戏的示例代码

    对于如何实现经典象棋游戏的示例代码,以下是完整的攻略: 1. 准备工作 首先需要认真学习C/C++语言基础知识,包括掌握语法规则、数据类型等基础概念。 其次要了解经典象棋游戏规则,包括象棋棋盘、棋子、走法、胜负判断等方面的知识。可以在网上搜索相关资料并进行学习。 最后,需要掌握C/C++编程语言,并熟练使用相应的开发工具。常用的开发工具有Visual Stu…

    C 2023年5月24日
    00
  • Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.Transformer异常

    框架或应用程序在启动或执行时,可能会抛出各种异常。其中一个常见异常是 java.lang.ClassNotFoundException,这种异常通常表示由类装入器试图加载某个类,但在加载类时未找到相应的类。 当我们的应用程序或框架抛出了 java.lang.ClassNotFoundException: org.apache.commons.collecti…

    C 2023年5月23日
    00
  • C语言实现三子棋实例代码

    C语言实现三子棋实例代码攻略 一、实现思路 三子棋的棋盘大小为3×3,可以定义一个3×3的二维数组表示; 玩家和电脑轮流下棋,可以用一个变量记录当前下棋方,如0代表玩家,1代表电脑; 玩家可以通过输入坐标来下棋,电脑可以随机生成坐标; 每下一步棋都需要检查胜负情况,即检查当前是否有连续的3个棋子相连。 二、实现代码 #include <stdio.h&…

    C 2023年5月23日
    00
  • C语言中如何进行字符串操作?

    C语言是一门强大的编程语言,它提供了多种字符串操作函数,让我们能够更方便地进行字符串处理。下面是一个详细的C语言字符串操作攻略。 字符串表示 C语言中,字符串是字符数组,以空字符(\0)结尾。例如: char str[] = "Hello, World!"; 在这个例子中,我们定义了一个字符数组 str,存储了字符串 “Hello, Wo…

    C 2023年4月27日
    00
  • C++实现日期类(Date)

    下面是实现C++日期类(Date)的完整攻略: 1. 设计类的属性和方法 Date类需要包含年、月、日三个属性,因此我们可以设计如下的类定义: class Date { public: Date(int year = 1970, int month = 1, int day = 1); // 构造函数 void setYear(int year); // 设…

    C 2023年5月23日
    00
  • EIZO CS2731显示器评测 原来好显示器是这样的

    EIZO CS2731显示器评测:原来好显示器是这样的 一、引言 EIZO CS2731是一款高级的色彩管理显示器,它使用了WideGamut LED面板,能提供高达99%的Adobe RGB色彩覆盖率,以及100%sRGB色彩覆盖率。这款显示器的宽屏比例和解析度,以及内置的色彩校准器和LUT表,使其尤为适合专业的照片编辑、视频编辑和图形设计人员使用。接下来…

    C 2023年5月22日
    00
  • C语言 strrchr()函数

    C语言strrchr()函数使用攻略 1. 介绍 C语言中的strrchr()函数用于查找字符串中最后一次出现某个字符的位置,即在一个字符串中从后向前查找第一次出现指定字符的位置。strrchr()函数在头文件string.h中声明,函数原型为: char *strrchr(const char *s, int c); 2. 参数 strrchr()函数的参…

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