Nach Tests anpassung um Programm funktional zu machen

development
Leon Maximilian Löhle 2024-11-18 21:26:07 +01:00
parent cf66cc6bd2
commit f29119eb09
16 changed files with 52 additions and 30 deletions

View File

@ -47,25 +47,29 @@ public class Bibliotheksverwaltung {
} }
public void medienAusleihen(String medienId) { public void medienAusleihen(String medienId) {
if (eingeloggterBenutzer == null || !(eingeloggterBenutzer instanceof Kunde)) { medienId = medienId.trim().toUpperCase(); // Normalisierung
System.out.println("Bitte loggen Sie sich als Kunde ein, um Medien auszuleihen."); Medien medien = medienBestand.get(medienId);
if (medien == null) {
System.out.println("Medium mit der ID " + medienId + " wurde nicht gefunden.");
return; return;
} }
Medien medien = medienBestand.get(medienId); if (!medien.verfuegbar()) {
if (medien == null) { System.out.println("Das Medium ist bereits ausgeliehen.");
System.out.println("Medium nicht gefunden."); return;
}
if (!(eingeloggterBenutzer instanceof Kunde)) {
System.out.println("Nur Kunden können Medien ausleihen.");
return; return;
} }
Kunde kunde = (Kunde) eingeloggterBenutzer; Kunde kunde = (Kunde) eingeloggterBenutzer;
if (medien.verfuegbar()) { kunde.medienAusleihen(medien);
kunde.medienAusleihen(medien); medien.setVerfuegbar(false);
medien.setVerfuegbar(false); System.out.println("Medium erfolgreich ausgeliehen: " + medien.getTitel());
System.out.println("Medium erfolgreich ausgeliehen: " + medien.getTitel());
} else {
System.out.println("Medium ist bereits ausgeliehen.");
}
} }
public void medienZurueckgeben(String medienId, String kundenId) { public void medienZurueckgeben(String medienId, String kundenId) {
Medien medien = medienBestand.get(medienId); Medien medien = medienBestand.get(medienId);
Kunde kunde = kundenListe.get(kundenId); Kunde kunde = kundenListe.get(kundenId);
@ -104,8 +108,13 @@ public class Bibliotheksverwaltung {
} }
public void medienHinzufuegen(Medien medien) { public void medienHinzufuegen(Medien medien) {
medienBestand.put(medien.getId(), medien); String id = medien.getId().trim().toUpperCase(); // Normalisierung
System.out.println("Medium hinzugefügt: " + medien.getTitel()); 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) { public boolean loginKunde(String kundenId) {

View File

@ -4,7 +4,7 @@ public class Brettspiel extends Medien {
private int spieleranzahl; private int spieleranzahl;
private int spieldauer; 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); super(id, titel, erscheinungsjahr);
this.spieleranzahl = spieleranzahl; this.spieleranzahl = spieleranzahl;
this.spieldauer = spieldauer; this.spieldauer = spieldauer;

View File

@ -4,8 +4,8 @@ public class Buch extends Medien {
private String autor; private String autor;
private int seitenanzahl; private int seitenanzahl;
public Buch(String id, String titel, int erscheinungsjahr, String autor, int seitenanzahl) { public Buch(String titel, String id, int erscheinungsjahr, String autor, int seitenanzahl) {
super(id, titel, erscheinungsjahr); super(titel ,id, erscheinungsjahr);
this.autor = autor; this.autor = autor;
this.seitenanzahl = seitenanzahl; this.seitenanzahl = seitenanzahl;
} }

View File

@ -4,8 +4,8 @@ public class CD extends Medien {
private String kuenstler; private String kuenstler;
private int tracks; private int tracks;
public CD(String id, String titel, int erscheinungsjahr, String kuenstler, int tracks) { public CD(String titel, String id, int erscheinungsjahr, String kuenstler, int tracks) {
super(id, titel, erscheinungsjahr); super(titel, id, erscheinungsjahr);
this.kuenstler = kuenstler; this.kuenstler = kuenstler;
this.tracks = tracks; this.tracks = tracks;
} }

View File

@ -4,8 +4,8 @@ public class DVD extends Medien {
private String regisseur; private String regisseur;
private int spieldauer; private int spieldauer;
public DVD(String id, String titel, int erscheinungsjahr, String regisseur, int spieldauer) { public DVD(String titel, String id, int erscheinungsjahr, String regisseur, int spieldauer) {
super(id, titel, erscheinungsjahr); super(titel, id, erscheinungsjahr);
this.regisseur = regisseur; this.regisseur = regisseur;
this.spieldauer = spieldauer; this.spieldauer = spieldauer;
} }

View File

@ -2,7 +2,6 @@ package Bibliothek;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
Bibliotheksverwaltung verwaltung = new Bibliotheksverwaltung(); Bibliotheksverwaltung verwaltung = new Bibliotheksverwaltung();
Kunde kunde1 = new Kunde("S001", "Max Mustermann", true); Kunde kunde1 = new Kunde("S001", "Max Mustermann", true);
@ -13,13 +12,28 @@ public class Main {
Admin admin = new Admin("A001", "Anna Schmidt"); Admin admin = new Admin("A001", "Anna Schmidt");
verwaltung.getAdminListe().put(admin.getId(), admin); verwaltung.getAdminListe().put(admin.getId(), admin);
Medien buch = new Buch("B001", "Der Herr der Ringe", 1954, "J.R.R. Tolkien", 1200); Medien buch1 = new Buch("Der Herr der Ringe", "B001", 1954, "J.R.R. Tolkien", 1200);
Medien dvd = new DVD("D001", "Inception", 2010, "Christopher Nolan", 148); Medien buch2 = new Buch("Game of Thrones 1: Der Winter naht", "B002", 1996, "George R.R. Martin", 576);
verwaltung.medienHinzufuegen(buch); Medien buch3 = new Buch("Harry Potter and the Prisoner of Azkaban", "B003", 2014, "J.K. Rowling", 480);
verwaltung.medienHinzufuegen(dvd); 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(); tui.start();
} }
} }

View File

@ -90,7 +90,6 @@ public class UI {
boolean istStudent = studentAntwort.equals("ja"); boolean istStudent = studentAntwort.equals("ja");
Kunde neuerKunde = verwaltung.registriereKunde(name, istStudent); 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; return;
} }
System.out.print("Medium-ID eingeben: "); System.out.print("Medium-ID eingeben: ");
String medienId = scanner.nextLine(); String medienId = scanner.nextLine().trim();
verwaltung.medienAusleihen(medienId); verwaltung.medienAusleihen(medienId);
} }

View File

@ -4,7 +4,7 @@ public class Videospiel extends Medien {
private String plattform; private String plattform;
private String entwickler; 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); super(id, titel, erscheinungsjahr);
this.plattform = plattform; this.plattform = plattform;
this.entwickler = entwickler; this.entwickler = entwickler;