Бібліотечна система
Бібліотечна система для управління книгами
|
Клас, що представляє книгу в бібліотечній системі Детальніше...
#include <Book.hpp>
Загальнодоступні елементи | |
Book () | |
Конструктор за замовчуванням | |
Book (std::string_view title, std::string_view bookId) | |
Конструктор з базовими параметрами | |
Book (std::string_view title, std::string_view bookId, std::string_view isbn, std::string_view publisher, int numPages, int yearPublished) | |
Конструктор з усіма параметрами | |
void | addAuthor (const Author &author) |
Додає автора до списку авторів книги | |
std::string | getTitle () const noexcept |
Отримує назву книги | |
const std::vector< Author > & | getAuthors () const noexcept |
Отримує список авторів книги | |
void | setTitle (std::string_view newTitle) |
Встановлює нову назву книги | |
void | display () const override |
Виводить детальну інформацію про книгу у консоль @override. | |
double | calculateStat () const noexcept override |
Обчислює статистичні дані про книгу @override. | |
bool | search (const std::string &keyword) const override |
Виконує пошук за ключовим словом | |
void | fromJson (const nlohmann::json &jsonData) |
Завантажує дані книги з JSON об'єкту | |
std::string | getISBN () const noexcept |
Отримати ISBN книги | |
std::string | getPublisher () const noexcept |
Отримати видавця книги | |
int | getNumPages () const noexcept |
Отримати кількість сторінок | |
int | getYearPublished () const noexcept |
Отримати рік видання | |
void | setISBN (std::string_view newISBN) noexcept |
Встановити новий ISBN. | |
void | setPublisher (std::string_view newPublisher) noexcept |
Встановити нового видавця | |
void | setNumPages (int newNumPages) noexcept |
Встановити нову кількість сторінок | |
void | setYearPublished (int newYearPublished) noexcept |
Встановити новий рік видання | |
void | setAuthors (const std::vector< Author > &authors) noexcept |
Встановити новий список авторів | |
bool | setBestBookForAuthor (const std::string &authorName, const std::string &bookTitle) |
Встановлює найкращу книгу для автора | |
![]() | |
AbstractCollection (std::string_view id, std::string_view name) | |
Конструктор з параметрами | |
virtual | ~AbstractCollection ()=default |
Віртуальний деструктор | |
std::string | getId () const noexcept |
Отримує унікальний ідентифікатор колекції | |
std::string | getName () const noexcept |
Отримує назву колекції | |
virtual void | setId (std::string_view newId) noexcept |
Встановлює новий ідентифікатор колекції | |
void | setName (std::string_view newName) noexcept |
Встановлює нову назву колекції | |
Загальнодоступні статичні елементи | |
static std::optional< Book > | createFromJson (const nlohmann::json &item) |
Створює книгу з JSON даних | |
Клас, що представляє книгу в бібліотечній системі
Реалізує всі необхідні операції для роботи з книгою:
Book::Book | ( | ) |
Конструктор за замовчуванням
Рік видання: 1455
Ініціалізує всі поля значеннями за замовчуванням:
Book::Book | ( | std::string_view | title, |
std::string_view | bookId | ||
) |
Конструктор з базовими параметрами
Конструктор з базовими параметрами.
title | Назва книги (не може бути пустою) |
bookId | Унікальний ідентифікатор у форматі "BK-XXXXXX" |
InvalidDataException | Якщо назва пуста |
title | Назва книги. |
bookId | Ідентифікатор книги. |
Ініціалізує книгу з переданою назвою та ID. Інші поля залишаються порожніми або нульовими.
Book::Book | ( | std::string_view | title, |
std::string_view | bookId, | ||
std::string_view | isbn, | ||
std::string_view | publisher, | ||
int | numPages, | ||
int | yearPublished | ||
) |
Конструктор з усіма параметрами
title | Назва книги (не може бути пустою) |
bookId | Унікальний ідентифікатор у форматі "BK-XXXXXX" |
isbn | ISBN-13 (має відповідати формату) |
publisher | Назва видавництва |
numPages | Кількість сторінок (>= 0) |
yearPublished | Рік видання (>= 1455) |
InvalidDataException | Якщо:
|
title | Назва книги |
bookId | Унікальний ідентифікатор книги |
isbn | ISBN книги (13 цифр) |
publisher | Назва видавництва |
numPages | Кількість сторінок (≥1) |
yearPublished | Рік видання (≥1455) |
InvalidDataException | Якщо:
|
void Book::addAuthor | ( | const Author & | author | ) |
Додає автора до списку авторів книги
Додає автора до книги
author | Об'єкт автора для додавання |
author | Об'єкт автора для додавання |
|
overridevirtualnoexcept |
Обчислює статистичні дані про книгу @override.
Обчислює статистичну інформацію про книгу
double
) Реалізує AbstractCollection.
|
static |
Створює книгу з JSON даних
Метод для створення об'єкта Book з JSON даних
item | JSON об'єкт |
item | JSON об'єкт, що містить дані книги |
nlohmann::json::exception | У разі проблем з парсингом JSON |
|
overridevirtual |
Виводить детальну інформацію про книгу у консоль @override.
Виводить повну інформацію про книгу у стандартний вивід
Формат виводу:
Список авторів (у форматі "Ім'я Прізвище")
Формат виводу:
Реалізує AbstractCollection.
void Book::fromJson | ( | const nlohmann::json & | jsonData | ) |
Завантажує дані книги з JSON об'єкту
jsonData | Вхідний JSON об'єкт |
InvalidDataException | Якщо:
|
Завантажує дані з JSON об'єкту
jsonData | JSON об'єкт |
Обробляє поля:
InvalidDataException | Якщо відсутня назва |
jsonData | JSON об'єкт з даними книги |
InvalidDataException | Якщо: |
|
inlinenoexcept |
Отримує список авторів книги
|
inlinenoexcept |
Отримати ISBN книги
|
inlinenoexcept |
Отримати кількість сторінок
|
inlinenoexcept |
Отримати видавця книги
|
inlinenoexcept |
Отримує назву книги
|
inlinenoexcept |
Отримати рік видання
|
overridevirtual |
Виконує пошук за ключовим словом
Виконує пошук ключового слова у полях книги
keyword | Ключове слово для пошуку @override |
keyword | Рядок для пошуку |
Пошук виконується без урахування регістру у наступних полях:
Реалізує AbstractCollection.
|
inlinenoexcept |
Встановити новий список авторів
authors | Нові автори |
|
inline |
Встановлює найкращу книгу для автора
authorName | Ім'я автора |
bookTitle | Назва книги |
|
inlinenoexcept |
Встановити новий ISBN.
newISBN | Новий ISBN |
|
inlinenoexcept |
Встановити нову кількість сторінок
newNumPages | Нова кількість сторінок |
|
inlinenoexcept |
Встановити нового видавця
newPublisher | Новий видавець |
|
inline |
Встановлює нову назву книги
newTitle | Нова назва книги (не може бути пустою) |
|
inlinenoexcept |
Встановити новий рік видання
newYearPublished | Новий рік видання |