以下是一个简单的图书馆类的示例代码:

#include <vector>
#include <string>
#include <iostream>

class Book {
public:
    Book(std::string title, std::string author, int year, bool available)
        : title_(title), author_(author), year_(year), available_(available) {}

    std::string getTitle() const { return title_; }
    std::string getAuthor() const { return author_; }
    int getYear() const { return year_; }
    bool isAvailable() const { return available_; }
    void setAvailable(bool available) { available_ = available; }

private:
    std::string title_;
    std::string author_;
    int year_;
    bool available_;
};

class Library {
public:
    void addBook(const Book& book) {
        books_.push_back(book);
    }

    void removeBook(const Book& book) {
        for (auto it = books_.begin(); it != books_.end(); ++it) {
            if (*it == book) {
                books_.erase(it);
                return;
            }
        }
    }

    std::vector<Book> searchBooks(const std::string& title, const std::string& author, int year) {
        std::vector<Book> result;
        for (const auto& book : books_) {
            if (book.getTitle() == title && book.getAuthor() == author && book.getYear() == year) {
                result.push_back(book);
            }
        }
        return result;
    }

    void printBooks() const {
        for (const auto& book : books_) {
            std::cout << book.getTitle() << " by " << book.getAuthor() << " (" << book.getYear() << ")";
            if (book.isAvailable()) {
                std::cout << " - available" << std::endl;
            } else {
                std::cout << " - not available" << std::endl;
            }
        }
    }

private:
    std::vector<Book> books_;
};

int main() {
    Library library;

    Book book1("The C++ Programming Language", "Bjarne Stroustrup", 1985, true);
    Book book2("Effective C++", "Scott Meyers", 1992, true);
    Book book3("Design Patterns", "Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides", 1994, false);

    library.addBook(book1);
    library.addBook(book2);
    library.addBook(book3);

    library.printBooks();

    std::vector<Book> results = library.searchBooks("Design Patterns", "Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides", 1994);
    std::cout << "Search results:" << std::endl;
    for (const auto& book : results) {
        std::cout << book.getTitle() << " by " << book.getAuthor() << " (" << book.getYear() << ")" << std::endl;
    }

    return 0;
}

这个图书馆类包含了添加书籍、删除书籍、搜索书籍和打印书籍列表等基本功能。每本书都有标题、作者、出版年份和可用性属性。搜索函数可以根据书名、作者和年份进行搜索,返回匹配的书籍列表。打印函数会列出所有书籍的信息,包括标题、作者、出版年份和可用性状态。

使用现代C++设计一个图书馆类

原文地址: https://www.cveoy.top/t/topic/Juh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录