设计一个图书管理系统,包括: 图书的基本信息:图书编号,书名,价格,发布年份,借出时间,借书人,还书时间。 功能:实现后台登录,实现增删改查功能
时间: 2024-03-01 18:49:40 浏览: 73
设计一个图书管理系统,实现增删改查,借书还书等操作
5星 · 资源好评率100%
好的,下面是一个简单的C++图书管理系统的示例代码,包括图书基本信息的设计和增删改查等功能。
```c++
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
using namespace std;
// 定义书籍结构体
struct Book {
string id; // 图书编号
string name; // 书名
double price; // 价格
int publish_year; // 出版年份
string borrower_name; // 借书人
time_t borrow_time; // 借出时间
time_t return_time; // 还书时间
};
// 定义图书馆类
class Library {
public:
Library() {
// 初始化管理员账号
admins.push_back({ "admin", "123456" });
}
// 登录验证
bool login(string username, string password) {
for (auto& admin : admins) {
if (admin.username == username && admin.password == password) {
return true;
}
}
return false;
}
// 添加书籍
void add_book(string id, string name, double price, int publish_year) {
Book book = { id, name, price, publish_year, "", 0, 0 };
books.push_back(book);
cout << "添加成功!" << endl;
}
// 删除书籍
void delete_book(string id) {
for (auto it = books.begin(); it != books.end(); it++) {
if (it->id == id) {
books.erase(it);
cout << "删除成功!" << endl;
return;
}
}
cout << "未找到该书籍!" << endl;
}
// 修改书籍信息
void edit_book(string id, string name, double price, int publish_year) {
for (auto& book : books) {
if (book.id == id) {
book.name = name;
book.price = price;
book.publish_year = publish_year;
cout << "修改成功!" << endl;
return;
}
}
cout << "未找到该书籍!" << endl;
}
// 借出书籍
void borrow_book(string id, string borrower_name) {
for (auto& book : books) {
if (book.id == id) {
if (book.borrower_name.empty()) {
book.borrower_name = borrower_name;
book.borrow_time = time(nullptr);
cout << "借出成功!" << endl;
return;
}
else {
cout << "该书已被借出!" << endl;
return;
}
}
}
cout << "未找到该书籍!" << endl;
}
// 归还书籍
void return_book(string id) {
for (auto& book : books) {
if (book.id == id) {
if (!book.borrower_name.empty()) {
book.borrower_name = "";
book.return_time = time(nullptr);
cout << "归还成功!" << endl;
return;
}
else {
cout << "该书未被借出!" << endl;
return;
}
}
}
cout << "未找到该书籍!" << endl;
}
// 显示库存
void show_stock() {
cout << "======库存清单======" << endl;
for (auto& book : books) {
cout << "编号:" << book.id << ",书名:" << book.name << ",价格:" << book.price << ",出版年份:" << book.publish_year;
if (!book.borrower_name.empty()) {
cout << ",借出时间:" << ctime(&book.borrow_time) << ",借书人:" << book.borrower_name << ",还书时间:" << ctime(&book.return_time);
}
else {
cout << ",未借出" << endl;
}
}
cout << "====================" << endl;
}
private:
struct Admin { // 管理员账号
string username;
string password;
};
vector<Admin> admins; // 管理员账号列表
vector<Book> books; // 存储书籍信息
};
int main() {
Library library;
// 添加书籍
library.add_book("001", "C++ Primer", 59.9, 2013);
library.add_book("002", "Effective C++", 49.9, 2005);
library.add_book("003", "Thinking in Java", 69.9, 2006);
// 显示库存
library.show_stock();
// 登录验证
string username, password;
cout << "请输入管理员账号和密码:" << endl;
cout << "账号:";
cin >> username;
cout << "密码:";
cin >> password;
if (!library.login(username, password)) {
cout << "登录失败!" << endl;
return 0;
}
// 添加书籍
library.add_book("004", "C++ Primer Plus", 69.9, 2002);
// 修改书籍信息
library.edit_book("003", "Thinking in C++", 79.9, 2000);
// 删除书籍
library.delete_book("002");
// 借书
library.borrow_book("001", "张三");
// 还书
library.return_book("001");
// 显示库存
library.show_stock();
return 0;
}
```
在这个示例中,我们定义了一个`Book`结构体来存储图书的基本信息,包括图书编号、书名、价格、出版年份、借出时间、借书人和还书时间。我们还定义了一个`Admin`结构体来存储管理员账号和密码。在`Library`类中,我们提供了登录验证、添加书籍、删除书籍、修改书籍信息、借出书籍、归还书籍和显示库存等功能。在`main`函数中,我们创建了一个`Library`对象,添加了几本书,然后进行了登录验证、添加书籍、修改书籍信息、删除书籍、借书和还书等操作,并显示库存情况。
需要注意的是,这只是一个简单的示例,实际的图书管理系统可能需要更多的功能和更复杂的逻辑,需要根据实际需求进行开发。
阅读全文