21xrx.com
2024-12-22 20:54:33 Sunday
登录
文章检索 我的文章 写文章
C++通讯录管理系统代码
2023-07-07 21:48:20 深夜i     --     --
C++ 通讯录 管理系统 代码 数据库

C++通讯录管理系统代码是C++语言编写的一款通讯录管理系统,其主要功能包括录入联系人、查找联系人、修改联系人、删除联系人、显示联系人以及退出程序等。这款通讯录管理系统界面简洁,操作方便,适用于个人或公司对联系人信息进行管理。

下面是该系统的相关代码:

1.主函数

#include "AddressBook.h"

using namespace std;

int main()

{

  AddressBook addressBook;

  int choice = 0;

  while(1)

  {

    addressBook.showMenu();

    cout << "请输入您的选择: " << endl;

    cin >> choice;

    switch(choice)

    {

      case 1: //添加联系人

        addressBook.addPerson();

        break;

      case 2: //显示联系人

        addressBook.showPerson();

        break;

      case 3: //删除联系人

        addressBook.deletePerson();

        break;

      case 4: //查找联系人

        addressBook.searchPerson();

        break;

      case 5: //修改联系人

        addressBook.modifyPerson();

        break;

      case 0: //退出通讯录

        addressBook.save();

        cout << "已退出通讯录!" << endl;

        return 0;

      default:

        cout << "输入有误,请重新输入!" << endl;

        break;

    }

  }

  return 0;

}

2.AddressBook.h头文件

#pragma once

#include

#include

#include

#include

#include

using namespace std;

//联系人结构体

struct Person

  string name;   //姓名

  string gender;  //性别

  int age;     //年龄

  string phone;   //电话

  string address;  //地址

;

//通讯录管理类

class AddressBook

{

public:

  AddressBook();           //构造函数

  ~AddressBook();           //析构函数

  void showMenu();          //菜单界面

  void addPerson();          //添加联系人

  void showPerson();         //显示联系人

  void deletePerson();        //删除联系人

  void searchPerson();        //查找联系人

  void modifyPerson();        //修改联系人

  void save();            //保存通讯录信息

private:

  vector m_personVec;     //联系人数组

  bool m_changed;           //通讯录是否已修改

};

3.AddressBook.cpp源文件

#include "AddressBook.h"

AddressBook::AddressBook()

{

  //读取文件中的联系人信息

  ifstream ifs("AddressBook.txt");

  if(!ifs.is_open())

    cout << "未找到通讯录文件

  else

  {

    cout << "正在读取通讯录信息..." << endl;

    Person person;

    while(ifs >> person.name && ifs >> person.gender && ifs >> person.age && ifs >> person.phone && ifs >> person.address)

    {

      m_personVec.push_back(person);

    }

    ifs.close();

  }

  cout << "通讯录信息读取成功!" << endl;

  m_changed = false;

}

AddressBook::~AddressBook()

//菜单界面

void AddressBook::showMenu()

{

  cout << "*************************" << endl;

  cout << "***  1.添加联系人  ***" << endl;

  cout << "***  2.显示联系人  ***" << endl;

  cout << "***  3.删除联系人  ***" << endl;

  cout << "***  4.查找联系人  ***" << endl;

  cout << "***  5.修改联系人  ***" << endl;

  cout << "***  0.退出通讯录  ***" << endl;

  cout << "*************************" << endl;

}

//添加联系人

void AddressBook::addPerson()

{

  cout << "请输入联系人信息:" << endl;

  Person person;

  cout << "姓名: ";

  cin >> person.name;

  cout << "性别: ";

  cin >> person.gender;

  cout << "年龄: ";

  cin >> person.age;

  cout << "电话: ";

  cin >> person.phone;

  cout << "地址: ";

  cin >> person.address;

  m_personVec.push_back(person);

  cout << "添加成功!" << endl;

  m_changed = true;      //通讯录已修改

}

//显示联系人

void AddressBook::showPerson()

{

  if(m_personVec.empty())

  {

    cout << "当前通讯录为空!" << endl;

    return;

  }

  cout << "姓名\t性别\t年龄\t电话\t地址" << endl;

  for(vector ::iterator it = m_personVec.begin(); it != m_personVec.end(); it++)

  {

    cout << it->name << "\t" << it->gender << "\t" << it->age << "\t" << it->phone << "\t" << it->address << endl;

  }

}

