20#include <nlohmann/json.hpp>
25#include "ftxui/component/component.hpp"
26#include "ftxui/dom/elements.hpp"
27#include "ftxui/screen/screen.hpp"
49 std::string m_firstName;
50 std::string m_lastName;
51 std::string m_bestBook;
52 int m_numWrittenBooks;
53 std::vector<std::string> m_authorBooks;
79 std::string_view firstName,
80 std::string_view lastName,
81 std::string_view bestBook,
94 std::string
getLastName() const noexcept {
return m_lastName; }
133 bool search(
const std::string& keyword)
const override;
165 void addBook(
const std::string& bookTitle);
171 void setFirstName(std::string_view firstName)
noexcept { m_firstName = firstName; }
177 void setLastName(std::string_view lastName)
noexcept { m_lastName = lastName; }
183 void setBestBook(std::string_view bestBook)
noexcept { m_bestBook = bestBook; }
196 m_authorBooks = authorBooks;
203 const std::vector<std::string>&
getBooks() const noexcept {
return m_authorBooks; }
228 const std::vector<std::string>&
getAuthorBooks() const noexcept {
return m_authorBooks; }
Визначає абстрактний базовий клас для всіх колекційних об'єктів у системі
Абстрактний базовий клас, що визначає інтерфейс для роботи з колекціями
Definition AbstractCollection.hpp:30
Клас, що представляє автора книг у бібліотечній системі
Definition Author.hpp:46
static double calculateAverageBooks(const std::vector< Author > &authors)
Обчислює середню кількість книг для списку авторів
Definition Author.cpp:260
bool searchByName(const std::string &searchName) const
Шукає автора за іменем
Definition Author.cpp:237
double calculateStat() const override
Обчислює статистику автора @override.
Definition Author.cpp:127
const std::vector< std::string > & getAuthorBooks() const noexcept
Отримує список книг автора
Definition Author.hpp:228
void setBestBook(std::string_view bestBook) noexcept
Встановлює нову кращу книгу
Definition Author.hpp:183
void inputFromKeyboard()
Заповнює дані автора з консолі
Definition Author.cpp:159
void setNumWrittenBooks(int numWrittenBooks) noexcept
Встановлює кількість написаних книг
Definition Author.hpp:189
static void processJsonData(const nlohmann::json &item, Book &book)
Обробляє JSON дані для створення автора
Definition Author.cpp:298
std::string getFirstName() const noexcept
Отримує ім'я автора
Definition Author.hpp:88
void setLastName(std::string_view lastName) noexcept
Встановлює нове прізвище автора
Definition Author.hpp:177
void setFirstName(std::string_view firstName) noexcept
Встановлює нове ім'я автора
Definition Author.hpp:171
Author()
Створює об'єкт автора зі значеннями за замовчуванням
Definition Author.cpp:73
const std::vector< std::string > & getBooks() const noexcept
Отримує список книг автора
Definition Author.hpp:203
void display() const override
Виводить повну інформацію про автора у консоль @override.
Definition Author.cpp:105
int getNumWrittenBooks() const noexcept
Отримує кількість написаних книг
Definition Author.hpp:100
std::string getLastName() const noexcept
Отримує прізвище автора
Definition Author.hpp:94
std::string getBestBook() const noexcept
Отримує назву кращої книги автора
Definition Author.hpp:106
void addBook(const std::string &bookTitle)
Додає книгу до списку робіт автора
Definition Author.cpp:279
bool search(const std::string &keyword) const override
Виконує пошук за ключовим словом @override.
Definition Author.cpp:138
friend std::ostream & operator<<(std::ostream &os, const Author &author)
Виводить ім'я та прізвище автора у потік
Definition Author.hpp:211
static std::string trimAndReduceSpaces(std::string_view str)
Видаляє зайві пробіли з рядка (з початку, кінця та між словами).
Definition Author.cpp:41
void setAuthorBooks(const std::vector< std::string > &authorBooks) noexcept
Встановлює повний список книг автора
Definition Author.hpp:195
Клас, що представляє книгу в бібліотечній системі
Definition Book.hpp:46