名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波·莫听穿林打叶声》
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
目录
- 一、项目描述
 - 二、项目结构
 - 三、项目步骤
 
- 步骤1:定义Book类
 - 步骤2:实现主程序
 - 四、功能点总结
 - 五、项目扩展方向
 更多项目内容,请关注我、订阅专栏《项目探索实验室》,内容持续更新中…
项目名称:简单的图书管理系统
一、项目描述
创建一个C++程序,用于管理图书馆的书籍信息。程序应支持以下功能:
- 添加图书信息(书名、作者、ISBN)。
 - 更新图书信息。
 - 删除图书。
 - 查找并显示图书信息。
 - 显示所有图书的信息。
 
二、项目结构
- Book类:用于存储图书的信息。
 - 主程序:提供菜单选项供用户操作。
 
三、项目步骤
步骤1:定义Book类
定义一个Book类,包含书名、作者、ISBN。
#include <iostream>
#include <string>
using namespace std;
class Book {
private:
    string title;
    string author;
    string ISBN;
public:
    Book(string t, string a, string i) : title(t), author(a), ISBN(i) {}
    void update(string t, string a, string i) {
        title = t;
        author = a;
        ISBN = i;
    }
    void display() const {
        cout << "Title: " << title << ", Author: " << author << ", ISBN: " << ISBN << endl;
    }
    string getISBN() const {
        return ISBN;
    }
};
 
步骤2:实现主程序
在主程序中,提供一个菜单,允许用户添加图书、更新图书信息、删除图书、查找图书等。
#include "Book.h"
#include <iostream>
#include <vector>
using namespace std;
void displayMenu() {
    cout << "1. 添加图书" << endl;
    cout << "2. 更新图书信息" << endl;
    cout << "3. 删除图书" << endl;
    cout << "4. 查找图书" << endl;
    cout << "5. 显示所有图书信息" << endl;
    cout << "6. 退出" << endl;
}
void addBook(vector<Book> &books) {
    string title, author, ISBN;
    cout << "输入书名: ";
    cin.ignore();
    getline(cin, title);
    cout << "输入作者: ";
    getline(cin, author);
    cout << "输入ISBN: ";
    getline(cin, ISBN);
    books.push_back(Book(title, author, ISBN));
}
void updateBook(vector<Book> &books) {
    string ISBN, title, author, newISBN;
    cout << "输入要更新的图书的ISBN: ";
    cin.ignore();
    getline(cin, ISBN);
    
    for (Book &book : books) {
        if (book.getISBN() == ISBN) {
            cout << "输入新书名: ";
            getline(cin, title);
            cout << "输入新作者: ";
            getline(cin, author);
            cout << "输入新ISBN: ";
            getline(cin, newISBN);
            book.update(title, author, newISBN);
            return;
        }
    }
    cout << "未找到该ISBN的图书。" << endl;
}
void deleteBook(vector<Book> &books) {
    string ISBN;
    cout << "输入要删除的图书的ISBN: ";
    cin.ignore();
    getline(cin, ISBN);
    
    for (auto it = books.begin(); it != books.end(); ++it) {
        if (it->getISBN() == ISBN) {
            books.erase(it);
            return;
        }
    }
    cout << "未找到该ISBN的图书。" << endl;
}
void findBook(const vector<Book> &books) {
    string ISBN;
    cout << "输入要查找的图书的ISBN: ";
    cin.ignore();
    getline(cin, ISBN);
    
    for (const Book &book : books) {
        if (book.getISBN() == ISBN) {
            book.display();
            return;
        }
    }
    cout << "未找到该ISBN的图书。" << endl;
}
void displayAllBooks(const vector<Book> &books) {
    for (const Book &book : books) {
        book.display();
    }
}
int main() {
    vector<Book> books;
    int choice;
    while (true) {
        displayMenu();
        cin >> choice;
        switch (choice) {
            case 1:
                addBook(books);
                break;
            case 2:
                updateBook(books);
                break;
            case 3:
                deleteBook(books);
                break;
            case 4:
                findBook(books);
                break;
            case 5:
                displayAllBooks(books);
                break;
            case 6:
                return 0;
            default:
                cout << "无效选项,请重新选择。" << endl;
        }
    }
    return 0;
}
 
效果如图:

四、功能点总结
- Book类:管理图书的书名、作者、ISBN及更新信息的方法。
 - 菜单系统:提供用户交互界面,实现添加图书、更新信息、删除图书、查找图书、显示所有图书信息等功能。
 
五、项目扩展方向
- 添加借阅和归还图书的功能。
 - 添加图书分类管理功能。
 - 保存图书信息到文件并从文件读取,以便下次程序启动时恢复数据。
 
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
点赞加关注,收藏不迷路!本篇文章对你有帮助的话,还请多多点赞支持!





![[XYCTF新生赛]-PWN:EZ1.0?(mips,mips的shellcode利用)](https://img-blog.csdnimg.cn/direct/28c465e211c9449e8dd16f727ba0b187.png)












