diff --git a/src/main/java/de/deversmann/Auto.java b/src/main/java/de/deversmann/Auto.java index 39edbbf..3819544 100644 --- a/src/main/java/de/deversmann/Auto.java +++ b/src/main/java/de/deversmann/Auto.java @@ -12,6 +12,7 @@ public class Auto { this.ausfahrtZeit = ausfahrtZeit; this.eAuto = iseAuto(); this.saldo = saldo; + this.ausgefahren = ausgefahren; } @@ -22,6 +23,15 @@ public class Auto { private String ausfahrtZeit; private boolean bezahlt; private boolean eAuto; + private boolean ausgefahren = false; + + public boolean isAusgefahren() { + return ausgefahren; + } + + public void setAusgefahren(boolean ausgefahren) { + this.ausgefahren = ausgefahren; + } public String getKennzeichen() { return kennzeichen; diff --git a/src/main/java/de/deversmann/Main.java b/src/main/java/de/deversmann/Main.java index 2ad8232..e65eee1 100644 --- a/src/main/java/de/deversmann/Main.java +++ b/src/main/java/de/deversmann/Main.java @@ -48,7 +48,10 @@ public class Main { } autos.put(kennzeichen, new Auto(kennzeichen)); - autos.get(kennzeichen).setEinfahrtZeit(einfahrtsZeit); + Auto eingefahrenesAuto = autos.get(kennzeichen); + eingefahrenesAuto.setEinfahrtZeit(einfahrtsZeit); + eingefahrenesAuto.setAusgefahren(false); + } else if (auswahl == 2) { Auto gewünschtesAuto = parkhaus.getAutoFromKennzeichen(autos); @@ -57,6 +60,7 @@ public class Main { } else if (auswahl == 3) { Auto ausgefahrenenesAuto = parkhaus.ausfahren(autos); + ausgefahrenenesAuto.setAusgefahren(true); System.out.println("Sie haben einen Betrag von " + ausgefahrenenesAuto.getSaldo() + "€, der noch fällig ist."); } else if (auswahl == 4) { @@ -64,9 +68,10 @@ public class Main { parkhaus.bezahlePreisFürKennzeichen(ausgefahrenensAuto); } else if (auswahl == 5) { + System.out.println("Geparkte Autos:"); for (Auto auto : autos.values()) { - if (auto.getAusfahrtZeit().isBlank()) { - System.out.println(auto); + if (!auto.isAusgefahren()) { + System.out.println(auto.getKennzeichen()); } } diff --git a/src/main/java/de/deversmann/Parkhaus.java b/src/main/java/de/deversmann/Parkhaus.java index 6b280c3..ab31cc3 100644 --- a/src/main/java/de/deversmann/Parkhaus.java +++ b/src/main/java/de/deversmann/Parkhaus.java @@ -184,9 +184,12 @@ public class Parkhaus { preis += 5 + übrigeStundenAusserhalb; } } + // hier der Fall, wenn kein ganzer Tag im Parkhaus verbracht wurde } else { + //Stunden werden berechnet long übrigenStunden = (long) (kostenPflichtigeStunden - kostenpflichtigeGanzeTage * 24); + //wenn die Parkdauer unter jedweden Sonderfällen liegt einfach Stundensatz abrechnen if (übrigenStunden <= 5) { preis = preis + (übrigenStunden * ANGEFANGENE_STUNDE_PREIS); } else if (einfahrtStunde >= 20) { diff --git a/workflow.txt b/workflow.txt new file mode 100644 index 0000000..c2494dc --- /dev/null +++ b/workflow.txt @@ -0,0 +1,31 @@ +Der Nutzer startet das Programm +Der Nutzer wählt eine der Auswahlmöglichkeiten + +1. Einfahrt + Nutzer gibt Kennzeichen ein + Nutzer gibt Einfahrtzeit ein oder Nutzer wählt Systemzeit + +3. Ausfahren + Nutzer gibt Kennzeichen ein + Nutzer gibt Ausfahrtzeit ein oder Nutzer wählt Systemzeit + Eventuelle Schulden werden dem Kennzeichen zugefügt + +2. Kosten prüfen + Nutzer gibt Kennzeichen ein + Schulden zum zugehörigen Kennzeichen werden angezeigt + +1. Einfahrt + Nutzer gibt Kennzeichen ein + Nutzer gibt Einfahrtzeit ein oder Nutzer wählt Systemzeit + +5. Geparkte Autos anzeigen + Alle, sich im Parkhaus befindenden Autos, werden mit Kennzeichen aufgelistet + +4. Bezahlen und ausfahren + Nutzer gibt Kennzeichen ein + Nutzer gibt Ausfahrtzeit ein oder Nutzer wählt Systemzeit + Nutzer gibt Kreditkartennummer ein + Schulden werden auf Null gesetzt + +6. Beenden + Nutzer beendet das Programm