名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波·莫听穿林打叶声》
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)
点赞加关注,收藏不迷路!本篇文章对你有帮助的话,还请多多点赞支持!