-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLibrary.cpp
More file actions
46 lines (41 loc) · 1.3 KB
/
Library.cpp
File metadata and controls
46 lines (41 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "Library.h"
#include <iostream>
void Library::addBook(const Book& book) {
books.push_back(book);
std::cout << "[SYSTEM] " << book.getTitle() << " added to the library.\n";
}
void Library::addUser(const User& user) {
users.push_back(user);
std::cout << "[SYSTEM] User " << user.getName() << " registered to the system.\n";
}
void Library::borrowBook(int bookId, int userId) {
for (auto& book : books) {
if (book.getId() == bookId) {
if (book.getStatus()) {
book.setStatus(false);
std::cout << ">> Success: Book borrowed.\n";
} else {
std::cout << ">> Failed: Sorry, this book is currently borrowed by someone else.\n";
}
return;
}
}
std::cout << ">> Error: Book not found!\n";
}
void Library::returnBook(int bookId) {
for (auto& book : books) {
if (book.getId() == bookId) {
book.setStatus(true);
std::cout << ">> Success: Book returned.\n";
return;
}
}
std::cout << ">> Error: Book not found!\n";
}
void Library::displayAllBooks() const {
std::cout << "\n--- Library Inventory ---\n";
for (const auto& book : books) {
book.displayBook();
}
std::cout << "-------------------------\n";
}