首頁 >後端開發 >C++ >如何透過C++編寫一個簡單的通訊錄程式?

如何透過C++編寫一個簡單的通訊錄程式?

PHPz
PHPz原創
2023-11-02 17:05:061396瀏覽

如何透過C++編寫一個簡單的通訊錄程式?

如何透過C 寫一個簡單的通訊錄程式?

引言:

在現代社會中,通訊錄是一種常見的工具,用於儲存和管理個人聯絡人的基本信息,如姓名、電話號碼和地址等。在本文中,我們將詳細介紹如何使用C 編寫一個簡單的通訊錄程式。

正文:

步驟1:定義地址簿項目的結構

首先,我們需要定義一個結構來表示地址簿中的每個項目。這個結構可以包含姓名、電話號碼和地址等欄位。例如,我們可以使用以下程式碼定義一個名為「AddressBookEntry」的結構:

struct AddressBookEntry {
    std::string name;
    std::string phoneNumber;
    std::string address;
};

步驟2:實作通訊錄程式的基本功能

接下來,我們需要實作一些基本功能來操作地址簿,包括新增條目、查找條目、更新條目和刪除條目等功能。我們可以使用C 的容器類別來儲存地址簿條目,例如vector或list。以下是一個簡單的實作範例:

#include <iostream>
#include <vector>

std::vector<AddressBookEntry> addressBook; // 存储地址簿条目的全局变量

// 添加新条目
void addEntry() {
    AddressBookEntry entry;
    std::cout << "请输入姓名:";
    std::getline(std::cin, entry.name);
    std::cout << "请输入电话号码:";
    std::getline(std::cin, entry.phoneNumber);
    std::cout << "请输入地址:";
    std::getline(std::cin, entry.address);
    addressBook.push_back(entry);
    std::cout << "新增条目成功!
";
}

// 查找条目
void findEntry() {
    std::string name;
    std::cout << "请输入要查找的姓名:";
    std::getline(std::cin, name);
    for (const auto& entry : addressBook) {
        if (entry.name == name) {
            std::cout << "姓名:" << entry.name << "
";
            std::cout << "电话号码:" << entry.phoneNumber << "
";
            std::cout << "地址:" << entry.address << "
";
            return;
        }
    }
    std::cout << "未找到匹配的条目。
";
}

// 更新条目
void updateEntry() {
    std::string name;
    std::cout << "请输入要更新的姓名:";
    std::getline(std::cin, name);
    for (auto& entry : addressBook) {
        if (entry.name == name) {
            std::cout << "请输入新的电话号码:";
            std::getline(std::cin, entry.phoneNumber);
            std::cout << "请输入新的地址:";
            std::getline(std::cin, entry.address);
            std::cout << "更新条目成功!
";
            return;
        }
    }
    std::cout << "未找到匹配的条目。
";
}

// 删除条目
void deleteEntry() {
    std::string name;
    std::cout << "请输入要删除的姓名:";
    std::getline(std::cin, name);
    for (auto it = addressBook.begin(); it != addressBook.end(); ++it) {
        if (it->name == name) {
            addressBook.erase(it);
            std::cout << "删除条目成功!
";
            return;
        }
    }
    std::cout << "未找到匹配的条目。
";
}

// 显示地址簿
void displayAddressBook() {
    if (addressBook.empty()) {
        std::cout << "地址簿为空。
";
        return;
    }
    for (const auto& entry : addressBook) {
        std::cout << "姓名:" << entry.name << "
";
        std::cout << "电话号码:" << entry.phoneNumber << "
";
        std::cout << "地址:" << entry.address << "
";
    }
}

// 主菜单
void mainMenu() {
    std::cout << "1. 添加新条目
";
    std::cout << "2. 查找条目
";
    std::cout << "3. 更新条目
";
    std::cout << "4. 删除条目
";
    std::cout << "5. 显示地址簿
";
    std::cout << "0. 退出程序
";
    std::cout << "请选择操作:";
}

int main() {
    int choice;
    
    do {
        mainMenu();
        std::cin >> choice;
        std::cin.ignore(); // 忽略输入缓冲区中的换行符
        std::cout << "
";
        
        switch (choice) {
            case 1:
                addEntry();
                break;
            case 2:
                findEntry();
                break;
            case 3:
                updateEntry();
                break;
            case 4:
                deleteEntry();
                break;
            case 5:
                displayAddressBook();
                break;
            case 0:
                std::cout << "退出程序。
";
                break;
            default:
                std::cout << "无效的选择。
";
                break;
        }
        
        std::cout << "
";
    } while (choice != 0);
    
    return 0;
}

結論:

透過上述步驟,我們已經成功地用C 編寫了一個簡單的通訊錄程式。這個程式可以新增新的通訊錄條目,尋找、更新和刪除現有條目,並能以易讀的方式顯示整個通訊錄。你可以根據需求進行進一步的擴展和改進。

希望這篇文章能幫助你入門C 編程,並成功開發一個實用的通訊錄程式!

以上是如何透過C++編寫一個簡單的通訊錄程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn