C++ 图书馆管理系统:添加、删除、借阅、归还书籍
#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
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. 包括必要的头文件
原文地址: https://www.cveoy.top/t/topic/qoLa 著作权归作者所有。请勿转载和采集!