21xrx.com
2024-11-22 02:18:12 Friday
登录
文章检索 我的文章 写文章
C++通讯录简单项目设计
2023-07-11 03:22:50 深夜i     --     --
C++ 通讯录 简单项目 设计

C++是一种面向对象编程语言,可以用于设计和开发各种应用程序。其中一个很常见的应用就是通讯录。在本篇文章中,我们将讨论如何使用C++编写一个简单的通讯录项目。

首先,让我们明确一下需求和目标。这个项目将需要实现以下功能:

1. 添加联系人:用户可以输入一个新的联系人的姓名、电话和地址,并将其添加到通讯录中。

2. 显示联系人:用户可以查看所有已添加的联系人,并按照姓名(或其他字段)排序。

3. 修改联系人信息:用户可以选择一个已添加的联系人,并更新其姓名、电话或地址。

4. 删除联系人:用户可以选择一个已添加的联系人,并将其从通讯录中删除。

基于以上需求,我们可以设计出通讯录项目的基本结构。我们需要创建一个名为“Contact”的类,并在其中定义相应的成员变量和成员函数。以下是该类的一个示例:


class Contact {

 private:

  string name;

  string phone;

  string address;

 public:

  Contact(string n, string p, string a);

  void setName(string n);

  void setPhone(string p);

  void setAddress(string a);

  string getName();

  string getPhone();

  string getAddress();

};

在此示例中,我们定义了三个私有成员变量:姓名、电话和地址。我们还定义了一个构造函数和一些用于访问和修改这些私有成员变量的公共成员函数。

接下来,我们需要创建一个名为“AddressBook”的类,并在其中定义一些成员函数来管理通讯录。以下是该类的一个示例:


class AddressBook {

 private:

  vector<Contact> contacts;

 public:

  void addContact(Contact contact);

  void displayContacts();

  void editContact(int index);

  void deleteContact(int index);

  void sortContactsByName();

};

在此示例中,我们定义了一个私有成员变量“contacts”,它是一个包含“Contact”对象的向量。我们还定义了一些公共成员函数来添加、显示、编辑、删除和排序联系人。

现在,我们可以开始实现这些成员函数。我们可以使用标准输入输出库和向量操作来实现这些函数。以下是一些示例代码:


void AddressBook::addContact(Contact contact) {

 contacts.push_back(contact);

}

void AddressBook::displayContacts() {

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

  Contact c = contacts[i];

  cout << i << ": " << c.getName() << "\t" << c.getPhone() << "\t" << c.getAddress() << endl;

 }

}

void AddressBook::editContact(int index) {

 Contact c = contacts[index];

 string name, phone, address;

 cout << "Enter new name: ";

 cin >> name;

 c.setName(name);

 cout << "Enter new phone: ";

 cin >> phone;

 c.setPhone(phone);

 cout << "Enter new address: ";

 cin >> address;

 c.setAddress(address);

 contacts[index] = c;

}

void AddressBook::deleteContact(int index) {

 contacts.erase(contacts.begin() + index);

}

void AddressBook::sortContactsByName() {

 sort(contacts.begin(), contacts.end(), [](Contact c1, Contact c2) {

  return c1.getName() < c2.getName();

 });

}

以上代码中,我们基本使用了面向对象的思想,通过调用联系人对象的成员函数来实现通讯录的各种操作。

最后,我们可以创建一个名为“main”的函数,并在其中创建一个“AddressBook”对象。我们可以使用一个简单的循环来实现用户菜单,并调用通讯录函数来执行用户指定的操作。

以下是代码示例:


int main() {

 AddressBook addressBook;

 while (true) {

  cout << "1. Add contact" << endl;

  cout << "2. Display contacts" << endl;

  cout << "3. Edit contact" << endl;

  cout << "4. Delete contact" << endl;

  cout << "5. Sort contacts by name" << endl;

  cout << "Enter your choice: ";

  int choice;

  cin >> choice;

  switch (choice) {

   case 1: {

    string name, phone, address;

    cout << "Enter name: ";

    cin >> name;

    cout << "Enter phone: ";

    cin >> phone;

    cout << "Enter address: ";

    cin >> address;

    Contact contact(name, phone, address);

    addressBook.addContact(contact);

    break;

   }

   case 2: {

    addressBook.displayContacts();

    break;

   }

   case 3: {

    int index;

    cout << "Enter index: ";

    cin >> index;

    addressBook.editContact(index);

    break;

   }

   case 4: {

    int index;

    cout << "Enter index: ";

    cin >> index;

    addressBook.deleteContact(index);

    break;

   }

   case 5: {

    addressBook.sortContactsByName();

    break;

   }

   default:

    cout << "Invalid choice. Please try again." << endl;

   

  }

 }

 return 0;

}

以上就是使用C++编写一个简单的通讯录项目的步骤。通过这个项目,我们可以加深对面向对象编程的理解,并熟悉使用C++实现各种常见操作的方法。

  
  

评论区

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