Bibliotheksverwaltung mit Klassen

C++ Medium classes

Aufgabe «Bibliotheksverwaltung mit Klassen»

Implementieren Sie eine Klasse Book zur Speicherung von Buchinformationen: Titel (Zeichenkette), Autor (Zeichenkette), Erscheinungsjahr (ganze Zahl) und Status (verfügbar oder ausgeliehen, boolescher Wert). Die Klasse soll einen Konstruktor zur Initialisierung aller Felder sowie die Methoden setStatus(bool) zur Änderung des Status und getInfo() zur Rückgabe einer Zeichenkette mit vollständigen Buchinformationen enthalten. In main erstellen Sie ein Array von Büchern (maximal 100), füllen es mit Daten aus der Eingabedatei und verarbeiten Befehle. Die Eingabe besteht zunächst aus einer Zahl N – der Anzahl der Bücher, dann N Zeilen mit Daten: Titel Autor Erscheinungsjahr Status (0 – verfügbar, 1 – ausgeliehen). Danach folgt ein Befehl: 'print_all' – Informationen über alle Bücher ausgeben; 'print_available' – nur verfügbare Bücher ausgeben; 'borrow <Titel>' – den Status des Buches mit dem angegebenen Titel auf 'ausgeliehen' ändern (wenn das Buch nicht gefunden oder bereits ausgeliehen ist, geben Sie eine entsprechende Meldung aus).

Eingabeformat

Erste Zeile: ganze Zahl N (1 ≤ N ≤ 100). Dann N Zeilen: Titel (Zeichenkette ohne Leerzeichen), Autor (Zeichenkette ohne Leerzeichen), Jahr (ganze Zahl), Status (0 oder 1). Dann eine Zeile mit einem Befehl (einer der beschriebenen).

Ausgabeformat

Für die Befehle 'print_all' und 'print_available' – Ausgabe der Informationen zu jedem Buch im Format: "Titel: <Titel>, Autor: <Autor>, Jahr: <Jahr>, Status: <verfügbar/ausgeliehen>" (jedes Buch in einer neuen Zeile). Für den Befehl 'borrow' – wenn das Buch gefunden und verfügbar ist, geben Sie "Buch '<Titel>' wurde ausgeliehen." aus und ändern Sie den Status; wenn nicht gefunden – "Buch '<Titel>' nicht gefunden."; wenn bereits ausgeliehen – "Buch '<Titel>' ist bereits ausgeliehen.".

Beispiele

Beispiel 1

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

Beispiel 2

EINGABE
1 X Y 2022 0 borrow X
AUSGABE
Книга 'X' выдана.

Beispiel 3

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