Задача · Итоговый проект · урок 2 из 3
Задача: каталог книг
Напишите класс Catalog — каталог библиотеки, поля добавьте сами. Структура Book уже есть в файле: id — номер книги, title — название, author — автор, а lent — выдана ли книга. Метод void add(Book book) добавляет книгу, а std::vector<Book> by_author(std::string_view author) const возвращает книги автора в порядке добавления. bool lend(int id) выдаёт книгу и возвращает true, а bool give_back(int id) принимает её обратно и тоже возвращает true.
- после
add({5, "Persuasion", "Austen"}),add({2, "Dune", "Herbert"})иadd({3, "Emma", "Austen"}):by_author("Austen")→ книгиPersuasionиEmmaв этом порядке lend(2)→true, повторныйlend(2)→false- затем
give_back(2)→true, повторныйgive_back(2)→false
Ограничения: номера книг различны, а для автора без книг by_author возвращает пустой вектор. lend отказывает, если книги с номером id нет или она уже выдана, а give_back — если книги нет или она не выдана. Отказывая, метод возвращает false и ничего не меняет.