Перейти к содержимому
Задача · Итоговый проект · урок 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 и ничего не меняет.

catalog.cpp — cpp
cpp · строк: 29
Ctrl+Enter запуск · Esc выйти из редактора