Задача: каталог книг
Напишите класс 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 и ничего не меняет.
Не добавляйте лишних #include, если в задаче это прямо не сказано.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.