Бібліотечна система
Бібліотечна система для управління книгами
|
Клас, що представляє автора книг у бібліотечній системі Детальніше...
#include <Author.hpp>
Загальнодоступні елементи | |
Author () | |
Створює об'єкт автора зі значеннями за замовчуванням | |
Author (std::string_view firstName, std::string_view lastName, std::string_view bestBook, int numWrittenBooks) | |
Створює об'єкт автора з заданими параметрами | |
std::string | getFirstName () const noexcept |
Отримує ім'я автора | |
std::string | getLastName () const noexcept |
Отримує прізвище автора | |
int | getNumWrittenBooks () const noexcept |
Отримує кількість написаних книг | |
std::string | getBestBook () const noexcept |
Отримує назву кращої книги автора | |
void | display () const override |
Виводить повну інформацію про автора у консоль @override. | |
double | calculateStat () const override |
Обчислює статистику автора @override. | |
bool | search (const std::string &keyword) const override |
Виконує пошук за ключовим словом @override. | |
void | inputFromKeyboard () |
Заповнює дані автора з консолі | |
bool | searchByName (const std::string &searchName) const |
Шукає автора за іменем | |
void | addBook (const std::string &bookTitle) |
Додає книгу до списку робіт автора | |
void | setFirstName (std::string_view firstName) noexcept |
Встановлює нове ім'я автора | |
void | setLastName (std::string_view lastName) noexcept |
Встановлює нове прізвище автора | |
void | setBestBook (std::string_view bestBook) noexcept |
Встановлює нову кращу книгу | |
void | setNumWrittenBooks (int numWrittenBooks) noexcept |
Встановлює кількість написаних книг | |
void | setAuthorBooks (const std::vector< std::string > &authorBooks) noexcept |
Встановлює повний список книг автора | |
const std::vector< std::string > & | getBooks () const noexcept |
Отримує список книг автора | |
const std::vector< std::string > & | getAuthorBooks () const noexcept |
Отримує список книг автора | |
![]() | |
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::string | trimAndReduceSpaces (std::string_view str) |
Видаляє зайві пробіли з рядка (з початку, кінця та між словами). | |
static double | calculateAverageBooks (const std::vector< Author > &authors) |
Обчислює середню кількість книг для списку авторів | |
static void | processJsonData (const nlohmann::json &item, Book &book) |
Обробляє JSON дані для створення автора | |
Дружні класи | |
std::ostream & | operator<< (std::ostream &os, const Author &author) |
Виводить ім'я та прізвище автора у потік | |
Клас, що представляє автора книг у бібліотечній системі
Реалізує всі необхідні операції для роботи з даними автора:
Author::Author | ( | ) |
Створює об'єкт автора зі значеннями за замовчуванням
Конструктор за замовчуванням.
Ініціалізує об'єкт Author з порожніми значеннями полів:
Author::Author | ( | std::string_view | firstName, |
std::string_view | lastName, | ||
std::string_view | bestBook, | ||
int | numWrittenBooks | ||
) |
Створює об'єкт автора з заданими параметрами
Конструктор з параметрами.
firstName | Ім'я автора (не пустий рядок) |
lastName | Прізвище автора (не пустий рядок) |
bestBook | Назва кращої книги (може бути пустою) |
numWrittenBooks | Кількість написаних книг (>= 0) |
std::invalid_argument | Якщо ім'я/прізвище пусті або кількість книг від'ємна |
firstName | Ім'я автора. |
lastName | Прізвище автора. |
bestBook | Назва кращої книги автора. |
numWrittenBooks | Кількість написаних книг. |
Ініціалізує об'єкт Author з переданими значеннями. Назва автора (для AbstractCollection) формується як "Ім'я Прізвище".
void Author::addBook | ( | const std::string & | bookTitle | ) |
Додає книгу до списку робіт автора
Додає книгу до списку робіт автора.
bookTitle | ISBN або назва книги |
bookTitle | Назва книги. |
|
static |
Обчислює середню кількість книг для списку авторів
Обчислює середню кількість книг для групи авторів.
authors | Вектор авторів для аналізу |
std::invalid_argument | Якщо передано пустий вектор |
authors | Вектор авторів. |
std::invalid_argument | Якщо вектор порожній. |
Використовує формулу:
|
overridevirtual |
Обчислює статистику автора @override.
Повертає кількість книг як статистичний показник
Реалізує AbstractCollection.
|
overridevirtual |
Виводить повну інформацію про автора у консоль @override.
Виводить інформацію про автора.
Формат виводу:
Список ISBN книг (по одному на рядок)
Виводить наступні дані:
Реалізує AbstractCollection.
|
inlinenoexcept |
Отримує список книг автора
|
inlinenoexcept |
Отримує назву кращої книги автора
|
inlinenoexcept |
Отримує список книг автора
|
inlinenoexcept |
Отримує ім'я автора
|
inlinenoexcept |
Отримує прізвище автора
|
inlinenoexcept |
Отримує кількість написаних книг
void Author::inputFromKeyboard | ( | ) |
Заповнює дані автора з консолі
Вводить дані автора з клавіатури.
Послідовно запитує:
std::invalid_argument | Якщо введені некоректні дані |
std::runtime_error | Якщо ім'я автора порожнє. |
|
static |
Обробляє JSON дані для створення автора
item | JSON об'єкт з даними автора |
book | Книга, до якої додається автор |
item | JSON об'єкт з даними |
book | Посилання на книгу для додавання автора |
Аналізує поле "Author" з JSON, розділяє повне ім'я на ім'я та прізвище. Якщо поле "Author" відсутнє або порожнє, автор не додається.
std::invalid_argument | Якщо ім'я автора порожнє |
nlohmann::json::exception | При помилках парсингу JSON |
|
overridevirtual |
Виконує пошук за ключовим словом @override.
keyword | Рядок для пошуку |
Реалізує AbstractCollection.
bool Author::searchByName | ( | const std::string & | searchName | ) | const |
Шукає автора за іменем
searchName | Ім'я для пошуку |
searchName | Ім'я для пошуку |
|
inlinenoexcept |
Встановлює повний список книг автора
authorBooks | Вектор ISBN книг |
|
inlinenoexcept |
Встановлює нову кращу книгу
bestBook | Назва нової кращої книги |
|
inlinenoexcept |
Встановлює нове ім'я автора
firstName | Нове ім'я (не пусте) |
|
inlinenoexcept |
Встановлює нове прізвище автора
lastName | Нове прізвище (не пусте) |
|
inlinenoexcept |
Встановлює кількість написаних книг
numWrittenBooks | Нова кількість (>= 0) |
|
static |
Видаляє зайві пробіли з рядка (з початку, кінця та між словами).
str | Вхідний рядок. |
|
friend |
Виводить ім'я та прізвище автора у потік
os | Вихідний потік |
author | Автор для виведення |