您好,登录后才能下订单哦!
通讯录管理系统是一个常见的应用程序,用于存储和管理联系人信息。通过C++编程语言,我们可以实现一个简单的通讯录管理系统,具备添加、删除、查找、修改和显示联系人信息的功能。本文将详细介绍如何使用C++实现一个简单的通讯录管理系统。
在开始编写代码之前,我们需要明确系统的基本需求。一个简单的通讯录管理系统应具备以下功能:
为了实现通讯录管理系统,我们需要设计一个合适的数据结构来存储联系人信息。每个联系人可以包含以下信息:
我们可以使用C++中的结构体(struct
)来表示一个联系人:
struct Contact {
std::string name;
std::string phoneNumber;
std::string email;
};
为了存储多个联系人,我们可以使用std::vector
容器来存储Contact
结构体。
根据需求分析,我们可以将系统分为以下几个功能模块:
首先,我们定义一个Contact
结构体来表示联系人:
#include <string>
struct Contact {
std::string name;
std::string phoneNumber;
std::string email;
};
接下来,我们定义一个AddressBook
类来管理通讯录。该类包含一个std::vector<Contact>
成员变量来存储联系人,并提供添加、删除、查找、修改和显示联系人的方法。
#include <vector>
#include <algorithm>
#include <iostream>
class AddressBook {
private:
std::vector<Contact> contacts;
public:
// 添加联系人
void addContact(const Contact& contact) {
contacts.push_back(contact);
}
// 删除联系人
void deleteContact(const std::string& name) {
contacts.erase(std::remove_if(contacts.begin(), contacts.end(),
[&name](const Contact& contact) { return contact.name == name; }),
contacts.end());
}
// 查找联系人
Contact* findContact(const std::string& name) {
auto it = std::find_if(contacts.begin(), contacts.end(),
[&name](const Contact& contact) { return contact.name == name; });
if (it != contacts.end()) {
return &(*it);
}
return nullptr;
}
// 修改联系人
bool modifyContact(const std::string& name, const Contact& newContact) {
Contact* contact = findContact(name);
if (contact) {
*contact = newContact;
return true;
}
return false;
}
// 显示所有联系人
void displayAllContacts() const {
for (const auto& contact : contacts) {
std::cout << "Name: " << contact.name << "\n"
<< "Phone: " << contact.phoneNumber << "\n"
<< "Email: " << contact.email << "\n\n";
}
}
};
最后,我们编写主函数来实现用户界面,允许用户通过命令行与通讯录管理系统进行交互。
#include <iostream>
#include <limits>
void displayMenu() {
std::cout << "1. Add Contact\n"
<< "2. Delete Contact\n"
<< "3. Find Contact\n"
<< "4. Modify Contact\n"
<< "5. Display All Contacts\n"
<< "6. Exit\n";
}
Contact getContactInfo() {
Contact contact;
std::cout << "Enter name: ";
std::getline(std::cin, contact.name);
std::cout << "Enter phone number: ";
std::getline(std::cin, contact.phoneNumber);
std::cout << "Enter email: ";
std::getline(std::cin, contact.email);
return contact;
}
int main() {
AddressBook addressBook;
int choice;
std::string name;
while (true) {
displayMenu();
std::cout << "Enter your choice: ";
std::cin >> choice;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
switch (choice) {
case 1: {
Contact contact = getContactInfo();
addressBook.addContact(contact);
std::cout << "Contact added successfully.\n";
break;
}
case 2: {
std::cout << "Enter name to delete: ";
std::getline(std::cin, name);
addressBook.deleteContact(name);
std::cout << "Contact deleted successfully.\n";
break;
}
case 3: {
std::cout << "Enter name to find: ";
std::getline(std::cin, name);
Contact* contact = addressBook.findContact(name);
if (contact) {
std::cout << "Contact found:\n"
<< "Name: " << contact->name << "\n"
<< "Phone: " << contact->phoneNumber << "\n"
<< "Email: " << contact->email << "\n";
} else {
std::cout << "Contact not found.\n";
}
break;
}
case 4: {
std::cout << "Enter name to modify: ";
std::getline(std::cin, name);
Contact newContact = getContactInfo();
if (addressBook.modifyContact(name, newContact)) {
std::cout << "Contact modified successfully.\n";
} else {
std::cout << "Contact not found.\n";
}
break;
}
case 5: {
addressBook.displayAllContacts();
break;
}
case 6: {
std::cout << "Exiting...\n";
return 0;
}
default: {
std::cout << "Invalid choice. Please try again.\n";
break;
}
}
}
return 0;
}
在完成代码编写后,我们需要对系统进行功能测试,以确保每个功能模块都能正常工作。以下是一些测试用例:
通过本文的介绍,我们学习了如何使用C++实现一个简单的通讯录管理系统。我们首先进行了需求分析,然后设计了数据结构和功能模块,最后编写了代码并进行了功能测试。这个简单的通讯录管理系统可以作为进一步开发的基础,未来可以添加更多功能,如保存和加载通讯录数据、支持更多联系人信息字段等。希望本文对你理解C++编程和系统设计有所帮助。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。