Управление библиотекой книг с классами

C++ Средний classes

Задача «Управление библиотекой книг с классами»

Реализуйте класс Book для хранения информации о книге: название (строка), автор (строка), год издания (целое число) и статус (доступна или выдана, логическое значение). Класс должен содержать конструктор для инициализации всех полей, а также методы: setStatus(bool) для изменения статуса, getInfo() для возврата строки с полной информацией о книге. В main создайте массив книг (не более 100), заполните его данными из входного файла и обработайте команды. На вход подаётся сначала число N — количество книг, затем N строк с данными: название автор год_издания статус (0 — доступна, 1 — выдана). После этого подаётся команда: 'print_all' — вывести информацию о всех книгах; 'print_available' — вывести только доступные книги; 'borrow <название>' — изменить статус книги с указанным названием на 'выдана' (если книга не найдена или уже выдана, вывести соответствующее сообщение).

Формат ввода

Первая строка: целое число N (1 ≤ N ≤ 100). Затем N строк: название (строка без пробелов), автор (строка без пробелов), год (целое число), статус (0 или 1). Затем строка с командой (одна из описанных).

Формат вывода

Для команд 'print_all' и 'print_available' — вывод информации о каждой книге в формате: "Название: <название>, Автор: <автор>, Год: <год>, Статус: <доступна/выдана>" (каждая книга на новой строке). Для команды 'borrow' — если книга найдена и доступна, вывести "Книга '<название>' выдана." и изменить статус; если не найдена — "Книга '<название>' не найдена."; если уже выдана — "Книга '<название>' уже выдана.".

Примеры

Пример 1

ВВОД
2 A B 1999 1 C D 2005 0 print_available
ВЫВОД
Название: C, Автор: D, Год: 2005, Статус: доступна

Пример 2

ВВОД
1 X Y 2022 0 borrow X
ВЫВОД
Книга 'X' выдана.

Пример 3

ВВОД
Война и мир,Роман Преступление и наказание,Роман 1984,Антиутопия Мастер и Маргарита,Роман
ВЫВОД
Роман: 3 Антиутопия: 1
main.cpp