Alle Aufgaben erledigt, Verbesserungen folgen
parent
a851d8796f
commit
af98476a1a
|
@ -14,16 +14,16 @@ public class BibTest {
|
||||||
BibliothekSystem system = new BibliothekSystem();
|
BibliothekSystem system = new BibliothekSystem();
|
||||||
|
|
||||||
// Benutzer erstellen
|
// Benutzer erstellen
|
||||||
Benutzer erwachsener = new Erwachsener("Max" , "Mustermann", 35);
|
Benutzer erwachsener = new Erwachsener("Max", 35);
|
||||||
Benutzer student = new Student("Anna", "Beispiel", 21);
|
Benutzer student = new Student("Anna", 21);
|
||||||
Admin admin = new Admin("Lisa", "Admin", 40);
|
Admin admin = new Admin("Lisa Admin", 40);
|
||||||
|
|
||||||
system.benutzerRegistrieren(erwachsener);
|
system.benutzerRegistrieren(erwachsener);
|
||||||
system.benutzerRegistrieren(student);
|
system.benutzerRegistrieren(student);
|
||||||
|
|
||||||
// Medien erstellen
|
// Medien erstellen
|
||||||
Medium buch = new Buch(123, "Java Programmieren", "BP", 2020);
|
Medium buch = new Buch(123, "Java Programmieren", "BP", 2020,"Buch");
|
||||||
Medium dvd = new DVD(456, "Der große Film", "JP",2018);
|
Medium dvd = new DVD(456, "Der große Film", "JP",2018, "DVD");
|
||||||
|
|
||||||
// Datum setzen und Ausleihe simulieren
|
// Datum setzen und Ausleihe simulieren
|
||||||
system.datumAendern(LocalDate.of(2024, 11, 10));
|
system.datumAendern(LocalDate.of(2024, 11, 10));
|
||||||
|
@ -35,11 +35,13 @@ public class BibTest {
|
||||||
// Rückgabe simulieren
|
// Rückgabe simulieren
|
||||||
system.datumAendern(LocalDate.of(2024, 12, 15)); // Datum ändern
|
system.datumAendern(LocalDate.of(2024, 12, 15)); // Datum ändern
|
||||||
student.rueckgabe(456, system.getAktuellesDatum());
|
student.rueckgabe(456, system.getAktuellesDatum());
|
||||||
|
|
||||||
|
//Bezahlung der Gebühren simulieren
|
||||||
system.zeigeGebuehren(erwachsener);
|
system.zeigeGebuehren(erwachsener);
|
||||||
admin.bestaetigeGebuehrenzahlung(erwachsener);
|
admin.bestaetigeGebuehrenzahlung(erwachsener);
|
||||||
system.zeigeGebuehren(erwachsener);
|
system.zeigeGebuehren(erwachsener);
|
||||||
|
|
||||||
// Medien anzeigen
|
// Medien eines Benutzers anzeigen
|
||||||
erwachsener.anzeigenAusleihen();
|
erwachsener.anzeigenAusleihen();
|
||||||
|
|
||||||
// Benutzerinformationen anzeigen
|
// Benutzerinformationen anzeigen
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package LibrarySystem.UI;
|
||||||
|
|
||||||
|
import LibrarySystem.domain.benutzern.*;
|
||||||
|
import LibrarySystem.facade.BibliothekSystem;
|
||||||
|
|
||||||
|
public class BibliothekTest {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
BibliothekSystem system = new BibliothekSystem();
|
||||||
|
|
||||||
|
// Beispiel: Benutzer und Admin hinzufügen
|
||||||
|
Benutzer student = new Student("Ana Misk", 21);
|
||||||
|
Admin admin = new Admin("Alisa Admin", 40);
|
||||||
|
system.benutzerRegistrieren(student);
|
||||||
|
system.benutzerRegistrieren(admin);
|
||||||
|
|
||||||
|
// UI starten
|
||||||
|
UI ui = new UI(system);
|
||||||
|
ui.starten();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
package LibrarySystem.UI;
|
||||||
|
|
||||||
|
import LibrarySystem.domain.benutzern.*;
|
||||||
|
import LibrarySystem.facade.BibliothekSystem;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class UI {
|
||||||
|
private BibliothekSystem system;
|
||||||
|
private Scanner scanner;
|
||||||
|
|
||||||
|
public UI(BibliothekSystem system) {
|
||||||
|
this.system = system;
|
||||||
|
this.scanner = new Scanner(System.in);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void starten() {
|
||||||
|
while (true) {
|
||||||
|
System.out.println("Willkommen in der Bibliothek!");
|
||||||
|
System.out.println("1. Anmelden");
|
||||||
|
System.out.println("2. Medien durchsuchen");
|
||||||
|
System.out.println("3. Ausleihen eines Mediums");
|
||||||
|
System.out.println("4. Rückgabe eines Mediums");
|
||||||
|
System.out.println("5. Zeige ausgeliehene Gegenstände und Gebühren");
|
||||||
|
System.out.println("6. Verlängern der Leihfrist");
|
||||||
|
System.out.println("7. Admin-Login (Überfällige Gebühren verbuchen)");
|
||||||
|
System.out.println("0. Beenden");
|
||||||
|
System.out.print("Bitte wählen Sie eine Option: ");
|
||||||
|
int auswahl = scanner.nextInt();
|
||||||
|
scanner.nextLine();
|
||||||
|
|
||||||
|
switch (auswahl) {
|
||||||
|
case 1:
|
||||||
|
anmelden();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
durchsuchenMedien();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
ausleihenMedium();
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
rueckgabeMedium();
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
zeigeAusgelieheneMedienUndGebuehren();
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
verlaengernLeihfrist();
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
adminLogin();
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
System.out.println("Auf Wiedersehen!");
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
System.out.println("Ungültige Auswahl, bitte erneut versuchen.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void anmelden() {
|
||||||
|
System.out.print("Bitte geben Sie Ihre Kartennummer ein: ");
|
||||||
|
String kartennummer = scanner.nextLine();
|
||||||
|
Benutzer benutzer = system.anmelden(kartennummer);
|
||||||
|
if (benutzer != null) {
|
||||||
|
System.out.println("Erfolgreich angemeldet als: " + benutzer.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void durchsuchenMedien() {
|
||||||
|
System.out.println("Durchsuchen der Medien: (bitte nur Titel und Medienart eingeben)");
|
||||||
|
System.out.println("Titel: ");
|
||||||
|
String titel = scanner.nextLine();
|
||||||
|
System.out.println("Medienart: ");
|
||||||
|
String medienart = scanner.nextLine();
|
||||||
|
system.durchsuchenMedien(titel, medienart);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ausleihenMedium() {
|
||||||
|
System.out.print("Bitte geben Sie die ID des Mediums ein, das Sie ausleihen möchten: ");
|
||||||
|
String mediumId = scanner.nextLine();
|
||||||
|
// Beispiel: Medium finden und ausleihen
|
||||||
|
System.out.println("Medium mit ID " + mediumId + " ausgeliehen.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rueckgabeMedium() {
|
||||||
|
System.out.print("Bitte geben Sie die ID des Mediums ein, das Sie zurückgeben möchten: ");
|
||||||
|
String mediumId = scanner.nextLine();
|
||||||
|
// Beispiel: Medium zurückgeben
|
||||||
|
System.out.println("Medium mit ID " + mediumId + " zurückgegeben.");
|
||||||
|
}
|
||||||
|
private void zeigeAusgelieheneMedienUndGebuehren() {
|
||||||
|
System.out.print("Bitte geben Sie Ihre Kartennummer ein: ");
|
||||||
|
String kartennummer = scanner.nextLine();
|
||||||
|
Benutzer benutzer = system.anmelden(kartennummer);
|
||||||
|
if (benutzer != null) {
|
||||||
|
system.zeigeGebuehren(benutzer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void verlaengernLeihfrist() {
|
||||||
|
System.out.print("Bitte geben Sie die ID des Mediums ein, dessen Leihfrist Sie verlängern möchten: ");
|
||||||
|
String mediumId = scanner.nextLine();
|
||||||
|
System.out.println("Leihfrist für Medium mit ID " + mediumId + " verlängert.");
|
||||||
|
// Logik zur Verlängerung der Leihfrist hinzufügen
|
||||||
|
}
|
||||||
|
|
||||||
|
private void adminLogin() {
|
||||||
|
System.out.print("Bitte geben Sie Ihre Admin-Kartennummer ein: ");
|
||||||
|
String kartennummer = scanner.nextLine();
|
||||||
|
Benutzer admin = system.anmelden(kartennummer);
|
||||||
|
if (admin instanceof Admin) {
|
||||||
|
System.out.println("Admin erfolgreich eingeloggt.");
|
||||||
|
System.out.print("Bitte geben Sie die Kartennummer des Benutzers ein, dessen Gebühren Sie verbuchen möchten: ");
|
||||||
|
String benutzerKartennummer = scanner.nextLine();
|
||||||
|
Benutzer benutzer = system.anmelden(benutzerKartennummer);
|
||||||
|
if (benutzer != null) {
|
||||||
|
((Admin) admin).bestaetigeGebuehrenzahlung(benutzer);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
System.out.println("Ungültige Admin-Kartennummer.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ import java.time.LocalDate;
|
||||||
|
|
||||||
public class Admin extends Benutzer {
|
public class Admin extends Benutzer {
|
||||||
|
|
||||||
public Admin(String vorname, String nachname, int alter) {
|
public Admin(String name, int alter) {
|
||||||
super(vorname, nachname, alter, "A");
|
super(name, alter, "A");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -27,9 +27,9 @@ public class Admin extends Benutzer {
|
||||||
public void bestaetigeGebuehrenzahlung(Benutzer benutzer) {
|
public void bestaetigeGebuehrenzahlung(Benutzer benutzer) {
|
||||||
if(benutzer.getOffeneGebuehren() > 0) {
|
if(benutzer.getOffeneGebuehren() > 0) {
|
||||||
benutzer.bezahleGebuehren();
|
benutzer.bezahleGebuehren();
|
||||||
System.out.println("Gebühren von " + benutzer.getVorname() + " " + benutzer.getNachname() + " wurden erfolgreich bezahlt.");
|
System.out.println("Gebühren von " + benutzer.getName() + " wurden erfolgreich bezahlt.");
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Keine offene Gebühren für " + benutzer.getVorname() + " " + benutzer.getNachname() + ".") ;
|
System.out.println("Keine offene Gebühren für " + benutzer.getName() + ".") ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,17 +10,15 @@ import java.util.UUID;
|
||||||
|
|
||||||
public abstract class Benutzer {
|
public abstract class Benutzer {
|
||||||
private String kartennummer;
|
private String kartennummer;
|
||||||
private String vorname;
|
private String name;
|
||||||
private String nachname;
|
|
||||||
private int alter;
|
private int alter;
|
||||||
private List<Ausleihe> ausleihen;
|
private List<Ausleihe> ausleihen;
|
||||||
private double offeneGebuehren;
|
private double offeneGebuehren;
|
||||||
private boolean gebuehrenBezahlt;
|
private boolean gebuehrenBezahlt;
|
||||||
|
|
||||||
Benutzer(String vorname, String nachname, int alter, String prefix) {
|
Benutzer(String name, int alter, String prefix) {
|
||||||
this.kartennummer = generiereKartennummer(prefix);
|
this.kartennummer = generiereKartennummer(prefix);
|
||||||
this.vorname = vorname;
|
this.name = name;
|
||||||
this.nachname = nachname;
|
|
||||||
this.alter = alter;
|
this.alter = alter;
|
||||||
this.ausleihen = new ArrayList<>();
|
this.ausleihen = new ArrayList<>();
|
||||||
this.offeneGebuehren = 0.0;
|
this.offeneGebuehren = 0.0;
|
||||||
|
@ -44,7 +42,7 @@ public abstract class Benutzer {
|
||||||
public void ausleihen(Medium medium, LocalDate datum) {
|
public void ausleihen(Medium medium, LocalDate datum) {
|
||||||
Ausleihe neueAusleihe = new Ausleihe(medium, datum);
|
Ausleihe neueAusleihe = new Ausleihe(medium, datum);
|
||||||
ausleihen.add(neueAusleihe);
|
ausleihen.add(neueAusleihe);
|
||||||
System.out.println(vorname + " " + nachname + " hat \"" + medium.getTitel() + "\" ausgeliehen. Rückgabefrist: " + neueAusleihe.getRueckgabeFrist());
|
System.out.println(name + " hat \"" + medium.getTitel() + "\" ausgeliehen. Rückgabefrist: " + neueAusleihe.getRueckgabeFrist());
|
||||||
gebuehrenBezahlt = false; // Neue Ausleihe bedeutet potenziell offene Gebühren
|
gebuehrenBezahlt = false; // Neue Ausleihe bedeutet potenziell offene Gebühren
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,21 +97,14 @@ public abstract class Benutzer {
|
||||||
this.kartennummer = kartennummer;
|
this.kartennummer = kartennummer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getVorname() {
|
public String getName() {
|
||||||
return vorname;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVorname(String vorname) {
|
public void setName(String name) {
|
||||||
this.vorname = vorname;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNachname() {
|
|
||||||
return nachname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNachname(String nachname) {
|
|
||||||
this.nachname = nachname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAlter() {
|
public int getAlter() {
|
||||||
return alter;
|
return alter;
|
||||||
|
@ -137,6 +128,6 @@ public abstract class Benutzer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Vorame: " + vorname + ", Nachname: " + nachname + ", Alter: " + alter + ", Kartennummer: " + kartennummer;
|
return "Name: " + name + ", Alter: " + alter + ", Kartennummer: " + kartennummer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@ package LibrarySystem.domain.benutzern;
|
||||||
|
|
||||||
private static final double JAHRESGEBUEHR = 20.0;
|
private static final double JAHRESGEBUEHR = 20.0;
|
||||||
|
|
||||||
public Erwachsener(String vorname, String nachname, int alter) {
|
public Erwachsener(String name, int alter) {
|
||||||
super(vorname, nachname, alter, "E");
|
super(name, alter, "E");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,8 +4,8 @@ package LibrarySystem.domain.benutzern;
|
||||||
|
|
||||||
private static final double JAHRESGEBUEHR_ERMAESSIGT = 10.0;
|
private static final double JAHRESGEBUEHR_ERMAESSIGT = 10.0;
|
||||||
|
|
||||||
public Student(String vorname, String nachname, int alter) {
|
public Student(String name, int alter) {
|
||||||
super(vorname, nachname, alter, "S");
|
super(name, alter, "S");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,8 +4,8 @@ package LibrarySystem.domain.medien;
|
||||||
public class Brettspiel extends Medium {
|
public class Brettspiel extends Medium {
|
||||||
private static final int AUSLEIHDAUER = 14; // 2 Wochen
|
private static final int AUSLEIHDAUER = 14; // 2 Wochen
|
||||||
|
|
||||||
public Brettspiel(int ID, String titel, String autor, int erscheinungsjahr) {
|
public Brettspiel(int ID, String titel, String autor, int erscheinungsjahr, String medienart) {
|
||||||
super(ID, titel, autor, erscheinungsjahr);
|
super(ID, titel, autor, erscheinungsjahr, medienart);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,8 +5,8 @@ package LibrarySystem.domain.medien;
|
||||||
public class Buch extends Medium {
|
public class Buch extends Medium {
|
||||||
private static final int AUSLEIHDAUER = 28; //4 Wochen in Tagen
|
private static final int AUSLEIHDAUER = 28; //4 Wochen in Tagen
|
||||||
|
|
||||||
public Buch(int ID, String titel, String autor, int erscheinungsjahr) {
|
public Buch(int ID, String titel, String autor, int erscheinungsjahr, String medienart) {
|
||||||
super(ID, titel, autor, erscheinungsjahr);
|
super(ID, titel, autor, erscheinungsjahr, medienart);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -3,8 +3,8 @@ package LibrarySystem.domain.medien;
|
||||||
public class CD extends Medium {
|
public class CD extends Medium {
|
||||||
public static final int AUSLEIHDAUER = 14; // 2 Wochen
|
public static final int AUSLEIHDAUER = 14; // 2 Wochen
|
||||||
|
|
||||||
public CD(int ID, String titel, String autor, int erscheinungsjahr) {
|
public CD(int ID, String titel, String autor, int erscheinungsjahr, String medienart) {
|
||||||
super(ID, titel, autor, erscheinungsjahr);
|
super(ID, titel, autor, erscheinungsjahr, medienart);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -3,8 +3,8 @@ package LibrarySystem.domain.medien;
|
||||||
public class DVD extends Medium {
|
public class DVD extends Medium {
|
||||||
private static final int AUSLEIHDAUER = 7; // 1 Woche
|
private static final int AUSLEIHDAUER = 7; // 1 Woche
|
||||||
|
|
||||||
public DVD(int ID, String titel, String autor, int erscheinungsjahr) {
|
public DVD(int ID, String titel, String autor, int erscheinungsjahr, String medienart) {
|
||||||
super(ID, titel, autor, erscheinungsjahr);
|
super(ID, titel, autor, erscheinungsjahr, medienart);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,12 +5,16 @@ package LibrarySystem.domain.medien;
|
||||||
private String titel;
|
private String titel;
|
||||||
private String autor;
|
private String autor;
|
||||||
private int erscheinungsjahr;
|
private int erscheinungsjahr;
|
||||||
|
private String medienart;
|
||||||
|
private boolean istAusgeliehen;
|
||||||
|
|
||||||
public Medium(int ID, String titel, String autor, int erscheinungsjahr) {
|
public Medium(int ID, String titel, String autor, int erscheinungsjahr, String medienart) {
|
||||||
this.ID = ID;
|
this.ID = ID;
|
||||||
this.titel = titel;
|
this.titel = titel;
|
||||||
this.autor = autor;
|
this.autor = autor;
|
||||||
this.erscheinungsjahr = erscheinungsjahr;
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
this.medienart = medienart;
|
||||||
|
this.istAusgeliehen = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Abstrakte Methoden: Jede Unterklasse definiert ihre Ausleihdauer und Verlängerbarkeit
|
// Abstrakte Methoden: Jede Unterklasse definiert ihre Ausleihdauer und Verlängerbarkeit
|
||||||
|
@ -50,8 +54,25 @@ package LibrarySystem.domain.medien;
|
||||||
this.erscheinungsjahr = erscheinungsjahr;
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getMedienart() {
|
||||||
|
return medienart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMedienart(String Medienart) {
|
||||||
|
this.medienart = Medienart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean istAusgeliehen() {
|
||||||
|
return istAusgeliehen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIstAusgeliehen(boolean istAusgeliehen) {
|
||||||
|
this.istAusgeliehen = istAusgeliehen;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ID: " + ID + ", Titel: " + titel + ", Autor: " + autor + ", Erscheinungsjahr: " + erscheinungsjahr;
|
return "ID: " + ID + ", Titel: " + titel + ", Autor: " + autor + ", Erscheinungsjahr: " + erscheinungsjahr;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@ package LibrarySystem.domain.medien;
|
||||||
public class Videospiel extends Medium {
|
public class Videospiel extends Medium {
|
||||||
private static final int AUSLEIHDAUER = 28; // 4 Wochen
|
private static final int AUSLEIHDAUER = 28; // 4 Wochen
|
||||||
|
|
||||||
public Videospiel(int ID, String titel, String autor, int erscheinungsjahr) {
|
public Videospiel(int ID, String titel, String autor, int erscheinungsjahr, String medienart) {
|
||||||
super(ID, titel, autor, erscheinungsjahr);
|
super(ID, titel, autor, erscheinungsjahr, medienart);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,20 +1,65 @@
|
||||||
package LibrarySystem.facade;
|
package LibrarySystem.facade;
|
||||||
|
|
||||||
import LibrarySystem.domain.benutzern.*;
|
import LibrarySystem.domain.benutzern.*;
|
||||||
|
import LibrarySystem.domain.medien.*;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class BibliothekSystem {
|
public class BibliothekSystem {
|
||||||
private List<Benutzer> benutzerListe;
|
private List<Benutzer> benutzerListe;
|
||||||
private LocalDate aktuellesDatum;
|
private LocalDate aktuellesDatum;
|
||||||
|
private List<Medium> medienListe;
|
||||||
|
|
||||||
public BibliothekSystem() {
|
public BibliothekSystem() {
|
||||||
this.benutzerListe = new ArrayList<>();
|
this.benutzerListe = new ArrayList<>();
|
||||||
this.aktuellesDatum = LocalDate.now();
|
this.aktuellesDatum = LocalDate.now();
|
||||||
|
this.medienListe = new ArrayList<>();
|
||||||
|
initialMedienHinzufuegen();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Methode zum Hinzufügen von Medien
|
||||||
|
private void initialMedienHinzufuegen() {
|
||||||
|
// Beispiel-Medien hinzufügen
|
||||||
|
Buch buch1 = new Buch(123,"Java lernen", "Max Mustermann", 2020, "Buch");
|
||||||
|
Buch buch2 = new Buch(234,"Java für Einsteiger", "Erika Musterfrau", 2014, "Buch");
|
||||||
|
DVD dvd1 = new DVD(345,"Die Matrix", "Lana Wachowski", 2014, "DVD");
|
||||||
|
CD cd1 = new CD(456,"Best of Mozart", "-", 1850, "CD");
|
||||||
|
Brettspiel brettspiel1 = new Brettspiel(567,"Monopoly", "-",2010, "Brettspiel");
|
||||||
|
Videospiel videospiel1 = new Videospiel(678,"Minecraft", "-", 2011, "Videospiel");
|
||||||
|
|
||||||
|
// Medien zur Bibliothek hinzufügen
|
||||||
|
addMedium(buch1);
|
||||||
|
addMedium(buch2);
|
||||||
|
addMedium(dvd1);
|
||||||
|
addMedium(cd1);
|
||||||
|
addMedium(brettspiel1);
|
||||||
|
addMedium(videospiel1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addMedium(Medium medium) {
|
||||||
|
medienListe.add(medium);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Durchsuchen der Medien nach einem Titel (Teilstring) und Filterung nach Eigenschaften
|
||||||
|
public List<Medium> durchsuchenMedien(String titelTeil, String medienart) {
|
||||||
|
List medienliste = medienListe.stream()
|
||||||
|
.filter(m -> m.getTitel().toLowerCase().contains(titelTeil.toLowerCase())) // Titel-Filter
|
||||||
|
.filter(m -> medienart == null || m.getMedienart().equalsIgnoreCase(medienart)) // Medienart-Filter
|
||||||
|
//.filter(m -> istAusgeliehen == null || m.istAusgeliehen() == istAusgeliehen) // Ausleihstatus-Filter
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if(medienliste.isEmpty()) {
|
||||||
|
System.out.println("Keine passende Medien gefunden.");
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return medienliste;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void datumAendern(LocalDate neuesDatum) {
|
public void datumAendern(LocalDate neuesDatum) {
|
||||||
|
@ -35,16 +80,16 @@ public class BibliothekSystem {
|
||||||
benutzer.aktualisiereGebuehren(aktuellesDatum);
|
benutzer.aktualisiereGebuehren(aktuellesDatum);
|
||||||
|
|
||||||
if (benutzer.sindGebuehrenBezahlt()) {
|
if (benutzer.sindGebuehrenBezahlt()) {
|
||||||
System.out.println("Alle Gebühren von " + benutzer.getVorname() + " " + benutzer.getNachname() + " sind bezahlt.");
|
System.out.println("Alle Gebühren von " + benutzer.getName() + " sind bezahlt.");
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Aktuelle Gebühren für " + benutzer.getVorname() + " " + benutzer.getNachname() + ": " + benutzer.getOffeneGebuehren() + "€");
|
System.out.println("Aktuelle Gebühren für " + benutzer.getName() + ": " + benutzer.getOffeneGebuehren() + "€");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Benutzer anmelden(String kartennummer) {
|
public Benutzer anmelden(String kartennummer) {
|
||||||
for (Benutzer benutzer : benutzerListe) {
|
for (Benutzer benutzer : benutzerListe) {
|
||||||
if (benutzer.getKartennummer().equals(kartennummer)) {
|
if (benutzer.getKartennummer().equals(kartennummer)) {
|
||||||
System.out.println("Willkommen, " + benutzer.getVorname() + " " + benutzer.getNachname() + "!");
|
System.out.println("Willkommen, " + benutzer.getName() + "!");
|
||||||
return benutzer;
|
return benutzer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue