Compare commits

...

3 Commits

8 changed files with 56 additions and 41 deletions

View File

@ -52,7 +52,7 @@ public class UI {
String kartennummer = scanner.nextLine(); String kartennummer = scanner.nextLine();
Benutzer benutzer = system.anmelden(kartennummer); Benutzer benutzer = system.anmelden(kartennummer);
if (benutzer != null) { if (benutzer != null) {
System.out.println("Willkommen! Erfolgreich angemeldet als: " + benutzer.getName()); System.out.println("Willkommen! Erfolgreich angemeldet als: " + benutzer.getName() + ".");
} else { } else {
System.out.println("Flasche Kartennummer. Bitte erneut versuchen!"); System.out.println("Flasche Kartennummer. Bitte erneut versuchen!");
} }
@ -97,10 +97,11 @@ public class UI {
//6. Verlängern der Leihfrist //6. Verlängern der Leihfrist
private void verlaengernLeihfrist() { 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: "); System.out.print("Bitte geben Sie die ID des Mediums ein, dessen Leihfrist Sie verlängern möchten: ");
String mediumId = scanner.nextLine(); String mediumId = scanner.nextLine();
System.out.println("Leihfrist für Medium mit ID " + mediumId + " verlängert."); system.verlaengernMedium(kartennummer,mediumId);
// Logik zur Verlängerung der Leihfrist hinzufügen
} }
//7. Admin-Login //7. Admin-Login

View File

@ -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(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { public Brettspiel(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) {
super(ID, titel, autor, erscheinungsjahr, medienart); super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen);
} }
@ -20,8 +20,9 @@ public class Brettspiel extends Medium {
} }
@Override @Override
public void verlaengern() { public int verlaengern() {
System.out.println("Brettspiele können nicht verlängert werden."); System.out.println("Brettspiele können nicht verlängert werden.");
return 0;
} }
} }

View File

@ -4,10 +4,10 @@ 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
private int verlaengerungen = 3; //private int verlaengerungenBuch = 3;
public Buch(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { public Buch(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) {
super(ID, titel, autor, erscheinungsjahr, medienart); super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen);
} }
@ -22,13 +22,14 @@ public class Buch extends Medium {
} }
@Override @Override
public void verlaengern() { public int verlaengern() {
if (istVerlaengerbar()) { if (istVerlaengerbar()) {
verlaengerungen--; verlaengerungen--;
rechneRueckgabedatum(); //Verlängerung rechneRueckgabedatum(); //Verlängerung
} else{ } else{
System.out.println("Keine Verlängerung mehr möglich."); System.out.println("Keine Verlängerung mehr möglich.");
} }
return verlaengerungen;
} }

View File

@ -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(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { public CD(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) {
super(ID, titel, autor, erscheinungsjahr, medienart); super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen);
} }
@ -19,8 +19,9 @@ public class CD extends Medium {
} }
@Override @Override
public void verlaengern() { public int verlaengern() {
System.out.println("CDs können nicht verlängert werden."); System.out.println("CDs können nicht verlängert werden.");
return 0;
} }
} }

View File

@ -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(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { public DVD(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) {
super(ID, titel, autor, erscheinungsjahr, medienart); super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen);
} }
@ -19,8 +19,9 @@ public class DVD extends Medium {
} }
@Override @Override
public void verlaengern() { public int verlaengern() {
System.out.println("DVDs können nicht verlängert werden."); System.out.println("DVDs können nicht verlängert werden.");
return 0;
} }

View File

