帮我写一个c++的图书管理系统
时间: 2023-08-28 08:33:52 浏览: 72
好的,我可以给你提供一个简单的C++图书管理系统的框架,你可以在此基础上进行修改和完善。
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 定义书籍结构体
struct Book {
string name; // 书名
string author; // 作者
string press; // 出版社
int year; // 出版年份
int num; // 库存数量
};
// 定义图书管理系统类
class BookManager {
public:
void addBook(); // 添加书籍
void removeBook(); // 删除书籍
void showBooks(); // 显示所有书籍
void borrowBook(); // 借阅书籍
void returnBook(); // 归还书籍
private:
vector<Book> books; // 存储所有书籍的容器
};
void BookManager::addBook() {
// 读取书籍信息
Book book;
cout << "请输入书籍信息:" << endl;
cout << "书名:";
getline(cin, book.name);
cout << "作者:";
getline(cin, book.author);
cout << "出版社:";
getline(cin, book.press);
cout << "出版年份:";
cin >> book.year;
cout << "库存数量:";
cin >> book.num;
cin.ignore(); // 忽略输入缓冲区中的换行符
// 将书籍添加到容器中
books.push_back(book);
cout << "添加成功!" << endl;
}
void BookManager::removeBook() {
// 读取要删除的书籍的名称
string name;
cout << "请输入要删除的书籍名称:";
getline(cin, name);
// 在容器中查找要删除的书籍,并删除
bool found = false;
for (auto it = books.begin(); it != books.end(); it++) {
if (it->name == name) {
books.erase(it);
found = true;
break;
}
}
// 输出结果
if (found) {
cout << "删除成功!" << endl;
} else {
cout << "未找到该书籍!" << endl;
}
}
void BookManager::showBooks() {
// 输出所有书籍的信息
cout << "所有书籍信息如下:" << endl;
for (auto book : books) {
cout << "书名:" << book.name << endl;
cout << "作者:" << book.author << endl;
cout << "出版社:" << book.press << endl;
cout << "出版年份:" << book.year << endl;
cout << "库存数量:" << book.num << endl;
cout << endl;
}
}
void BookManager::borrowBook() {
// 读取要借阅的书籍的名称
string name;
cout << "请输入要借阅的书籍名称:";
getline(cin, name);
// 在容器中查找要借阅的书籍,并减少库存数量
bool found = false;
for (auto& book : books) {
if (book.name == name) {
if (book.num > 0) {
book.num--;
found = true;
break;
} else {
cout << "该书籍已借完!" << endl;
return;
}
}
}
// 输出结果
if (found) {
cout << "借阅成功!" << endl;
} else {
cout << "未找到该书籍!" << endl;
}
}
void BookManager::returnBook() {
// 读取要归还的书籍的名称
string name;
cout << "请输入要归还的书籍名称:";
getline(cin, name);
// 在容器中查找要归还的书籍,并增加库存数量
bool found = false;
for (auto& book : books) {
if (book.name == name) {
book.num++;
found = true;
break;
}
}
// 输出结果
if (found) {
cout << "归还成功!" << endl;
} else {
cout << "未找到该书籍!" << endl;
}
}
int main() {
BookManager manager;
int choice;
while (true) {
cout << "请选择操作:" << endl;
cout << "1. 添加书籍" << endl;
cout << "2. 删除书籍" << endl;
cout << "3. 显示所有书籍" << endl;
cout << "4. 借阅书籍" << endl;
cout << "5. 归还书籍" << endl;
cout << "6. 退出程序" << endl;
cout << "请输入操作编号:";
cin >> choice;
cin.ignore(); // 忽略输入缓冲区中的换行符
switch (choice) {
case 1:
manager.addBook();
break;
case 2:
manager.removeBook();
break;
case 3:
manager.showBooks();
break;
case 4:
manager.borrowBook();
break;
case 5:
manager.returnBook();
break;
case 6:
return 0;
default:
cout << "无效的操作编号!" << endl;
break;
}
}
return 0;
}
```
这个图书管理系统包含了基本的添加、删除、显示、借阅和归还书籍的功能,你可以根据自己的需求对其进行修改和扩展。
阅读全文