Bücher ausleihen
Teil des Abschnitts Objektorientierte Programmierung der Swift-Journey von Coddy. Lektion 51 von 57.
Aufgabe
EinfachFüge den Befehl BORROW hinzu. Sorge dafür, dass jeder Befehl aus den vorherigen Schritten weiterhin genau wie zuvor funktioniert.
BORROW <name> <id>: Prüfe in dieser Reihenfolge und antworte mit dem ersten Problem:no member bo,no book 9,Dune is not available,ada has reached the limit(Mitglieder dürfen höchstens 2 Bücher besitzen). Andernfalls erfasse die Ausleihe sowohl beim Buch als auch beim Mitglied und antworte mitada borrowed Dune.
Der bereitgestellte Code übergibt jede Eingabezeile an library.handle(_:) und gibt jede zurückgegebene Antwort in einer eigenen Zeile aus. Mitgliedernamen bestehen aus einzelnen Wörtern in Kleinbuchstaben, Buch-IDs sind ganze Zahlen, und die Eingabe enthält ausschließlich die bisher beschriebenen Befehle. Bei jedem anderen Befehl lautet die Antwort unknown command.
Dein Code gehört in Book.swift, Member.swift und Library.swift. main.swift enthält den bereitgestellten Ein-/Ausgabecode und darf nicht bearbeitet werden.
Probier es selbst
// Bereitgestellter Ein-/Ausgabe-Code: belasse ihn wie er ist
var input: [String] = []
while let line = readLine() { input.append(line) }
let library = Library()
for line in input {
for reply in library.handle(line) { print(reply) }
}
Alle Lektionen in Objektorientierte Programmierung
1Klassen und Objekte
Arbeiten mit DateienKlassen definierenMethoden und selfInitialisiererKlassen sind ReferenzenRückblick – Bibliotheksausweis4Kapselung
ZugriffskontrolleVon außen schreibgeschütztZustand schützenFehlschlagende InitialisiererRückblick – Bankkonto7Polymorphismus und Generika
PolymorphismusTypumwandlungGenerische FunktionenGenerische TypenZusammenfassung – Shape-Rechner2Strukturen und Werttypen
StrukturenWertsemantikVerändernde MethodenStruktur oder KlasseZusammenfassung – Inventarelement5Vererbung
UnterklassenMethoden überschreibenInitialisierer und superfinal und HierarchienRückblick – Mitarbeiterhierarchie8Standardprotokolle
CustomStringConvertibleEquatableComparableHashableRückblick – Benutzerdefiniertes Sortieren11Projekt: Bibliotheksverwaltung
Bücher und MitgliederBücher ausleihenÜbe selbstständig: Swift-Playground