21xrx.com
2024-12-22 21:44:14 Sunday
登录
文章检索 我的文章 写文章
C++通讯录系统分组功能代码
2023-07-11 03:37:30 深夜i     --     --
C++ 通讯录系统 分组功能 代码 程序设计

随着人们网络交流的日益频繁,通讯录系统已经成为我们重要的工具之一。在这一背景下,我们不仅需要一个简单的通讯录系统,还需要更加高效的管理方式。因此,我们需要一个支持分组功能的通讯录系统。本文将介绍使用C++语言实现通讯录系统分组功能的代码。

首先,我们需要定义一个通讯录类(Contact)和一个分组类(Group),它们是我们通讯录系统分组功能的核心。下面是它们的代码:


#include <iostream>

#include <vector>

#include <string>

using namespace std;

class Contact {

public:

  Contact() {}

  Contact(int id, string name, string phone) :

    m_Id(id), m_Name(name), m_Phone(phone) {}

  int GetId() const return m_Id;

  void SetId(int id) m_Id = id;

  string GetName() const return m_Name;

  void SetName(string name) m_Name = name;

  string GetPhone() const return m_Phone;

  void SetPhone(string phone) m_Phone = phone;

private:

  int m_Id;

  string m_Name;

  string m_Phone;

};

class Group {

public:

  Group() {}

  Group(int id, string name) : m_Id(id), m_Name(name) {}

  int GetId() const return m_Id;

  void SetId(int id) m_Id = id;

  string GetName() const return m_Name;

  void SetName(string name) m_Name = name;

  void AddContact(const Contact& contact) { m_Contacts.push_back(contact); }

  void RemoveContact(const Contact& contact) {

    for (auto it = m_Contacts.begin(); it != m_Contacts.end(); ++it) {

      if (it->GetId() == contact.GetId()) {

        m_Contacts.erase(it);

        break;

      }

    }

  }

  vector<Contact> GetAllContacts() return m_Contacts;

private:

  int m_Id;

  string m_Name;

  vector<Contact> m_Contacts;

};

通讯录类中包含id、姓名和电话三个属性,可以通过它们来对联系人进行增删改查操作。分组类中包含id、名称和联系人组成的vector,可以通过AddContact方法添加联系人,通过RemoveContact方法移除联系人,通过GetAllContacts获取分组中的所有联系人。

此外,我们还需要一个管理类(Manager)来管理通讯录系统。下面是它的代码:


class Manager {

public:

  Manager() {}

  void AddGroup(const Group& group) { m_Groups.push_back(group); }

  void RemoveGroup(const Group& group) {

    for (auto it = m_Groups.begin(); it != m_Groups.end(); ++it) {

      if (it->GetId() == group.GetId()) {

        m_Groups.erase(it);

        break;

      }

    }

  }

  vector<Group> GetAllGroups() return m_Groups;

private:

  vector<Group> m_Groups;

};

管理类中包含一个Group类型的vector,可以通过AddGroup方法添加分组,通过RemoveGroup方法移除分组,通过GetAllGroups获取通讯录系统中的所有分组。

至此,我们已经完成了通讯录系统分组功能的实现,下面是一个使用示例:


int main() {

  Manager manager;

  Group friends(1, "Friends");

  Contact contact1(1, "Jack", "123456");

  Contact contact2(2, "Mary", "654321");

  friends.AddContact(contact1);

  friends.AddContact(contact2);

  Group family(2, "Family");

  Contact contact3(3, "Tom", "789456");

  Contact contact4(4, "Lucy", "321654");

  family.AddContact(contact3);

  family.AddContact(contact4);

  manager.AddGroup(friends);

  manager.AddGroup(family);

  auto groups = manager.GetAllGroups();

  for (auto group : groups) {

    cout << "Group " << group.GetId() << ": " << group.GetName() << endl;

    auto contacts = group.GetAllContacts();

    for (auto contact : contacts) {

      cout << "Contact " << contact.GetId() << ": " << contact.GetName() << " " << contact.GetPhone() << endl;

    }

  }

  return 0;

}

首先,我们创建了两个分组Friends和Family以及一些联系人,然后将它们添加到管理类中,最后通过遍历管理类中的所有分组和联系人,将它们输出。

通过上面的代码,我们已经成功实现了通讯录系统分组功能,它使我们更加高效地管理通讯录系统。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复