Anzeige der Gebührenkonto, Berechnung der Gebühren muss noch verbessert werden

devIoana
ioana 2024-11-17 16:10:26 +01:00
parent 1faa14fd5f
commit 32bba7e3f9
3 changed files with 37 additions and 19 deletions

View File

@ -90,7 +90,7 @@ public class UI {
String kartennummer = scanner.nextLine();
Benutzer benutzer = system.anmelden(kartennummer);
if (benutzer != null) {
//system.zeigeGebuehren(benutzer);
system.zeigeGebuehrenkonto(kartennummer);
benutzer.anzeigenAusleihen();
}
}

View File

@ -10,7 +10,6 @@ public abstract class Benutzer {
private int alter;
private List<Medium> ausleihen;
private double offeneGebuehren;
private boolean gebuehrenBezahlt;
Benutzer(String kartennummer, String name, int alter, String prefix) {
this.kartennummer = prefix + kartennummer;
@ -18,7 +17,6 @@ public abstract class Benutzer {
this.alter = alter;
this.ausleihen = new ArrayList<>();
this.offeneGebuehren = 0.0;
this.gebuehrenBezahlt = true; // Zu Beginn keine Gebühren offen
}
//Getter und Setter
@ -29,6 +27,8 @@ public abstract class Benutzer {
public int getAlter() {return alter;}
public void setAlter(int alter) {this.alter = alter;}
public List<Medium> getAusleihen() {return ausleihen;}
public double getOffeneGebuehren() {return offeneGebuehren;}
// Abstrakte Methode für die Jahresgebühr
public abstract double getJahresgebuehr();
@ -59,25 +59,21 @@ public abstract class Benutzer {
//Methode zum Anzeigen der Ausleihen eines Benutzers
public void anzeigenAusleihen() {
System.out.println("Aktuell ausgeliehene Medien von " + name + ":\n");
for (Medium medium : ausleihen) {
System.out.println("- " + medium.getTitel() + " (Fällig am: " + medium.getRueckgabedatum() + ")\n");
if(ausleihen.isEmpty()){
System.out.println("Keine ausgeliehenen Medien.");
}else {
System.out.println("Aktuell ausgeliehene Medien von " + name + ":\n");
for (Medium medium : ausleihen) {
System.out.println("- " + medium.getTitel() + " (Fällig am: " + medium.getRueckgabedatum() + ")\n");
}
}
}
public double setOffeneGebuehren(double gebuehren){
return gebuehren+= gebuehren;
public double addiereZuOffeneGebuehren(double gebuehren){
return this.offeneGebuehren+= gebuehren;
}
public double getOffeneGebuehren() {
return offeneGebuehren;
}
public boolean sindGebuehrenBezahlt() {
return gebuehrenBezahlt;
}
/*public void aktualisiereGebuehren(Date aktuellesDatum) {
if (gebuehrenBezahlt) return; // Keine Aktualisierung erforderlich, wenn bezahlt
offeneGebuehren = 0.0;
@ -88,7 +84,6 @@ public abstract class Benutzer {
public void bezahleGebuehren() {
offeneGebuehren = 0.0;
gebuehrenBezahlt = true;
}

View File

@ -143,7 +143,7 @@ public class BibliothekSystem {
long overdueTage = (aktuellesDatum.getTime() - medium.getRueckgabedatum().getTime()) / (1000 * 60 * 60 * 24);
System.out.println("überfällige Tagen: " + overdueTage);
double gebuehr = rechneOverdueGebuehren(overdueTage);
ausleiher.setOffeneGebuehren(gebuehr);
ausleiher.addiereZuOffeneGebuehren(gebuehr);
System.out.println("Überfällige Gebühren für " + ausleiher.getName() + gebuehr + " Eur.");
}else {
System.out.println("Keine überfällige Gebühren.");
@ -155,6 +155,23 @@ public class BibliothekSystem {
}
}
//Methode zum Anzeigen des Gebührenkontos
public void zeigeGebuehrenkonto(String kartennummer){
Benutzer benutzer = anmelden(kartennummer);
if (benutzer == null) {
System.out.println("Kein Benutzer gefunden.");
return;
}
double gebuehren = benutzer.getOffeneGebuehren();
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());
}
}
//Methode zum Verlängern eines Mediums
public void verlaengernMedium(String kartennummer,String mediumID){
Benutzer benutzer = anmelden(kartennummer);
@ -208,7 +225,13 @@ public class BibliothekSystem {
}*/
public double rechneOverdueGebuehren(long overdueTagen) {
return overdueTagen * 1; // 1 euro pro Tag
if (overdueTagen <= 0){
return 0;
}
if (overdueTagen <= 7){
return overdueTagen * 1.0; //1 euro pro Tag für die ersten 7 Tage
}
return (7*1.0) + ((overdueTagen - 7) * 2.0); // 2 euro pro Tag ab dem 8. Tag
}
}