diff --git a/Biblio/src/Bibliothek/Bibliotheksverwaltung.java b/Biblio/src/Bibliothek/Bibliotheksverwaltung.java index 50cd3b9..6e2c515 100644 --- a/Biblio/src/Bibliothek/Bibliotheksverwaltung.java +++ b/Biblio/src/Bibliothek/Bibliotheksverwaltung.java @@ -47,25 +47,29 @@ public class Bibliotheksverwaltung { } public void medienAusleihen(String medienId) { - if (eingeloggterBenutzer == null || !(eingeloggterBenutzer instanceof Kunde)) { - System.out.println("Bitte loggen Sie sich als Kunde ein, um Medien auszuleihen."); + medienId = medienId.trim().toUpperCase(); // Normalisierung + Medien medien = medienBestand.get(medienId); + + if (medien == null) { + System.out.println("Medium mit der ID " + medienId + " wurde nicht gefunden."); return; } - Medien medien = medienBestand.get(medienId); - if (medien == null) { - System.out.println("Medium nicht gefunden."); + if (!medien.verfuegbar()) { + System.out.println("Das Medium ist bereits ausgeliehen."); + return; + } + if (!(eingeloggterBenutzer instanceof Kunde)) { + System.out.println("Nur Kunden können Medien ausleihen."); 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."); - } + kunde.medienAusleihen(medien); + medien.setVerfuegbar(false); + System.out.println("Medium erfolgreich ausgeliehen: " + medien.getTitel()); } + + public void medienZurueckgeben(String medienId, String kundenId) { Medien medien = medienBestand.get(medienId); Kunde kunde = kundenListe.get(kundenId); @@ -104,8 +108,13 @@ public class Bibliotheksverwaltung { } public void medienHinzufuegen(Medien medien) { - medienBestand.put(medien.getId(), medien); - System.out.println("Medium hinzugefügt: " + medien.getTitel()); + String id = medien.getId().trim().toUpperCase(); // Normalisierung + if (medienBestand.containsKey(id)) { + System.out.println("Ein Medium mit dieser ID existiert bereits: " + id); + return; + } + medienBestand.put(id, medien); + System.out.println("Medium hinzugefügt: " + medien.getTitel() + " (ID: " + id + ")"); } public boolean loginKunde(String kundenId) { diff --git a/Biblio/src/Bibliothek/Brettspiel.java b/Biblio/src/Bibliothek/Brettspiel.java index 55651a9..9934ddb 100644 --- a/Biblio/src/Bibliothek/Brettspiel.java +++ b/Biblio/src/Bibliothek/Brettspiel.java @@ -4,7 +4,7 @@ public class Brettspiel extends Medien { private int spieleranzahl; private int spieldauer; - public Brettspiel(String id, String titel, int erscheinungsjahr, int spieleranzahl, int spieldauer) { + public Brettspiel(String titel, String id, int erscheinungsjahr, int spieleranzahl, int spieldauer) { super(id, titel, erscheinungsjahr); this.spieleranzahl = spieleranzahl; this.spieldauer = spieldauer; diff --git a/Biblio/src/Bibliothek/Buch.java b/Biblio/src/Bibliothek/Buch.java index c75c93f..32c58bd 100644 --- a/Biblio/src/Bibliothek/Buch.java +++ b/Biblio/src/Bibliothek/Buch.java @@ -4,8 +4,8 @@ public class Buch extends Medien { private String autor; private int seitenanzahl; - public Buch(String id, String titel, int erscheinungsjahr, String autor, int seitenanzahl) { - super(id, titel, erscheinungsjahr); + public Buch(String titel, String id, int erscheinungsjahr, String autor, int seitenanzahl) { + super(titel ,id, erscheinungsjahr); this.autor = autor; this.seitenanzahl = seitenanzahl; } diff --git a/Biblio/src/Bibliothek/CD.java b/Biblio/src/Bibliothek/CD.java index 5821935..e66d0d8 100644 --- a/Biblio/src/Bibliothek/CD.java +++ b/Biblio/src/Bibliothek/CD.java @@ -4,8 +4,8 @@ public class CD extends Medien { private String kuenstler; private int tracks; - public CD(String id, String titel, int erscheinungsjahr, String kuenstler, int tracks) { - super(id, titel, erscheinungsjahr); + public CD(String titel, String id, int erscheinungsjahr, String kuenstler, int tracks) { + super(titel, id, erscheinungsjahr); this.kuenstler = kuenstler; this.tracks = tracks; } diff --git a/Biblio/src/Bibliothek/DVD.java b/Biblio/src/Bibliothek/DVD.java index 9c0f774..ef7025d 100644 --- a/Biblio/src/Bibliothek/DVD.java +++ b/Biblio/src/Bibliothek/DVD.java @@ -4,8 +4,8 @@ public class DVD extends Medien { private String regisseur; private int spieldauer; - public DVD(String id, String titel, int erscheinungsjahr, String regisseur, int spieldauer) { - super(id, titel, erscheinungsjahr); + public DVD(String titel, String id, int erscheinungsjahr, String regisseur, int spieldauer) { + super(titel, id, erscheinungsjahr); this.regisseur = regisseur; this.spieldauer = spieldauer; } diff --git a/Biblio/src/Bibliothek/Main.java b/Biblio/src/Bibliothek/Main.java index e3afdd2..8275e90 100644 --- a/Biblio/src/Bibliothek/Main.java +++ b/Biblio/src/Bibliothek/Main.java @@ -2,7 +2,6 @@ package Bibliothek; public class Main { public static void main(String[] args) { - Bibliotheksverwaltung verwaltung = new Bibliotheksverwaltung(); Kunde kunde1 = new Kunde("S001", "Max Mustermann", true); @@ -13,13 +12,28 @@ public class Main { 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); + Medien buch1 = new Buch("Der Herr der Ringe", "B001", 1954, "J.R.R. Tolkien", 1200); + Medien buch2 = new Buch("Game of Thrones 1: Der Winter naht", "B002", 1996, "George R.R. Martin", 576); + Medien buch3 = new Buch("Harry Potter and the Prisoner of Azkaban", "B003", 2014, "J.K. Rowling", 480); + Medien dvd1 = new DVD("Inception", "D001", 2010, "Christopher Nolan", 148); + Medien dvd2 = new DVD("Batman 'The Dark Knight'", "D002", 2008, "Christopher Nolan", 152); + Medien dvd3 = new DVD("Star Wars: Episode 3 'Die Rache der Sith'", "D003", 2005, "George Lucas", 140); + Medien cd1 = new CD("Black Ice", "CD001", 2001, "ACDC", 15); + Medien cd2 = new CD("From Zero", "CD002", 2024, "Linkin Park", 11); + Medien cd3 = new CD("The War to end all Wars", "CD003", 2022, "Sabaton", 10); + verwaltung.medienHinzufuegen(buch1); + verwaltung.medienHinzufuegen(buch2); + verwaltung.medienHinzufuegen(buch3); + verwaltung.medienHinzufuegen(dvd1); + verwaltung.medienHinzufuegen(dvd2); + verwaltung.medienHinzufuegen(dvd3); + verwaltung.medienHinzufuegen(cd1); + verwaltung.medienHinzufuegen(cd2); + verwaltung.medienHinzufuegen(cd3); - UI tui = new UI(verwaltung); + // Starte UI + UI tui = new UI(verwaltung); tui.start(); } } diff --git a/Biblio/src/Bibliothek/UI.java b/Biblio/src/Bibliothek/UI.java index 1c7490e..d63b237 100644 --- a/Biblio/src/Bibliothek/UI.java +++ b/Biblio/src/Bibliothek/UI.java @@ -90,7 +90,6 @@ public class UI { boolean istStudent = studentAntwort.equals("ja"); Kunde neuerKunde = verwaltung.registriereKunde(name, istStudent); - System.out.println("Neuer Kunde registriert: " + neuerKunde.getName() + " (ID: " + neuerKunde.getId() + ")"); } @@ -118,7 +117,7 @@ public class UI { return; } System.out.print("Medium-ID eingeben: "); - String medienId = scanner.nextLine(); + String medienId = scanner.nextLine().trim(); verwaltung.medienAusleihen(medienId); } diff --git a/Biblio/src/Bibliothek/Videospiel.java b/Biblio/src/Bibliothek/Videospiel.java index 37de2b6..416778b 100644 --- a/Biblio/src/Bibliothek/Videospiel.java +++ b/Biblio/src/Bibliothek/Videospiel.java @@ -4,7 +4,7 @@ public class Videospiel extends Medien { private String plattform; private String entwickler; - public Videospiel(String id, String titel, int erscheinungsjahr, String plattform, String entwickler) { + public Videospiel(String titel, String id, int erscheinungsjahr, String plattform, String entwickler) { super(id, titel, erscheinungsjahr); this.plattform = plattform; this.entwickler = entwickler; diff --git a/out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class b/out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class index a057aa6..4b65878 100644 Binary files a/out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class and b/out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class differ diff --git a/out/production/Biblio/Bibliothek/Brettspiel.class b/out/production/Biblio/Bibliothek/Brettspiel.class index 09f0618..9461f45 100644 Binary files a/out/production/Biblio/Bibliothek/Brettspiel.class and b/out/production/Biblio/Bibliothek/Brettspiel.class differ diff --git a/out/production/Biblio/Bibliothek/Buch.class b/out/production/Biblio/Bibliothek/Buch.class index f8b434d..8c0abdc 100644 Binary files a/out/production/Biblio/Bibliothek/Buch.class and b/out/production/Biblio/Bibliothek/Buch.class differ diff --git a/out/production/Biblio/Bibliothek/CD.class b/out/production/Biblio/Bibliothek/CD.class index a10f285..34c51cc 100644 Binary files a/out/production/Biblio/Bibliothek/CD.class and b/out/production/Biblio/Bibliothek/CD.class differ diff --git a/out/production/Biblio/Bibliothek/DVD.class b/out/production/Biblio/Bibliothek/DVD.class index 5708523..1355ee2 100644 Binary files a/out/production/Biblio/Bibliothek/DVD.class and b/out/production/Biblio/Bibliothek/DVD.class differ diff --git a/out/production/Biblio/Bibliothek/Main.class b/out/production/Biblio/Bibliothek/Main.class index 64caaf1..ebca90a 100644 Binary files a/out/production/Biblio/Bibliothek/Main.class and b/out/production/Biblio/Bibliothek/Main.class differ diff --git a/out/production/Biblio/Bibliothek/UI.class b/out/production/Biblio/Bibliothek/UI.class index 55b84ae..33dc2ae 100644 Binary files a/out/production/Biblio/Bibliothek/UI.class and b/out/production/Biblio/Bibliothek/UI.class differ diff --git a/out/production/Biblio/Bibliothek/Videospiel.class b/out/production/Biblio/Bibliothek/Videospiel.class index ad9cfa2..64338f0 100644 Binary files a/out/production/Biblio/Bibliothek/Videospiel.class and b/out/production/Biblio/Bibliothek/Videospiel.class differ