21xrx.com
2024-11-05 14:44:52 Tuesday
登录
文章检索 我的文章 写文章
C++实践报告:电话簿管理系统
2023-07-13 11:45:42 深夜i     --     --
C++ 电话簿 管理系统 实践报告 数据结构

本篇文章将介绍一款基于C++语言开发的电话簿管理系统。该系统具有增删查改等基本的电话簿管理功能,并可支持大量数据存储和操作。下面我们将详细介绍这个系统。

一、设计思路

该系统采用面向对象的设计思想,关键类有Person、PhoneNumber和PhoneBook类。其中Person类表示一个电话簿中的一个人,包含姓名和多个电话号码。PhoneNumber类表示一个电话号码,包含类型和号码字符串。PhoneBook类表示整个电话簿,包含多个Person对象。

在程序运行时,用户可以通过控制台输入各种指令来进行电话簿管理,包括添加/删除联系人、添加/删除电话号码、修改联系人信息和查找联系人。具体指令如下:

1. 添加联系人:add_person

2. 删除联系人:delete_person

3. 添加电话号码:add_phone

4. 删除电话号码:delete_phone

5. 修改联系人信息:edit_person

6. 查找联系人:search_person

7. 显示全部联系人:view_all

二、代码实现

该系统使用C++语言实现,主要代码如下:


class PhoneNumber

public:

  string type;

  string number;

;

class Person

public:

  string name;

  vector<PhoneNumber> phone_numbers;

;

class PhoneBook{

public:

  vector<Person> persons;

  void AddPerson(Person person);

  void DeletePerson(string name);

  void AddPhoneNumber(string name, PhoneNumber phone_number);

  void DeletePhoneNumber(string name, int index);

  void EditPerson(string name, string new_name, vector<PhoneNumber> new_phone_numbers);

  Person SearchPerson(string name);

  void ViewAll();

};

PhoneBook类中的函数实现如下:


void PhoneBook::AddPerson(Person person){

  persons.push_back(person);

}

void PhoneBook::DeletePerson(string name){

  for(int i = 0; i < persons.size(); i++){

    if(persons[i].name == name){

      persons.erase(persons.begin() + i);

      break;

    }

  }

}

void PhoneBook::AddPhoneNumber(string name, PhoneNumber phone_number){

  for(int i = 0; i < persons.size(); i++){

    if(persons[i].name == name){

      persons[i].phone_numbers.push_back(phone_number);

      break;

    }

  }

}

void PhoneBook::DeletePhoneNumber(string name, int index){

  for(int i = 0; i < persons.size(); i++){

    if(persons[i].name == name){

      persons[i].phone_numbers.erase(persons[i].phone_numbers.begin() + index);

      break;

    }

  }

}

void PhoneBook::EditPerson(string name, string new_name, vector<PhoneNumber> new_phone_numbers){

  for(int i = 0; i < persons.size(); i++){

    if(persons[i].name == name){

      persons[i].name = new_name;

      persons[i].phone_numbers = new_phone_numbers;

      break;

    }

  }

}

Person PhoneBook::SearchPerson(string name){

  for(int i = 0; i < persons.size(); i++){

    if(persons[i].name == name){

      return persons[i];

    }

  }

}

void PhoneBook::ViewAll(){

  for(int i = 0; i < persons.size(); i++){

    cout << "Name: " << persons[i].name << endl;

    for(int j = 0; j < persons[i].phone_numbers.size(); j++){

      cout << "Phone Number " << j + 1 << " Type: " << persons[i].phone_numbers[j].type

      << " Number: " << persons[i].phone_numbers[j].number << endl;

    }

  }

}

三、使用效果

使用该系统可以方便地进行电话簿管理。用户可以添加、删除、修改联系人信息,并可以添加、删除电话号码。同时也可以通过姓名查找联系人,并可以显示全部联系人信息。

使用该系统的效果如下图所示:

![image-20210912152112440](https://cdn.jsdelivr.net/gh/Hello-GYT/blog-images/img/20210912162118.png)

四、总结

本篇文章介绍了基于C++语言开发的电话簿管理系统,具有增删查改等基本的电话簿管理功能,并支持大量数据存储和操作。通过使用该系统可以方便地进行电话簿管理,提高管理效率,为我们的日常生活带来了很大的方便。

  
  

评论区

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