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日

相关文章

  • C程序 使用递归查找自然数之和

    C程序使用递归查找自然数之和 概述 递归是一种函数自我调用的方式,通过递归可以简洁地解决一些复杂的问题。在C语言中,可以使用递归实现查找自然数之和的功能,本文将详细介绍该功能的实现方法及使用攻略。 实现方法 使用递归计算自然数之和,需要使用到如下几个步骤: 判断递归终止的条件,通常是n变为0或1时返回相应的值。 使用函数自身进行递归调用,将n-1作为参数传入…

    C 2023年5月9日
    00
  • C语言不恰当的指针声明

    请允许我详细讲解一下“C语言不恰当的指针声明”的完整使用攻略。 什么是指针? 在C语言中,指针是一个非常重要的概念,它允许我们在程序执行中动态地修改变量的值,是C语言中的底层机制。指针本身实际上是一个变量,其存储的是某个变量的地址,通过对指针进行操作,可以间接地操作变量本身。 C语言不恰当的指针声明 在C语言中,指针声明必须要明确指明指针指向的数据类型,否则…

    C 2023年5月9日
    00
  • C语言实现简单计算器功能(2)

    当我们实现一个简单的计算器功能时,需要考虑以下几个方面: 用户输入的合法性检查 进行算术运算的函数实现 错误处理和提示信息输出 第一步,我们需要先获取用户输入的表达式,并对其进行合法性检查。用户输入的表达式应该是一个合法的算术表达式,不能含有非法字符,比如字母等。我们可以使用正则表达式来判断用户输入的内容是否合法。 示例1: #include <reg…

    C 2023年5月23日
    00
  • Gin框架之参数绑定的实现

    Gin框架之参数绑定的实现 1. 参数绑定 在Gin框架中,我们可以通过Context结构体中的方法Bind方法来进行参数绑定。Bind方法提供的参数绑定能力非常强大,支持多种类型的参数绑定,例如querystring参数、form参数、json格式参数、xml格式参数等。 2. 示例 2.1 绑定querystring参数 package main imp…

    C 2023年5月23日
    00
  • C++设计模式之单例模式详解

    下面是详细讲解“C++设计模式之单例模式详解”的完整攻略。 什么是单例模式? 单例模式是一种创建型设计模式,用于确保类只有一个实例,并提供全局访问点。 为什么使用单例模式? 在某些情况下,我们需要确保在整个应用程序中只有一个实例化对象。单例模式使我们能够确保这一点。此外,单例模式还可以提供全局访问点,以便在应用程序中的任何地方都可以轻松访问单例对象。 实现单…

    C 2023年5月22日
    00
  • 深入剖析OpenMP锁的原理与实现

    深入剖析OpenMP锁的原理与实现 什么是OpenMP锁 OpenMP是一种基于共享内存计算模型的多线程并行编程框架,而OpenMP锁则是其中的一种同步机制,用于解决多线程并发执行时的数据同步问题。 OpenMP锁的实现原理 OpenMP锁实现的原理是比较简单的,通过使用线程锁机制来保证不同线程对临界资源的访问顺序以及数据的正确性。 具体来说,OpenMP锁…

    C 2023年5月23日
    00
  • 提高C程序效率的10种有效方法

    提高C程序效率的10种有效方法 在编写C程序时,有时我们需要注重程序的效率,尤其是在处理大数据、复杂算法和高性能计算等场景下更是如此。下面是10种提高C程序效率的有效方法: 1. 使用指针而不是数组下标 指针和数组下标都可以用来访问数组元素,但是指针更加高效。数组下标需要进行大小检查,并且要在内存中查找元素的位置;而指针直接指向元素的地址,更加快速高效。例如…

    C 2023年5月23日
    00
  • C语言实现学生信息管理系统(多文件)

    C语言实现学生信息管理系统(多文件)攻略 1. 项目概述 该项目是一个基于C语言的学生信息管理系统,实现了学生的增删改查等功能,使用了多文件的方式组织代码,提高了代码的可维护性。 2. 实现步骤 2.1 文件结构 首先建立项目文件夹,并在文件夹中创建如下的文件: main.c:包含主函数和系统的核心功能代码; student.c:包含学生信息相关的实现代码;…

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