#include #include #include

using namespace std;

class Book { public: string title; string author; bool available;

Book(string title, string author) {
    this->title = title;
    this->author = author;
    this->available = true;
}

};

class Library { public: vector books;

void addBook(Book book) {
    books.push_back(book);
}

void deleteBook(string title) {
    for (int i = 0; i < books.size(); i++) {
        if (books[i].title == title) {
            books.erase(books.begin() + i);
            break;
        }
    }
}

void borrowBook(string title) {
    for (int i = 0; i < books.size(); i++) {
        if (books[i].title == title) {
            if (books[i].available) {
                books[i].available = false;
                cout << "Successfully borrowed '" << title << "\'" << endl;
            } else {
                cout << "The book is not available" << endl;
            }
            break;
        }
    }
}

void returnBook(string title) {
    for (int i = 0; i < books.size(); i++) {
        if (books[i].title == title) {
            books[i].available = true;
            cout << "Successfully returned '" << title << "\'" << endl;
            break;
        }
    }
}

void displayBooks() {
    for (int i = 0; i < books.size(); i++) {
        cout << "Title: '" << books[i].title << "\'" << endl;
        cout << "Author: '" << books[i].author << "\'" << endl;
        cout << "Available: '" << (books[i].available ? "Yes" : "No") << "\'" << endl;
        cout << endl;
    }
}

};

int main() { Library library;

while (true) {
    cout << "1. Add book" << endl;
    cout << "2. Delete book" << endl;
    cout << "3. Borrow book" << endl;
    cout << "4. Return book" << endl;
    cout << "5. Display books" << endl;
    cout << "0. Exit" << endl;
    cout << "Enter your choice: ";

    int choice;
    cin >> choice;

    switch (choice) {
        case 1: {
            cout << "Enter title: ";
            string title;
            cin.ignore();
            getline(cin, title);
            cout << "Enter author: ";
            string author;
            getline(cin, author);
            Book book(title, author);
            library.addBook(book);
            break;
        }
        case 2: {
            cout << "Enter title: ";
            string title;
            cin.ignore();
            getline(cin, title);
            library.deleteBook(title);
            break;
        }
        case 3: {
            cout << "Enter title: ";
            string title;
            cin.ignore();
            getline(cin, title);
            library.borrowBook(title);
            break;
        }
        case 4: {
            cout << "Enter title: ";
            string title;
            cin.ignore();
            getline(cin, title);
            library.returnBook(title);
            break;
        }
        case 5: {
            library.displayBooks();
            break;
        }
        case 0: {
            return 0;
        }
        default: {
            cout << "Invalid choice" << endl;
            break;
        }
    }
}

}

// 逐句分析代码的含义

// 1. 包括必要的头文件 // 2. 使用标准命名空间 std // 3. 声明一个 Book 类,具有成员变量 title、author 和 available,以及一个构造函数,用于初始化这些成员变量 // 4. 声明一个 Library 类,具有一个 vector 类型的 books 成员变量,以及 addBook、deleteBook、borrowBook、returnBook 和 displayBooks 等成员函数 // 5. addBook 函数用于向图书馆中添加书籍,将书籍对象 push_back 到 books 向量中 // 6. deleteBook 函数用于删除图书馆中的书籍,通过遍历 books 向量找到匹配的书籍,并使用 erase 函数从向量中删除 // 7. borrowBook 函数用于借阅图书馆中的书籍,通过遍历 books 向量找到匹配的书籍,并检查书籍的 available 状态,如果可借阅,则将 available 状态设置为 false,否则输出提示信息 // 8. returnBook 函数用于归还图书馆中的书籍,通过遍历 books 向量找到匹配的书籍,并将 available 状态设置为 true // 9. displayBooks 函数用于显示图书馆中的所有书籍的信息,通过遍历 books 向量输出每本书的标题、作者和 available 状态 // 10. main 函数是程序的入口点,创建了一个 Library 对象 library,并通过 while 循环不断显示菜单选项,根据用户的选择调用相应的成员函数进行操作 // 11. 在每个菜单选项中,用户可以输入相应的参数,例如添加书籍的标题和作者、删除书籍的标题、借阅书籍的标题、归还书籍的标题,或者直接选择显示所有书籍的选项

C++ 图书馆管理系统:添加、删除、借阅、归还书籍

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

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