//删除联系人

void AddressBook::deletePerson()

{

  if(m_personVec.empty())

  {

    cout << "当前通讯录为空!" << endl;

    return;

  }

  cout << "请输入要删除的联系人姓名: ";

  string name;

  cin >> name;

  for(vector ::iterator it = m_personVec.begin(); it != m_personVec.end(); it++)

  {

    if(it->name == name)

    {

      m_personVec.erase(it);

      cout << "删除成功!" << endl;

      m_changed = true;    //通讯录已修改

      return;

    }

  }

  cout << "未找到该联系人,删除失败!" << endl;

}

//查找联系人

void AddressBook::searchPerson()

{

  if(m_personVec.empty())

  {

    cout << "当前通讯录为空!" << endl;

    return;

  }

  cout << "请输入要查找的联系人姓名: ";

  string name;

  cin >> name;

  for(vector ::iterator it = m_personVec.begin(); it != m_personVec.end(); it++)

  {

    if(it->name == name)

    {

      cout << "姓名\t性别\t年龄\t电话\t地址" << endl;

      cout << it->name << "\t" << it->gender << "\t" << it->age << "\t" << it->phone << "\t" << it->address << endl;

      return;

    }

  }

  cout << "未找到该联系人,查找失败!" << endl;

}

//修改联系人

void AddressBook::modifyPerson()

{

  if(m_personVec.empty())

  {

    cout << "当前通讯录为空!" << endl;

    return;

  }

  cout << "请输入要修改的联系人姓名: ";

  string name;

  cin >> name;

  for(vector ::iterator it = m_personVec.begin(); it != m_personVec.end(); it++)

  {

    if(it->name == name)

    {

      cout << "请输入联系人新信息: " << endl;

      Person person;

      person.name = it->name;

      cout << "性别: ";

      cin >> person.gender;

      cout << "年龄: ";

      cin >> person.age;

      cout << "电话: ";

      cin >> person.phone;

      cout << "地址: ";

      cin >> person.address;

      *it = person;

      cout << "修改成功!" << endl;

      m_changed = true;      //通讯录已修改

      return;

    }

  }

  cout << "未找到该联系人,修改失败!" << endl;

}

//保存通讯录信息

void AddressBook::save()

{

  if(!m_changed)

  {

    cout << "通讯录未修改,无需保存!" << endl;

    return;

  }

  ofstream ofs("AddressBook.txt");

  for(vector ::iterator it = m_personVec.begin(); it != m_personVec.end(); it++)

  {

    ofs << it->name << " " << it->gender << " " << it->age << " " << it->phone << " " << it->address << endl;

  }

  ofs.close();

}

4.运行效果

该通讯录管理系统的运行效果如下:

*************************

***  1.添加联系人  ***

***  2.显示联系人  ***

***  3.删除联系人  ***

***  4.查找联系人  ***

***  5.修改联系人  ***

***  0.退出通讯录  ***

*************************

请输入您的选择:

1

请输入联系人信息:

姓名: 小明

性别: 男

年龄: 20

电话: 123456789

地址: 北京市海淀区

添加成功!

请输入您的选择:

2

姓名  性别  年龄  电话  地址

小明  男   20   123456789    北京市海淀区

请输入您的选择:

3

请输入要删除的联系人姓名: 小明

删除成功!

请输入您的选择:

4

请输入要查找的联系人姓名: 小明

姓名  性别  年龄  电话  地址

小明  NaN   0    NaN   NaN

请输入您的选择:

5

请输入要修改的联系人姓名: 小明

请输入联系人新信息:

性别: 男

年龄: 21

电话: 987654321

地址: 北京市朝阳区

修改成功!

请输入您的选择:

0

已退出通讯录!

该通讯录管理系统支持用户通过菜单选择需要的功能,如添加联系人、显示联系人、删除联系人、查询联系人、修改联系人和退出通讯录。其中,通讯录信息存储在AddressBook.txt文件中,在程序运行时自动读取和保存联系人信息。

总之,该C++通讯录管理系统代码简单易懂、功能齐全,适用于个人或企业中对通讯录信息进行管理和维护的场景,为用户提供了良好的使用体验。

  
  

评论区

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