21xrx.com
2025-04-03 16:05:04 Thursday
文章检索 我的文章 写文章
C++实践报告:电话簿管理系统
2023-06-24 21:45:03 深夜i     50     0
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++语言开发的电话簿管理系统,具有增删查改等基本的电话簿管理功能,并支持大量数据存储和操作。通过使用该系统可以方便地进行电话簿管理,提高管理效率,为我们的日常生活带来了很大的方便。

  
  

评论区

请求出错了