diff --git a/LibrarySystem/UI/UI.java b/LibrarySystem/UI/UI.java index 8597f06..d339406 100644 --- a/LibrarySystem/UI/UI.java +++ b/LibrarySystem/UI/UI.java @@ -52,7 +52,7 @@ public class UI { String kartennummer = scanner.nextLine(); Benutzer benutzer = system.anmelden(kartennummer); if (benutzer != null) { - System.out.println("Willkommen! Erfolgreich angemeldet als: " + benutzer.getName()); + System.out.println("Willkommen! Erfolgreich angemeldet als: " + benutzer.getName() + "."); } else { System.out.println("Flasche Kartennummer. Bitte erneut versuchen!"); } @@ -97,10 +97,11 @@ public class UI { //6. Verlängern der Leihfrist private void verlaengernLeihfrist() { + System.out.println("Bitte melden Sie sich mit der Kartennummer ein: "); + String kartennummer = scanner.nextLine(); 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 + system.verlaengernMedium(kartennummer,mediumId); } //7. Admin-Login diff --git a/LibrarySystem/domain/medien/Brettspiel.java b/LibrarySystem/domain/medien/Brettspiel.java index a6ac860..66ecbb9 100644 --- a/LibrarySystem/domain/medien/Brettspiel.java +++ b/LibrarySystem/domain/medien/Brettspiel.java @@ -4,8 +4,8 @@ package LibrarySystem.domain.medien; public class Brettspiel extends Medium { private static final int AUSLEIHDAUER = 14; // 2 Wochen - public Brettspiel(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { - super(ID, titel, autor, erscheinungsjahr, medienart); + public Brettspiel(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) { + super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen); } @@ -20,8 +20,9 @@ public class Brettspiel extends Medium { } @Override - public void verlaengern() { + public int verlaengern() { System.out.println("Brettspiele können nicht verlängert werden."); + return 0; } } diff --git a/LibrarySystem/domain/medien/Buch.java b/LibrarySystem/domain/medien/Buch.java index 0b14b39..e893af4 100644 --- a/LibrarySystem/domain/medien/Buch.java +++ b/LibrarySystem/domain/medien/Buch.java @@ -4,10 +4,10 @@ package LibrarySystem.domain.medien; public class Buch extends Medium { private static final int AUSLEIHDAUER = 28; //4 Wochen in Tagen - private int verlaengerungen = 3; + //private int verlaengerungenBuch = 3; - public Buch(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { - super(ID, titel, autor, erscheinungsjahr, medienart); + public Buch(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) { + super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen); } @@ -22,13 +22,14 @@ public class Buch extends Medium { } @Override - public void verlaengern() { + public int verlaengern() { if (istVerlaengerbar()) { verlaengerungen--; rechneRueckgabedatum(); //Verlängerung } else{ System.out.println("Keine Verlängerung mehr möglich."); } + return verlaengerungen; } diff --git a/LibrarySystem/domain/medien/CD.java b/LibrarySystem/domain/medien/CD.java index 90c332b..bd0a683 100644 --- a/LibrarySystem/domain/medien/CD.java +++ b/LibrarySystem/domain/medien/CD.java @@ -3,8 +3,8 @@ package LibrarySystem.domain.medien; public class CD extends Medium { public static final int AUSLEIHDAUER = 14; // 2 Wochen - public CD(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { - super(ID, titel, autor, erscheinungsjahr, medienart); + public CD(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) { + super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen); } @@ -19,8 +19,9 @@ public class CD extends Medium { } @Override - public void verlaengern() { + public int verlaengern() { System.out.println("CDs können nicht verlängert werden."); + return 0; } } diff --git a/LibrarySystem/domain/medien/DVD.java b/LibrarySystem/domain/medien/DVD.java index 1edf16f..636f755 100644 --- a/LibrarySystem/domain/medien/DVD.java +++ b/LibrarySystem/domain/medien/DVD.java @@ -3,8 +3,8 @@ package LibrarySystem.domain.medien; public class DVD extends Medium { private static final int AUSLEIHDAUER = 7; // 1 Woche - public DVD(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { - super(ID, titel, autor, erscheinungsjahr, medienart); + public DVD(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) { + super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen); } @@ -19,8 +19,9 @@ public class DVD extends Medium { } @Override - public void verlaengern() { + public int verlaengern() { System.out.println("DVDs können nicht verlängert werden."); + return 0; } diff --git a/LibrarySystem/domain/medien/Medium.java b/LibrarySystem/domain/medien/Medium.java index 95c986e..346cb5c 100644 --- a/LibrarySystem/domain/medien/Medium.java +++ b/LibrarySystem/domain/medien/Medium.java @@ -13,14 +13,16 @@ public abstract class Medium implements Ausleihbar{ private String medienart; private boolean ausgeliehen; private Date rueckgabedatum; + public int verlaengerungen; - public Medium(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { + public Medium(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) { this.ID = ID; this.titel = titel; this.autor = autor; this.erscheinungsjahr = erscheinungsjahr; this.medienart = medienart; this.ausgeliehen = false; + this.verlaengerungen =verlaengerungen; } @@ -56,7 +58,8 @@ public abstract class Medium implements Ausleihbar{ public void setRueckgabe(){this.ausgeliehen = false;} public Date getRueckgabedatum(){return rueckgabedatum;} public void setRueckgabedatum(Date rueckgabedatum){this.rueckgabedatum = rueckgabedatum;} - + public int getVerlaengerungen() {return verlaengerungen;} + public void setVerlaengerungen(int verlaengerungen) {} //Andere nützliche Methoden public Date rechneRueckgabedatum(){ @@ -69,7 +72,7 @@ public abstract class Medium implements Ausleihbar{ //Abstrakte Methoden public abstract int getAusleihdauer(); public abstract boolean istVerlaengerbar(); - public abstract void verlaengern(); + public abstract int verlaengern(); @Override public void ausleihen() { diff --git a/LibrarySystem/domain/medien/Videospiel.java b/LibrarySystem/domain/medien/Videospiel.java index 2eb1fa0..e838b8e 100644 --- a/LibrarySystem/domain/medien/Videospiel.java +++ b/LibrarySystem/domain/medien/Videospiel.java @@ -2,10 +2,9 @@ package LibrarySystem.domain.medien; public class Videospiel extends Medium { private static final int AUSLEIHDAUER = 28; // 4 Wochen - private int verlaengerungen = 1; - public Videospiel(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { - super(ID, titel, autor, erscheinungsjahr, medienart); + public Videospiel(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) { + super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen); } @@ -20,13 +19,14 @@ public class Videospiel extends Medium { } @Override - public void verlaengern() { + public int verlaengern() { if (istVerlaengerbar()){ verlaengerungen--; rechneRueckgabedatum(); //Verlängerung } else { System.out.println("Keine Verlängerung mehr möglich"); } + return verlaengerungen; } } diff --git a/LibrarySystem/facade/BibliothekSystem.java b/LibrarySystem/facade/BibliothekSystem.java index 650482b..3f1e7e0 100644 --- a/LibrarySystem/facade/BibliothekSystem.java +++ b/LibrarySystem/facade/BibliothekSystem.java @@ -25,17 +25,17 @@ public class BibliothekSystem { // 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"); - Buch buch3 = new Buch("2345","Java für Einsteiger", "Erika Musterfrau", 2014, "Buch"); - DVD dvd1 = new DVD("345","Die Matrix", "Lana Wachowski", 2014, "DVD"); - DVD dvd2 = new DVD("543","Die Matrix", "Lana Wachowski", 2014, "DVD"); - CD cd1 = new CD("456","Best of Mozart", "-", 1850, "CD"); - CD cd2 = new CD("654","Christmas Carols", "-", 2000, "CD"); - Brettspiel brettspiel1 = new Brettspiel("567","Monopoly", "-",2010, "Brettspiel"); - Brettspiel brettspiel2 = new Brettspiel("765","Siedler von Catan", "-",2014, "Brettspiel"); - Videospiel videospiel1 = new Videospiel("678","Minecraft", "-", 2011, "Videospiel"); - Videospiel videospiel2 = new Videospiel("876","Call of Duty", "-", 2017, "Videospiel"); + Buch buch1 = new Buch("123","Java lernen", "Max Mustermann", 2020, "Buch", 3); + Buch buch2 = new Buch("234","Java für Einsteiger", "Erika Musterfrau", 2014, "Buch", 3); + Buch buch3 = new Buch("2345","Java für Einsteiger", "Erika Musterfrau", 2014, "Buch", 3); + DVD dvd1 = new DVD("345","Die Matrix", "Lana Wachowski", 2014, "DVD", 0); + DVD dvd2 = new DVD("543","Die Matrix", "Lana Wachowski", 2014, "DVD", 0); + CD cd1 = new CD("456","Best of Mozart", "-", 1850, "CD", 0); + CD cd2 = new CD("654","Christmas Carols", "-", 2000, "CD", 0); + Brettspiel brettspiel1 = new Brettspiel("567","Monopoly", "-",2010, "Brettspiel", 0); + Brettspiel brettspiel2 = new Brettspiel("765","Siedler von Catan", "-",2014, "Brettspiel", 0); + Videospiel videospiel1 = new Videospiel("678","Minecraft", "-", 2011, "Videospiel", 1); + Videospiel videospiel2 = new Videospiel("876","Call of Duty", "-", 2017, "Videospiel",1); // Medien zur Bibliothek hinzufügen addMedium(buch1); @@ -103,6 +103,7 @@ public class BibliothekSystem { medium.setRueckgabedatum(medium.rechneRueckgabedatum()); System.out.println(benutzer.getName() + " hat " + medium.getTitel() + " ausgeliehen."); System.out.println("Rückgabedatum: " + medium.getRueckgabedatum()); + System.out.println("Verlängerungen möglich insgesamt: " + medium.getVerlaengerungen()); } else { System.out.println("Ausleihe nicht möglich."); } @@ -117,7 +118,7 @@ public class BibliothekSystem { return; } if(!medium.istAusgeliehen()) { - System.out.println("Medium '"+medium.getTitel()+"' nicht gefunden."); + System.out.println("Medium '"+medium.getTitel()+"' ist nicht ausgeliehen."); return; } @@ -137,7 +138,7 @@ public class BibliothekSystem { //Medium zurückgeben try { ausleiher.rueckgabe(medium); - System.out.println("Medium '"+medium.getTitel()+"' wurde erfolgreich zurückgegeben."); + System.out.println("Medium '"+medium.getTitel()+"' wurde erfolgreich am " + getAktuellesDatum() + " zurückgegeben."); if(aktuellesDatum.after(medium.getRueckgabedatum())){ long overdueTage = (aktuellesDatum.getTime() - medium.getRueckgabedatum().getTime()) / (1000 * 60 * 60 * 24); @@ -167,7 +168,7 @@ public class BibliothekSystem { if (gebuehren>0){ System.out.println("Offene Gebühren für " + benutzer.getName() + ": " + gebuehren + " Eur."); } else { - System.out.println("Keine offene Gebühren für "+ benutzer.getName()); + System.out.println("Keine offene Gebühren für "+ benutzer.getName() + "."); } } @@ -177,11 +178,17 @@ public class BibliothekSystem { Benutzer benutzer = anmelden(kartennummer); Medium medium = findeMedium(mediumID); if (benutzer != null && medium != null && medium.istAusgeliehen()) { - medium.verlaengern(); - System.out.println("Leihfrist für '" + medium.getTitel() + "' verlängert."); - System.out.println("Neues Rückgabedatum: " + medium.getRueckgabedatum()); + if (medium.istVerlaengerbar()) { + medium.verlaengern(); + System.out.println("Leihfrist für '" + medium.getTitel() + "' verlängert."); + System.out.println("Neues Rückgabedatum: " + medium.getRueckgabedatum()); + System.out.println("Weitere Verlängerungen möglich: " + medium.getVerlaengerungen()); + } else{ + System.out.println("Verlängerung nicht möglich. Bitte geben Sie das Medium an dem Rückgabedatum zurück!"); + } + } else { - System.out.println("Verlängerung nicht möglich."); + System.out.println("Verlängerung nicht möglich, da Kartennummer flasch ist oder Medium existiert nicht."); } }