From cf66cc6bd2fd3846222d6dd176406ff5376cbfa1 Mon Sep 17 00:00:00 2001 From: Leon <3010261@stud.hs-mannheim.de> Date: Mon, 18 Nov 2024 19:17:24 +0100 Subject: [PATCH] =?UTF-8?q?Programm=20f=C3=BCr=20ausf=C3=BChrbarkeit=20vor?= =?UTF-8?q?bereitet.=20=C3=84nderungen=20f=C3=BCr=20Lauff=C3=A4higkeit=20b?= =?UTF-8?q?ereitgestellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Bibliothek/Bibliotheksverwaltung.java | 177 ++++++++++--- Biblio/src/Bibliothek/Kunde.java | 5 +- Biblio/src/Bibliothek/Main.java | 25 ++ Biblio/src/Bibliothek/Medien.java | 32 +-- Biblio/src/Bibliothek/UI.java | 245 ++++++++++++++++++ out/production/Biblio/Bibliothek/Admin.class | Bin 0 -> 3601 bytes .../Bibliothek/Bibliotheksverwaltung.class | Bin 0 -> 8491 bytes .../Biblio/Bibliothek/Brettspiel.class | Bin 0 -> 1364 bytes out/production/Biblio/Bibliothek/Buch.class | Bin 0 -> 1343 bytes out/production/Biblio/Bibliothek/CD.class | Bin 0 -> 1333 bytes out/production/Biblio/Bibliothek/DVD.class | Bin 0 -> 1354 bytes out/production/Biblio/Bibliothek/Kunde.class | Bin 0 -> 3838 bytes out/production/Biblio/Bibliothek/Main.class | Bin 0 -> 1692 bytes out/production/Biblio/Bibliothek/Medien.class | Bin 0 -> 2831 bytes out/production/Biblio/Bibliothek/UI.class | Bin 0 -> 10574 bytes out/production/Biblio/Bibliothek/User.class | Bin 0 -> 2369 bytes .../Biblio/Bibliothek/Videospiel.class | Bin 0 -> 1416 bytes out/production/Biblio/Vorgehen.txt | 6 + out/production/Biblio/fragen.txt | 6 + 19 files changed, 438 insertions(+), 58 deletions(-) create mode 100644 Biblio/src/Bibliothek/Main.java create mode 100644 out/production/Biblio/Bibliothek/Admin.class create mode 100644 out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class create mode 100644 out/production/Biblio/Bibliothek/Brettspiel.class create mode 100644 out/production/Biblio/Bibliothek/Buch.class create mode 100644 out/production/Biblio/Bibliothek/CD.class create mode 100644 out/production/Biblio/Bibliothek/DVD.class create mode 100644 out/production/Biblio/Bibliothek/Kunde.class create mode 100644 out/production/Biblio/Bibliothek/Main.class create mode 100644 out/production/Biblio/Bibliothek/Medien.class create mode 100644 out/production/Biblio/Bibliothek/UI.class create mode 100644 out/production/Biblio/Bibliothek/User.class create mode 100644 out/production/Biblio/Bibliothek/Videospiel.class create mode 100644 out/production/Biblio/Vorgehen.txt create mode 100644 out/production/Biblio/fragen.txt diff --git a/Biblio/src/Bibliothek/Bibliotheksverwaltung.java b/Biblio/src/Bibliothek/Bibliotheksverwaltung.java index ab8a79a..50cd3b9 100644 --- a/Biblio/src/Bibliothek/Bibliotheksverwaltung.java +++ b/Biblio/src/Bibliothek/Bibliotheksverwaltung.java @@ -2,11 +2,13 @@ package Bibliothek; import java.util.*; import java.util.function.Predicate; +import java.util.stream.Collectors; public class Bibliotheksverwaltung { private Map medienBestand; private Map kundenListe; private Map adminListe; + private User eingeloggterBenutzer; public Bibliotheksverwaltung() { medienBestand = new HashMap<>(); @@ -14,54 +16,151 @@ public class Bibliotheksverwaltung { adminListe = new HashMap<>(); } + public Map getKundenListe() { + return kundenListe; + } + + public Map getAdminListe() { + return adminListe; + } + + public User getEingeloggterBenutzer() { + return eingeloggterBenutzer; + } + + public List sucheMedienNachTitel(String titel) { + return medienBestand.values().stream() + .filter(medien -> medien.getTitel().toLowerCase().contains(titel.toLowerCase())) + .collect(Collectors.toList()); + } + + public void alleMedienAnzeigen() { + if (medienBestand.isEmpty()) { + System.out.println("Keine Medien im Bestand."); + } else { + System.out.println("Medienbestand:"); + medienBestand.values().forEach(m -> + System.out.println("- " + m.getDetails() + + (m.verfuegbar() ? " [Verfügbar]" : " [Ausgeliehen]")) + ); + } + } + + public void medienAusleihen(String medienId) { + if (eingeloggterBenutzer == null || !(eingeloggterBenutzer instanceof Kunde)) { + System.out.println("Bitte loggen Sie sich als Kunde ein, um Medien auszuleihen."); + return; + } + Medien medien = medienBestand.get(medienId); + if (medien == null) { + System.out.println("Medium nicht gefunden."); + return; + } + Kunde kunde = (Kunde) eingeloggterBenutzer; + if (medien.verfuegbar()) { + kunde.medienAusleihen(medien); + medien.setVerfuegbar(false); + System.out.println("Medium erfolgreich ausgeliehen: " + medien.getTitel()); + } else { + System.out.println("Medium ist bereits ausgeliehen."); + } + } + + public void medienZurueckgeben(String medienId, String kundenId) { + Medien medien = medienBestand.get(medienId); + Kunde kunde = kundenListe.get(kundenId); + + if (medien == null) { + System.out.println("Medium nicht gefunden."); + return; + } + if (kunde == null) { + System.out.println("Kunde nicht gefunden."); + return; + } + if (kunde.getAusgelieheneMedien().contains(medien)) { + kunde.medienZurueckgeben(medien); + medien.setVerfuegbar(true); + System.out.println("Medium erfolgreich zurückgegeben: " + medien.getTitel()); + } else { + System.out.println("Dieses Medium wurde nicht von diesem Kunden ausgeliehen."); + } + } + + public void medienVerlaengern(String medienId, String kundenId, int aktuelleVerlaengerungen) { + Medien medien = medienBestand.get(medienId); + Kunde kunde = kundenListe.get(kundenId); + + if (medien != null && kunde != null) { + boolean erfolg = kunde.medienVerlaengern(medien, aktuelleVerlaengerungen); + if (erfolg) { + System.out.println("Medium erfolgreich verlängert: " + medien.getTitel()); + } else { + System.out.println("Verlängerung nicht möglich: Maximale Anzahl erreicht."); + } + } else { + System.out.println(medien == null ? "Medium nicht gefunden." : "Kunde nicht gefunden."); + } + } + public void medienHinzufuegen(Medien medien) { medienBestand.put(medien.getId(), medien); System.out.println("Medium hinzugefügt: " + medien.getTitel()); } - public void alleMedienAnzeigen() { - System.out.println("Medienbestand:"); - medienBestand.values().forEach(m -> - System.out.println("- " + m.getDetails() + - (m.verfuegbar() ? " [Verfügbar]" : " [Ausgeliehen]")) - ); + public boolean loginKunde(String kundenId) { + if (eingeloggterBenutzer != null) { + System.out.println("Ein Benutzer ist bereits eingeloggt: " + eingeloggterBenutzer.getName()); + return false; + } + Kunde kunde = kundenListe.get(kundenId); + if (kunde != null) { + eingeloggterBenutzer = kunde; + System.out.println("Kunde eingeloggt: " + kunde.getName()); + return true; + } else { + System.out.println("Kunde nicht gefunden."); + return false; + } } - public void medienDurchsuchen(String suchbegriff) { - System.out.println("Suchergebnisse für '" + suchbegriff + "':"); - medienBestand.values().stream() - .filter(m -> m.getTitel().toLowerCase().contains(suchbegriff.toLowerCase())) - .forEach(m -> System.out.println("- " + m.getDetails())); + public boolean loginAdmin(String adminId) { + if (eingeloggterBenutzer != null) { + System.out.println("Ein Benutzer ist bereits eingeloggt: " + eingeloggterBenutzer.getName()); + return false; + } + Admin admin = adminListe.get(adminId); + if (admin != null) { + eingeloggterBenutzer = admin; + System.out.println("Admin eingeloggt: " + admin.getName()); + return true; + } else { + System.out.println("Admin nicht gefunden."); + return false; + } } - public void medienFiltern(Predicate kriterium) { - System.out.println("Gefilterte Medien:"); - medienBestand.values().stream() - .filter(kriterium) - .forEach(m -> System.out.println("- " + m.getDetails())); + public void logout() { + if (eingeloggterBenutzer != null) { + System.out.println("Benutzer " + eingeloggterBenutzer.getName() + " wurde ausgeloggt."); + eingeloggterBenutzer = null; + } else { + System.out.println("Kein Benutzer ist eingeloggt."); + } + } + public Kunde registriereKunde(String name, boolean istStudent) { + String prefix = istStudent ? "S" : "K"; + int maxId = kundenListe.keySet().stream() + .filter(id -> id.startsWith(prefix)) + .map(id -> id.replaceAll("[^0-9]", "")) + .mapToInt(Integer::parseInt) + .max() + .orElse(0); + String neueId = prefix + (maxId + 1); + Kunde neuerKunde = new Kunde(neueId, name, istStudent); + kundenListe.put(neueId, neuerKunde); + System.out.println("Neuer Kunde registriert: " + name + " (ID: " + neueId + ")"); + return neuerKunde; } - public void medienAusleihen(String medienId, String kundenId) { - Optional.ofNullable(medienBestand.get(medienId)) - .ifPresentOrElse( - medien -> Optional.ofNullable(kundenListe.get(kundenId)) - .ifPresentOrElse( - kunde -> kunde.medienAusleihen(medien), - () -> System.out.println("Kunde nicht gefunden.") - ), - () -> System.out.println("Medium nicht gefunden.") - ); - } - - public void medienZurueckgeben(String medienId, String kundenId) { - Optional.ofNullable(medienBestand.get(medienId)) - .ifPresentOrElse( - medien -> Optional.ofNullable(kundenListe.get(kundenId)) - .ifPresentOrElse( - kunde -> kunde.medienZurueckgeben(medien), - () -> System.out.println("Kunde nicht gefunden.") - ), - () -> System.out.println("Medium nicht gefunden.") - ); - } } diff --git a/Biblio/src/Bibliothek/Kunde.java b/Biblio/src/Bibliothek/Kunde.java index f8e58f3..5c48b9f 100644 --- a/Biblio/src/Bibliothek/Kunde.java +++ b/Biblio/src/Bibliothek/Kunde.java @@ -1,7 +1,5 @@ package Bibliothek; -import java.util.List; -import java.util.ArrayList; import java.util.function.Consumer; public class Kunde extends User { @@ -43,7 +41,7 @@ public class Kunde extends User { }); } - public void medienVerlaengern(Medien medien, int aktuelleVerlaengerungen) { + public boolean medienVerlaengern(Medien medien, int aktuelleVerlaengerungen) { Consumer verlaengerung = m -> { if (ausgelieheneMedien.contains(m) && m.verlaengern(aktuelleVerlaengerungen)) { System.out.println("Medium verlängert: " + m.getTitel()); @@ -52,6 +50,7 @@ public class Kunde extends User { } }; verlaengerung.accept(medien); + return false; } @Override diff --git a/Biblio/src/Bibliothek/Main.java b/Biblio/src/Bibliothek/Main.java new file mode 100644 index 0000000..e3afdd2 --- /dev/null +++ b/Biblio/src/Bibliothek/Main.java @@ -0,0 +1,25 @@ +package Bibliothek; + +public class Main { + public static void main(String[] args) { + + Bibliotheksverwaltung verwaltung = new Bibliotheksverwaltung(); + + Kunde kunde1 = new Kunde("S001", "Max Mustermann", true); + Kunde kunde2 = new Kunde("K001", "Lisa Müller", false); + verwaltung.getKundenListe().put(kunde1.getId(), kunde1); + verwaltung.getKundenListe().put(kunde2.getId(), kunde2); + + Admin admin = new Admin("A001", "Anna Schmidt"); + verwaltung.getAdminListe().put(admin.getId(), admin); + + Medien buch = new Buch("B001", "Der Herr der Ringe", 1954, "J.R.R. Tolkien", 1200); + Medien dvd = new DVD("D001", "Inception", 2010, "Christopher Nolan", 148); + verwaltung.medienHinzufuegen(buch); + verwaltung.medienHinzufuegen(dvd); + + + UI tui = new UI(verwaltung); + tui.start(); + } +} diff --git a/Biblio/src/Bibliothek/Medien.java b/Biblio/src/Bibliothek/Medien.java index 8bb83ea..454ef2f 100644 --- a/Biblio/src/Bibliothek/Medien.java +++ b/Biblio/src/Bibliothek/Medien.java @@ -8,6 +8,7 @@ public abstract class Medien { protected int erscheinungsjahr; protected boolean verfuegbar = true; protected LocalDate rueckgabedat; + protected int verlaengerungen; public Medien(String titel, String id, int erscheinungsjahr) { this.titel = titel; @@ -40,6 +41,9 @@ public abstract class Medien { public void setErscheinungsjahr(int er) { this.erscheinungsjahr = er; } + public void setVerfuegbar(boolean verfuegbar) { + this.verfuegbar = verfuegbar; + } public abstract int getAusleihdauer(); public abstract int getMaxVerlaengerungen(); @@ -53,23 +57,19 @@ public abstract class Medien { } } - public boolean verlaengern(int aktuelleVerlaengerungen) { - if (verfuegbar) { - System.out.println("Medium '" + titel + "' ist verfügbar und kann nicht verlängert werden."); - return false; - } - if (rueckgabedat == null) { - System.out.println("Medium '" + titel + "' hat kein Rückgabedatum. Verlängerung nicht möglich."); - return false; - } - if (aktuelleVerlaengerungen >= getMaxVerlaengerungen()) { - System.out.println("Medium '" + titel + "' kann nicht weiter verlängert werden. Maximale Verlängerungen erreicht."); - return false; - } - rueckgabedat = rueckgabedat.plusWeeks(getAusleihdauer()); - System.out.println("Medium '" + titel + "' wurde verlängert. Neues Rückgabedatum: " + rueckgabedat); - return true; + public int getVerlaengerungen() { + return verlaengerungen; } + + public boolean verlaengern(int aktuelleVerlaengerungen) { + if (aktuelleVerlaengerungen < getMaxVerlaengerungen()) { + verlaengerungen++; + rueckgabedat = rueckgabedat.plusWeeks(getAusleihdauer()); + return true; + } + return false; + } + public void zurueckgeben() { verfuegbar = true; rueckgabedat = null; diff --git a/Biblio/src/Bibliothek/UI.java b/Biblio/src/Bibliothek/UI.java index 40393a4..1c7490e 100644 --- a/Biblio/src/Bibliothek/UI.java +++ b/Biblio/src/Bibliothek/UI.java @@ -1,4 +1,249 @@ package Bibliothek; +import java.util.Scanner; + public class UI { + private Bibliotheksverwaltung verwaltung; + private Scanner scanner; + + public UI(Bibliotheksverwaltung verwaltung) { + this.verwaltung = verwaltung; + this.scanner = new Scanner(System.in); + } + + public void start() { + String auswahl; + do { + zeigeMenue(); + auswahl = scanner.nextLine(); + verarbeiteAuswahl(auswahl); + } while (!auswahl.equals("0")); + System.out.println("Programm beendet."); + } + + private void zeigeMenue() { + System.out.println("\n--- Bibliothekssystem ---"); + System.out.println("1. Anmelden (Kunde)"); + System.out.println("2. Anmelden (Admin)"); + System.out.println("3. Abmelden"); + System.out.println("4. Neuen Kunden registrieren"); + System.out.println("5. Medien durchsuchen"); + System.out.println("6. Medien anzeigen"); + System.out.println("7. Medien ausleihen"); + System.out.println("8. Medien zurückgeben"); + System.out.println("9. Medien verlängern"); + System.out.println("10. Gebühren anzeigen"); + System.out.println("11. Gebühren verbuchen (Admin)"); + System.out.println("12. Medien hinzufügen (Admin)"); + System.out.println("0. Beenden"); + System.out.print("Auswahl: "); + } + + private void verarbeiteAuswahl(String auswahl) { + switch (auswahl) { + case "1" -> loginKunde(); + case "2" -> loginAdmin(); + case "3" -> logout(); + case "4" -> kundeRegistrieren(); + case "5" -> medienDurchsuchen(); + case "6" -> alleMedienAnzeigen(); + case "7" -> medienAusleihen(); + case "8" -> medienZurueckgeben(); + case "9" -> medienVerlaengern(); + case "10" -> gebuehrenAnzeigen(); + case "11" -> gebuehrenVerbuchen(); + case "12" -> medienHinzufuegen(); + case "0" -> System.out.println("Beende das Programm..."); + default -> System.out.println("Ungültige Auswahl. Bitte erneut versuchen."); + } + } + + private void loginKunde() { + System.out.print("Kunden-ID eingeben: "); + String kundenId = scanner.nextLine(); + if (verwaltung.loginKunde(kundenId)) { + System.out.println("Erfolgreich als Kunde angemeldet."); + } else { + System.out.println("Anmeldung fehlgeschlagen."); + } + } + + private void loginAdmin() { + System.out.print("Admin-ID eingeben: "); + String adminId = scanner.nextLine(); + if (verwaltung.loginAdmin(adminId)) { + System.out.println("Erfolgreich als Admin angemeldet."); + } else { + System.out.println("Anmeldung fehlgeschlagen."); + } + } + + private void logout() { + verwaltung.logout(); + } + + private void kundeRegistrieren() { + System.out.print("Name eingeben: "); + String name = scanner.nextLine(); + System.out.print("Ist der Kunde ein Student? (ja/nein): "); + String studentAntwort = scanner.nextLine().toLowerCase(); + boolean istStudent = studentAntwort.equals("ja"); + + Kunde neuerKunde = verwaltung.registriereKunde(name, istStudent); + System.out.println("Neuer Kunde registriert: " + neuerKunde.getName() + " (ID: " + neuerKunde.getId() + ")"); + } + + + private void medienDurchsuchen() { + System.out.print("Suchbegriff eingeben: "); + String suchbegriff = scanner.nextLine(); + var ergebnisse = verwaltung.sucheMedienNachTitel(suchbegriff); + + if (ergebnisse.isEmpty()) { + System.out.println("Keine Medien gefunden."); + } else { + System.out.println("Suchergebnisse:"); + ergebnisse.forEach(medien -> System.out.println("- " + medien.getDetails())); + } + } + + + private void alleMedienAnzeigen() { + verwaltung.alleMedienAnzeigen(); + } + + private void medienAusleihen() { + if (!(verwaltung.getEingeloggterBenutzer() instanceof Kunde)) { + System.out.println("Bitte loggen Sie sich als Kunde ein, um Medien auszuleihen."); + return; + } + System.out.print("Medium-ID eingeben: "); + String medienId = scanner.nextLine(); + verwaltung.medienAusleihen(medienId); + } + + private void medienZurueckgeben() { + if (!(verwaltung.getEingeloggterBenutzer() instanceof Kunde)) { + System.out.println("Bitte loggen Sie sich als Kunde ein, um Medien zurückzugeben."); + return; + } + System.out.print("Medium-ID eingeben: "); + String medienId = scanner.nextLine(); + Kunde kunde = (Kunde) verwaltung.getEingeloggterBenutzer(); + verwaltung.medienZurueckgeben(medienId, kunde.getId()); + } + + private void medienVerlaengern() { + if (!(verwaltung.getEingeloggterBenutzer() instanceof Kunde)) { + System.out.println("Bitte loggen Sie sich als Kunde ein, um Medien zu verlängern."); + return; + } + System.out.print("Medium-ID eingeben: "); + String medienId = scanner.nextLine(); + System.out.print("Anzahl bisheriger Verlängerungen eingeben: "); + int verlaengerungen; + try { + verlaengerungen = Integer.parseInt(scanner.nextLine()); + Kunde kunde = (Kunde) verwaltung.getEingeloggterBenutzer(); + verwaltung.medienVerlaengern(medienId, kunde.getId(), verlaengerungen); + } catch (NumberFormatException e) { + System.out.println("Ungültige Eingabe für Verlängerungen. Bitte eine Zahl eingeben."); + } + } + + private void gebuehrenAnzeigen() { + if (!(verwaltung.getEingeloggterBenutzer() instanceof Kunde)) { + System.out.println("Bitte loggen Sie sich als Kunde ein, um Gebühren anzuzeigen."); + return; + } + Kunde kunde = (Kunde) verwaltung.getEingeloggterBenutzer(); + System.out.println("Gebühren von " + kunde.getName() + ": " + kunde.getGebuehren() + "€"); + } + + private void gebuehrenVerbuchen() { + if (!(verwaltung.getEingeloggterBenutzer() instanceof Admin)) { + System.out.println("Nur Admins können Gebühren verbuchen. Bitte als Admin einloggen."); + return; + } + System.out.print("Kunden-ID eingeben: "); + String kundenId = scanner.nextLine(); + Kunde kunde = verwaltung.getKundenListe().get(kundenId); + if (kunde == null) { + System.out.println("Kunde nicht gefunden."); + return; + } + + System.out.print("Betrag eingeben: "); + try { + double betrag = Double.parseDouble(scanner.nextLine()); + Admin admin = (Admin) verwaltung.getEingeloggterBenutzer(); + admin.gebuehrenVerbuchen(kunde, betrag); + System.out.println("Gebühren erfolgreich verbucht."); + } catch (NumberFormatException e) { + System.out.println("Ungültige Eingabe. Bitte einen gültigen Betrag eingeben."); + } + } + + private void medienHinzufuegen() { + if (!(verwaltung.getEingeloggterBenutzer() instanceof Admin)) { + System.out.println("Nur Admins können Medien hinzufügen. Bitte als Admin einloggen."); + return; + } + System.out.print("Medienart (Buch, DVD, CD, Brettspiel, Videospiel) eingeben: "); + String medienart = scanner.nextLine(); + System.out.print("ID eingeben: "); + String id = scanner.nextLine(); + System.out.print("Titel eingeben: "); + String titel = scanner.nextLine(); + System.out.print("Erscheinungsjahr eingeben: "); + int jahr; + try { + jahr = Integer.parseInt(scanner.nextLine()); + Medien medien = null; + switch (medienart.toLowerCase()) { + case "buch": + System.out.print("Autor eingeben: "); + String autor = scanner.nextLine(); + System.out.print("Seitenanzahl eingeben: "); + int seiten = Integer.parseInt(scanner.nextLine()); + medien = new Buch(id, titel, jahr, autor, seiten); + break; + case "dvd": + System.out.print("Regisseur eingeben: "); + String regisseur = scanner.nextLine(); + System.out.print("Spieldauer (Minuten) eingeben: "); + int spieldauerDVD = Integer.parseInt(scanner.nextLine()); + medien = new DVD(id, titel, jahr, regisseur, spieldauerDVD); + break; + case "cd": + System.out.print("Künstler eingeben: "); + String kuenstler = scanner.nextLine(); + System.out.print("Anzahl der Tracks eingeben: "); + int tracks = Integer.parseInt(scanner.nextLine()); + medien = new CD(id, titel, jahr, kuenstler, tracks); + break; + case "brettspiel": + System.out.print("Spieleranzahl eingeben: "); + int spieler = Integer.parseInt(scanner.nextLine()); + System.out.print("Spieldauer (Minuten) eingeben: "); + int spieldauerBrettspiel = Integer.parseInt(scanner.nextLine()); + medien = new Brettspiel(id, titel, jahr, spieler, spieldauerBrettspiel); + break; + case "videospiel": + System.out.print("Plattform eingeben: "); + String plattform = scanner.nextLine(); + System.out.print("Entwickler eingeben: "); + String entwickler = scanner.nextLine(); + medien = new Videospiel(id, titel, jahr, plattform, entwickler); + break; + default: + System.out.println("Ungültige Medienart."); + return; + } + verwaltung.medienHinzufuegen(medien); + System.out.println("Medium erfolgreich hinzugefügt."); + } catch (NumberFormatException e) { + System.out.println("Ungültige Eingabe. Bitte eine Zahl eingeben."); + } + } } diff --git a/out/production/Biblio/Bibliothek/Admin.class b/out/production/Biblio/Bibliothek/Admin.class new file mode 100644 index 0000000000000000000000000000000000000000..02ede550c7977582b0f45dc4195d425b10c9283d GIT binary patch literal 3601 zcmcInX;%|h7=A7w6XGBkH3%+@fI96Py>FIm#3@{deu!Ob_6s$DYEF+b5wG1B< zGpjp{dMs5CQLzlm8J0=l;_D2`ga9)w0x82cHX0$fqbeG(l3deMDLz3|20DfUe)p$y zhLs4eNIHp_N4Ve`W)D$HxrS}^4A@q_kmF7wj3%s7uv*0$tSxeT&@LoRPShrKv%n9H z32K8rm=x1HkXQ^2>lCyIcC8Gnq<`hDE%5G8@)S?GiP&fu>#;#WyNV9Ph(y3E=>w6- zaQC2|BRb1Ff*kySM!*nP(S?l+4LNZ?=WJWMlSyH%2sizTCA|A#71{Lg5 zv0I40G$8)0w;@vDsNr%`oZYKpANEtt(c+N;PmO2vBv0$ax?$F9*U0gnAv>j;gSyKp z$A&Ph;GoE{Lq$2}g>OM*X49e^-zq#P!hD2bYnfn{-YAnRBIA#$IEGP%#c7%3qawqp zz&m1tBKQxfcv$SJ6fWb~Ta$IK{C4_D=bx?#N9-AF$KpRo#$b@q>k2k~>FrS`#N1!3 za-myq3aHVWeqi&Vf~JNw*}BUD$d|+J_@6}icA5xFms4=bM$jr^TzEjB2UMz$Q41Fi`tXZ%!9^OCaf6=I$YT22oEO#{B z%xl!VHG6D~8o8xWWzXCcm92F!IvVQ^;UYt?v_>|vx~p-j9IXU%Z04q;$qdliS-a+^ zuiH)ZFNg67K2`9UiqCO{p=DlN!}ZY8EQhg;Oy^U3-B*_TJP1Z zw8`^rL$*C$m?-lR69{F|#iLXw!Q*$n>6yI!-C&FLkq30s9HI9`f+YDejIZ#uf^S5N z`<9`tL=vxAdT;FAv!Y!3|7Gx-^vQs1WnMiCU82{*KFi|HfT`#6Jg?v?!}=1R%0*1U zj|^*Xf0Sz93oq7DAym*;AL#W!?Np9wn(d=^b|w8Po$;>U!LHF`1vri3lNj_7Ta6lw z(UayKLk3xz(FGXTK~Um}J{9OR!zql@C}1zs=|%M068{tGuTUbjQ>eSv8K1@qptq{A zs^dBuZ=ksX!eW)Q*hIDfm1eaxE}?NLqG%-QO_D(;?GWM|gBF;`Nd_&jU=xEV-J8IZ zbk31T)Dz`Oo>p91sRXN~3k6L2G|$l`;by#uCh?6=p=}zS0MVxB?rGcw+`v5^-^u{r zHH5vEtTYqf7OX}q-P$1eMm^{`zHy&#fXQh*(qrMAbpG4H>jC!&~Wnx4~vSlRN3i?Km zQf{u4B)lZ+o0F_>F2sF!4$qTDLcA(eG_NK~FVJ%Z&f`V;-9l-2iPm1i%Xkf65cN0w f`CE8b&fk;c2Xg#KjvwPYx*4Xk-{S}TgvS2>ATPV& literal 0 HcmV?d00001 diff --git a/out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class b/out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class new file mode 100644 index 0000000000000000000000000000000000000000..a057aa6548ee96734587e43eb31bfed532319fa7 GIT binary patch literal 8491 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 literal 0 HcmV?d00001 diff --git a/out/production/Biblio/Bibliothek/Buch.class b/out/production/Biblio/Bibliothek/Buch.class new file mode 100644 index 0000000000000000000000000000000000000000..f8b434d4fe789b5644acbc9b5fa5bcec8c01c0f5 GIT binary patch literal 1343 zcma)5-A)rx5dKd8mX^grEnr0u6|^l#{nt=Klp11_q8BB2;nit-(mixJOLor^F+PY7 z;e{p=6E1uJAIdmq+r&y6LpJAccIKOzZ)Se|KKlvaC7xvvL)=2bMiME8nQhr}rKcUy ztL%!76pA7BTq>!z7>dQl0YByym#c22seP%s)lo^kw4cTV(iSo{CSfyVhd{T(w!@I* zq4s=++^D&+y<{VcX$CtGQVYe^NA9=`tZshhY+N>|NlpJ;Bbl`^XVj;KAG94IRj9hb z0eAcy<#@$L0aqF34|z}2Jk{p4_m_D<1LpYxrW!~?mqXWc@KmM?MRAurg4tXDnm?m2&OCa%P??-bUHi~#BaP< zsx!=ze3yUN7rx7d>I$FuF@?>L{FTsLx`di9j?FLA^g_QacBF|aZK}6ndVt8@_BW zp)&!R1T4^gjb5MVouV^eURz)M0ah*~PGOa2lc$*a7FjLQo+B*~qJ=c3kfCv!#1cui z`nI@^WqJ_``Lzkz+-T&Y2=Zps5RYUg5`&aC(@Ie=+{CRxB@a>)kt7@W z>f^=+zNiyMEmP+$^J6VnaeLtNMZ^X$SN@I}S{AK5t*JB217FX@Q5Zs-8^jUEok**Q W5}gx-Yw{@L0lhMGdx*z)iozeRAu+@N literal 0 HcmV?d00001 diff --git a/out/production/Biblio/Bibliothek/CD.class b/out/production/Biblio/Bibliothek/CD.class new file mode 100644 index 0000000000000000000000000000000000000000..a10f28515a538c8cbfcdb51bea49f70e1a53f540 GIT binary patch literal 1333 zcma)5-A)rh6#k}vOUu?mEnro!Drj4f`mdpe2yKW>ie5nQ!mDXJX@@SeWOqs=@j-kD zFEo*uaNz^^P{uRcO)R!CWV3T-zMS)&|6jk)e*)OT%M>DrT8P<*Bf&7cEnALsbx-sw zyP_k7Vo1D_O6pC9VzGJ1Pk6=Qs$1F9o>blHIMOH`Br%1gg_MnH*bM0r(psG%*&hhy zYe#qt*>M76eZ@uwGvr%)yxsR1Si`_s8&?fuTuUt+gUs2OH;OaD^V>Zk)j)OqL*DbU zl;1TQd0b~$IO2U#b5)z`_fq%h=4-Ar(QaHWrABEyOor;^jK@u>L=3T-+Yt~;9S)HPZxH5ldy z-{l_uR6ca=a^a z&+YhASY^o9>Kg@CIB^x7MOIoPu^+T9lfZ)%)={zW(6r+b!}8xLlIq0mi*T5R9ope- z?RuvSpGV6ZDh_?V;i}^Zf4S+p{lW2s85}A31;hQ*V=+Pf!-)R7)}d(Y>S#$qiW+yE zJ(@czy4_Gpcr}OnzVIzPWmp-@X;P>bo--`{UzLV_m=|u-d`D=EBlOWC1vlCXk}=Q@ z;0B#H>Gg@;36i<;>e}KDuyQ_j2CF<5KSTOkV6{kRmb5^O7LrIKMT<0zB|iQ;$SnT= literal 0 HcmV?d00001 diff --git a/out/production/Biblio/Bibliothek/DVD.class b/out/production/Biblio/Bibliothek/DVD.class new file mode 100644 index 0000000000000000000000000000000000000000..5708523a9a764d2fbbc00a82cb1e061761efbe14 GIT binary patch literal 1354 zcma)5-EI;=6#fP%3)^jJk+z~%QCkbN7XLM^X>4g4NkA`X@WQJBCNO2YOLm9GCO(J{ z;e{qPCcW?hd?@3YWusJxX*TnB_MGp0=kMpQ^B(|q@xnv|Q3EjxQ;0Ln@5!buUDXx6 zQcbj_a2Vn*r6bi2Lq1kA3+m|yQH>Er=#L8}4 zFr=!|5pM>^P2nB#rcIJ`)opRR!9A(pp)jVplK9S5FD7)GAtKv^(h+KR;M+oW!-Pfi zg$lz0$!q*WLwGh9PDgl@9$i?IxwRMAg7EhMWIar70Z7h1=Bc5o+rQ zeKcLcjV6W87-%MNo%S2_`bh6MotfhL#`1TtVm5XLqqs12hMBK{)iUjA(gGnGNMZ&i z4c0Vnl4NISi(AOii%`g~MacR_!xu2f=%GV2kZC3wDWj*BSTNkd-H^!!o!T-I`>c0p zzwtnl3VaQ5BcU(qgiBavCR(oIUg+~xkPTq5_zm;43|bjlGv`@uh#LrLNFN!*MVd&Op`(#0 z?z>IvKGSy_`fih!KGLR16B_fOU-GT1Kcc^)Yjv%zy8F(IU}Pz7ztnhX<{sU1&OUpe zduH_4fA9STz(e>`91%n{wCQL^hd}Q|bG2;RZc&!9PgbQP&~eVRO!vINSZeM$BXBQ1V2qrOS%xC8wHNuyRR$g(Mm(vtIX%~V?wK7g8Qma}t=noF{(!#W0VCy^WZ zyxd@lGpV^-LFCdQ&-I#>cTL;MPTN+sR*_Dw3wL2q!;p?)92MyC3g6Enpsm}^B_m%H z7ztSMzHAPZUQU9W6ry7SQ!RkZ{x>A|U{u2i72%}7-~p1RWCDl65SrLfZHPUp*r^K|gS12wOa->noDGercWHBkwW*HUgmu!|jhAHYg zk_u!^$8aBM8%bSqHc3;Jk~!%lTkYLC-h=xE1}a8LlJ30WK4rQ^MZ9ZRZdKs^a1HO= zX3Y@dIE$Qyb2=UX+w~5w%*J9U+=eQx%+_h(D#(*wR>EJfe^o5$N-k@DqrBgPfRgeyIwxwp%p4X!~9>W|{6r{Uky0R?Lp9&fw ze7=&1VnI>%xWLI4#I$gU;e7(b%S`+B%PMWnDvVfWzUYor-rg;gc{ibOFX~vrlRWT5 z@I+1KO9f+9t{H5DfjSV^tjO$~oj1xehAVS%Jcajbcv{Dba`gFa+`~??>`k@t13Es4 z53xYAdQtMQuxm~P_&t|=(XlN%JMCQ#awvA5g`r_pM;>eSX7yaINXN8k(pIIrDb?ve zAC7ns#BYs8WcBkNio}AR#k!6Hc#JjDFk@^{>S!uG+wtJvIY;=f> z7Rb)$nBB1n>>=x#G(AM!i>{F`%^Mq@1RB0nZ?w?a6S%8vR94rF(I%Eg&!|%}+aj4F zUT~n+U7M&MKiely2SCe#DH^?G!E*S;3OsC6BwQ9K6IA0g-nv<88P1Q?r?_oNj zrX0~S)5GO=y&d>@9KXOz8eZ1%OZ-aU_`x&8w65AE&IykzW;fQ2ylXpK z0$r8x>Tlum6FB)`A2F=8vaF8I*>qQrlw_z$_uby8mZ|I-jW%$^C+R)1uLOt+TA2{UW) zF+E*2s#RIl@G3`kQ%$WD)9{+W(c5q3`0(Y$F?L{tLp8!bz94#ceD&kClW$7xsPNO` zO7hXy#%o{Z)cBtvGQ)2|%k;d7?$C=^Y`VDlCZt`b^&{Q*OIIH1{ zH<{8~^Vg7C^M4|u1|{uE-{%QfNi?Y#9lwDGBiP39_~0(4w{eKb#&UnEoXq@; hw(sD(crm!!=G_ii`jPkf6a1e0;#~g$f5huJ@*i-fw5$LC literal 0 HcmV?d00001 diff --git a/out/production/Biblio/Bibliothek/Main.class b/out/production/Biblio/Bibliothek/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..64caaf1d5208b9a988906047613de67eb5ff4fd2 GIT binary patch literal 1692 zcma)6-*XyO6#i~l*v)41gH4+jjY^}jP?8YhuL`Y}1Zzkj)sPTr{k6a?YywMW*^Q2m zKJ`go`snmQ{R8X^OvUlVH~$3x7{_y$WZ0NGBh2jHbI-Zo`ObIl*+2jO^>+YS9H|&X zK!&6th!Dffp>bj)TZYw0-m4z+n!^yfWm=~59z!4&FUwFEqU&b0Wp?#IgtE)nFm2RX-}70j*?E&lOatHo`>)CA`cKr0{&5;nG=@r^+dj2}E&C#)5`d@fyRV$Mg(_q&jvW$SIzQV^p$vtFGysLrfq8PQU$**5EribX65;g%V$`_ulX zaPhLxCaGanXfsL0dPzKK1lqieHyEaU{abfyO$Bcehjov`I}Cb`+tE#K+tE5LcBw_w z;CD&tt(9H+NB26dBa>5G*N_qHZZTy37rXq$PUpq#qiZ6x<<3Igimg!+74R z@ngsAkX$)x@kZ08W_OO8#BZlVBCEI!>a&awHEbeJA#GkKj+>_Sjr-8$4Q?^a#R|SG zMK2&D@^6z=KF@w$#TJU9v>k@UbEigOzR4gEapEHlAB%Adb{)fZWR%V;T{KK0A#HT( zbW5iTrp0&Mc9q+EMzuvddZAM@T4lpFg?+jyIZd-m)tnAN`8dX zHqdm{PiQU!j%x~ad^z^>bW|;MT)W2annJ2^A?1pgPF%w-ee1+;43r%qdhU^xq&K5? z@J1i(spsCOr*H!SlSLzp z8MFH302w=p9LC@8&b(_C{Z0Mt zu>7NbGc5hmM>-uG;C4lSU(bf+zx0hT9{2GtW= D8#_tjpEam%jB!b#1g_~+lZe*u_z7p}x2%em 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 C|D^W- literal 0 HcmV?d00001 diff --git a/out/production/Biblio/Bibliothek/User.class b/out/production/Biblio/Bibliothek/User.class new file mode 100644 index 0000000000000000000000000000000000000000..49bb8c58ea8d9d56c20710938aa0ee26879fdd06 GIT binary patch literal 2369 zcmaJ?ZC4vb6n-WNEJ>HQP||{xh89W^D3SVB4ORh-MFXvdf~CGql4-JJvm19ec<7Jt zbNvN=wH|4Y*yERe^GA8Sv%3i!SUovsW^(5~_dfS+_V0gA{sOQDJAnwI3Sue-Fvu`= zzz=y|=SDq$uW}%&4#VK8W@yeGhG-_c8^;jh3KA+VKxG(R*DAVZIt|gxKd^UA7V&#ze)KPqXqlfW3FQvITeNuw0Ru5{JTi+!6H(C!!S1zQoL^xGE!$ zlNViR6?2$p7&+xA9TAe(D8|W5AV@D)h3tMD3&<$Qs>ornFP-Hh+Yv27 zn;o(->47yff1lFhP?7|1xiQ>Sv5Y*!P+d4Xnj>_Ei0E~t?i3gnLU@K`Y?s=2!>p0v(UN9} z?M|yAtQ}s_Ns=s?Rj%)HOOyY7Va#c0RFLtYTRAf1a)3&`NiC(&zD=V+>7>(INY^L3 zozM%zW$fp%C;YG2MqBRmkY%sa8B&=bA8$|!Sqg5@Q>Ds>C@>6{9bRp2@pd<4Pkld7 z8&a}NT^DP{6QR}R%qGfa$Eu2=CX*DG!7t0%qA^)FO~-aD-rf>U!>rju_@212bb~wT z1-6h5ya3BXs4z@PDNSSA(5ek5EeHG6OF7tdO_`iJg;Kk`dMVq*Z5XA&oFVjOpouY0UhOjntZrj3EVA52a ziz$q%f*%-W{$G_^#)~U9OK*3CUZ*Hx@+(27n0)u$ogQ?06YkPEf=wuN9>8a`eom4G zA)>TT=U#y27LTFimX0x;`x9diUm$smiDxdZL~Dw0AnP%*8^0A|?+B z6+>icgwFdtZclw~MW4_I5qJzg@&y}b85VtpDW9R_eu7U!S!Ss0S&Y+%_6inhLT}P% zARk~^?6EBNv%HmzF+6f3jpA!!9>F*GmiB3ip-vHe=dRpctL`e$qWc8h8EC`8)W2PP BCN=;7 literal 0 HcmV?d00001 diff --git a/out/production/Biblio/Bibliothek/Videospiel.class b/out/production/Biblio/Bibliothek/Videospiel.class new file mode 100644 index 0000000000000000000000000000000000000000..ad9cfa23b380d3e1318cb0cf7f5cdd5291f3fc5c GIT binary patch literal 1416 zcma)5-A)rh6#k}vOV`ChDPUEwDrj3O^hL@M_wQ?a*bn*`1;!K8O$D zg(eacE_?tV%6Mj5rP_@lo7tK3<(%*Q|M+?I9l&GUHxWV9K+HlM35Mwn*|4RnI-*c z$@uFGv5MOg45^xQ#Ebr3LwGy9VH1+BxlL}@xhJ(e1Y@crDWmyXXyw-!BChuX8@y2@7`?`;Xyaa;ZbRv1=~^&aF{F3$?3+^gTSK}ae0^iTUqOeJv5#45@L zuIsMeU|2dHOzG^qT``=`L8CW$Q@P#&!^hF43>61~JmXHw7XDJrb-Vpu$XJi`?k~fg zgPsUce>0;0vau_gYHhS$Ly8Kw?QI%i>WEc!9N|@L?)$x6UkKTpyJk`r`iiYujsZ(zl2><~sV8$ZP4m%wU) z{%O(zF&ao>5+-JdbCHnsfh{f|M-s7+UyGRai}p5%Afxvc(E!ttXr_!_c8Y@G5-txT zDbcMhBk@oA5A8P*AgRFDfHyMqMU!v>%S@={GOi4LJ_@P<%oV?4ip~rjgU;j;=7G=u j#E~6gn;XUv#nnJ7j{@Bj#H;ft;wDKZy>8(S?jidNwF^#? literal 0 HcmV?d00001 diff --git a/out/production/Biblio/Vorgehen.txt b/out/production/Biblio/Vorgehen.txt new file mode 100644 index 0000000..9446c18 --- /dev/null +++ b/out/production/Biblio/Vorgehen.txt @@ -0,0 +1,6 @@ +1- Grundgerüst erstellen. Es soll Bücher sowie verschiedene Medien geben +2- Man soll die Medien oder Bücker ausleihen können +3- Man soll nach Ausleihbaren Sachen suchen können +4- Wenn man etwas ausgeliehen hat soll man die Ausleihdauer verlängern können +5- Wenn die Ausleihzeit beendet ist, soll man die entstandenen Kosten bezahlen +6- Es soll eine vergünstigung für Schüler und Studenten geben \ No newline at end of file diff --git a/out/production/Biblio/fragen.txt b/out/production/Biblio/fragen.txt new file mode 100644 index 0000000..83dc697 --- /dev/null +++ b/out/production/Biblio/fragen.txt @@ -0,0 +1,6 @@ +Wenn ein Kunde etwas länger behält und nicht verlängert und auch nie wieder kommt um zu bezahlen was passiert dann? Erhöht sich die Summe für den Verzug bis ins Unendliche oder sagt man ab einem gewissen punkt ist schluss? +--> +Kann der Kunde sein Konto löschen? +--> +Wie soll das mit dem Datum gehandelt werden, so wie beim Parkhaus oder gibt es diesmal eine andere Lösung (eingeschlossen mit enter heutiges Datum)? +--> \ No newline at end of file