@ -13,14 +13,16 @@ public abstract class Medium implements Ausleihbar{
private String medienart; private String medienart;
private boolean ausgeliehen; private boolean ausgeliehen;
private Date rueckgabedatum; 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.ID = ID;
this.titel = titel; this.titel = titel;
this.autor = autor; this.autor = autor;
this.erscheinungsjahr = erscheinungsjahr; this.erscheinungsjahr = erscheinungsjahr;
this.medienart = medienart; this.medienart = medienart;
this.ausgeliehen = false; this.ausgeliehen = false;
this.verlaengerungen =verlaengerungen;
} }
@ -56,7 +58,8 @@ public abstract class Medium implements Ausleihbar{
public void setRueckgabe(){this.ausgeliehen = false;} public void setRueckgabe(){this.ausgeliehen = false;}
public Date getRueckgabedatum(){return rueckgabedatum;} public Date getRueckgabedatum(){return rueckgabedatum;}
public void setRueckgabedatum(Date rueckgabedatum){this.rueckgabedatum = rueckgabedatum;} public void setRueckgabedatum(Date rueckgabedatum){this.rueckgabedatum = rueckgabedatum;}
public int getVerlaengerungen() {return verlaengerungen;}
public void setVerlaengerungen(int verlaengerungen) {}
//Andere nützliche Methoden //Andere nützliche Methoden
public Date rechneRueckgabedatum(){ public Date rechneRueckgabedatum(){
@ -69,7 +72,7 @@ public abstract class Medium implements Ausleihbar{
//Abstrakte Methoden //Abstrakte Methoden
public abstract int getAusleihdauer(); public abstract int getAusleihdauer();
public abstract boolean istVerlaengerbar(); public abstract boolean istVerlaengerbar();
public abstract void verlaengern(); public abstract int verlaengern();
@Override @Override
public void ausleihen() { public void ausleihen() {

View File

@ -2,10 +2,9 @@ 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
private int verlaengerungen = 1;
public Videospiel(String ID, String titel, String autor, int erscheinungsjahr, String medienart) { public Videospiel(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) {
super(ID, titel, autor, erscheinungsjahr, medienart); super(ID, titel, autor, erscheinungsjahr, medienart, verlaengerungen);
} }
@ -20,13 +19,14 @@ public class Videospiel extends Medium {
} }
@Override @Override
public void verlaengern() { public int verlaengern() {
if (istVerlaengerbar()){ if (istVerlaengerbar()){
verlaengerungen--; verlaengerungen--;
rechneRueckgabedatum(); //Verlängerung rechneRueckgabedatum(); //Verlängerung
} else { } else {
System.out.println("Keine Verlängerung mehr möglich"); System.out.println("Keine Verlängerung mehr möglich");
} }
return verlaengerungen;
} }
} }

View File

@ -25,17 +25,17 @@ public class BibliothekSystem {
// Methode zum Hinzufügen von Medien // Methode zum Hinzufügen von Medien
private void initialMedienHinzufuegen() { private void initialMedienHinzufuegen() {
// Beispiel-Medien hinzufügen // Beispiel-Medien hinzufügen
Buch buch1 = new Buch("123","Java lernen", "Max Mustermann", 2020, "Buch"); 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"); 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"); 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"); DVD dvd1 = new DVD("345","Die Matrix", "Lana Wachowski", 2014, "DVD", 0);
DVD dvd2 = new DVD("543","Die Matrix", "Lana Wachowski", 2014, "DVD"); DVD dvd2 = new DVD("543","Die Matrix", "Lana Wachowski", 2014, "DVD", 0);
CD cd1 = new CD("456","Best of Mozart", "-", 1850, "CD"); CD cd1 = new CD("456","Best of Mozart", "-", 1850, "CD", 0);
CD cd2 = new CD("654","Christmas Carols", "-", 2000, "CD"); CD cd2 = new CD("654","Christmas Carols", "-", 2000, "CD", 0);
Brettspiel brettspiel1 = new Brettspiel("567","Monopoly", "-",2010, "Brettspiel"); Brettspiel brettspiel1 = new Brettspiel("567","Monopoly", "-",2010, "Brettspiel", 0);
Brettspiel brettspiel2 = new Brettspiel("765","Siedler von Catan", "-",2014, "Brettspiel"); Brettspiel brettspiel2 = new Brettspiel("765","Siedler von Catan", "-",2014, "Brettspiel", 0);
Videospiel videospiel1 = new Videospiel("678","Minecraft", "-", 2011, "Videospiel"); Videospiel videospiel1 = new Videospiel("678","Minecraft", "-", 2011, "Videospiel", 1);
Videospiel videospiel2 = new Videospiel("876","Call of Duty", "-", 2017, "Videospiel"); Videospiel videospiel2 = new Videospiel("876","Call of Duty", "-", 2017, "Videospiel",1);
// Medien zur Bibliothek hinzufügen // Medien zur Bibliothek hinzufügen
addMedium(buch1); addMedium(buch1);
@ -103,6 +103,7 @@ public class BibliothekSystem {
medium.setRueckgabedatum(medium.rechneRueckgabedatum()); medium.setRueckgabedatum(medium.rechneRueckgabedatum());
System.out.println(benutzer.getName() + " hat " + medium.getTitel() + " ausgeliehen."); System.out.println(benutzer.getName() + " hat " + medium.getTitel() + " ausgeliehen.");
System.out.println("Rückgabedatum: " + medium.getRueckgabedatum()); System.out.println("Rückgabedatum: " + medium.getRueckgabedatum());
System.out.println("Verlängerungen möglich insgesamt: " + medium.getVerlaengerungen());
} else { } else {
System.out.println("Ausleihe nicht möglich."); System.out.println("Ausleihe nicht möglich.");
} }
@ -117,7 +118,7 @@ public class BibliothekSystem {
return; return;
} }
if(!medium.istAusgeliehen()) { if(!medium.istAusgeliehen()) {
System.out.println("Medium '"+medium.getTitel()+"' nicht gefunden."); System.out.println("Medium '"+medium.getTitel()+"' ist nicht ausgeliehen.");
return; return;
} }
@ -137,7 +138,7 @@ public class BibliothekSystem {
//Medium zurückgeben //Medium zurückgeben
try { try {
ausleiher.rueckgabe(medium); 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())){ if(aktuellesDatum.after(medium.getRueckgabedatum())){
long overdueTage = (aktuellesDatum.getTime() - medium.getRueckgabedatum().getTime()) / (1000 * 60 * 60 * 24); long overdueTage = (aktuellesDatum.getTime() - medium.getRueckgabedatum().getTime()) / (1000 * 60 * 60 * 24);
@ -167,7 +168,7 @@ public class BibliothekSystem {
if (gebuehren>0){ if (gebuehren>0){
System.out.println("Offene Gebühren für " + benutzer.getName() + ": " + gebuehren + " Eur."); System.out.println("Offene Gebühren für " + benutzer.getName() + ": " + gebuehren + " Eur.");
} else { } 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); Benutzer benutzer = anmelden(kartennummer);
Medium medium = findeMedium(mediumID); Medium medium = findeMedium(mediumID);
if (benutzer != null && medium != null && medium.istAusgeliehen()) { if (benutzer != null && medium != null && medium.istAusgeliehen()) {
medium.verlaengern(); if (medium.istVerlaengerbar()) {
System.out.println("Leihfrist für '" + medium.getTitel() + "' verlängert."); medium.verlaengern();
System.out.println("Neues Rückgabedatum: " + medium.getRueckgabedatum()); 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 { } 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.");
} }
} }