From 76141da3f1f6b7f46d48622eaf4140952e9d7671 Mon Sep 17 00:00:00 2001 From: Leon <3010261@stud.hs-mannheim.de> Date: Thu, 3 Oct 2024 13:46:58 +0200 Subject: [PATCH] =?UTF-8?q?Korrektur=20des=20Codes.=20Berechnung=20nach=20?= =?UTF-8?q?mehreren=20Tests=20nun=20m=C3=B6glich.=20Muss=20noch=20auf=20ko?= =?UTF-8?q?rrektheit=20gepr=C3=BCft=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Qualifier Parkhaus/src/Main.java | 17 +++++++++++------ Qualifier Parkhaus/src/Parkhaus.java | 21 ++++++++++++++------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/Qualifier Parkhaus/src/Main.java b/Qualifier Parkhaus/src/Main.java index a0430b1..e06aa81 100644 --- a/Qualifier Parkhaus/src/Main.java +++ b/Qualifier Parkhaus/src/Main.java @@ -20,10 +20,12 @@ public class Main { System.out.println("3. Bezahlen und ausfahren"); System.out.println("4. Beenden"); int auswahl = sc.nextInt(); + sc.nextLine(); if (auswahl == 4) { System.out.println("Das Programm wird nun beendet."); System.out.println("Wir wünschen Ihnen noch einen schönen Tag"); + break; } @@ -47,11 +49,12 @@ public class Main { System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden."); } else { - System.out.println("Zu welcher Uhrzeit wurde ausgefahren? :"); + System.out.println("Wann sind Sie aus dem Parkhaus ausgefahren. Bitte im Format TT.MM.JJJJ SS:MM"); String ausfahrtEingabe = sc.nextLine(); Date ausfahrtZeit = sdf.parse(ausfahrtEingabe); - parkhaus.berechneParkKosten(auto); - parkhaus.ausfahrt(auto , ausfahrtZeit); + double kosten = parkhaus.berechneParkKosten(auto, ausfahrtZeit); + auto.setSchulden(auto.getSchulden() + kosten); + parkhaus.ausfahrt(kennzeichenAusfahrt , ausfahrtZeit); } break; @@ -63,11 +66,12 @@ public class Main { System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden."); } else { - System.out.println("Was ist die aktuelle Uhrzeit zu der Sie bezahlen"); + System.out.println("Wann bezahlen Sie? Bitte im Format TT.MM.JJJJ SS:MM "); String bezahltEingabe = sc.nextLine(); Date bezahltZeit = sdf.parse(bezahltEingabe); - System.out.println(parkhaus.berechneParkKosten(auto)); - parkhaus.ausfahrt(auto , bezahltZeit); + System.out.println(parkhaus.berechneParkKosten(auto, bezahltZeit)); + parkhaus.ausfahrt(kennzeichenBezahlt , bezahltZeit); + auto.setSchulden(0); } break; @@ -77,5 +81,6 @@ public class Main { break; } } + sc.close(); } } diff --git a/Qualifier Parkhaus/src/Parkhaus.java b/Qualifier Parkhaus/src/Parkhaus.java index 7c0c3c3..1c3e5dc 100644 --- a/Qualifier Parkhaus/src/Parkhaus.java +++ b/Qualifier Parkhaus/src/Parkhaus.java @@ -72,22 +72,29 @@ public class Parkhaus { return; } auto.setAusfahrtZeit(ausfahrtZeit); - double kosten = berechneParkKosten(auto); + double kosten = berechneParkKosten(auto, ausfahrtZeit); System.out.println("Die Koste für das Fahrzeug mit dem eingegebenen Kennzeichen " + kennzeichen + "betragen:"); System.out.println(kosten); autos.remove(auto); platz += 1; } - public double berechneParkKosten(Auto auto) { + public double berechneParkKosten(Auto auto, Date ausfahrtZeit) { Date einfahrtZeit = auto.getEinfahrtZeit(); - Date ausfahrtZeit = auto.getAusfahrtZeit(); - int einFahrtStunde = auto.getEinfahrtZeit().getHours(); - int ausFahrtStunde = auto.getAusfahrtZeit().getHours(); - long parkDauerMinuten = (auto.getAusfahrtZeit().getTime() - auto.getEinfahrtZeit().getTime()); + if(einfahrtZeit == null || ausfahrtZeit == null) { + System.out.println("Es wurde keine Ein- oder ausfahrtzeit gesetzt"); + } + long parkDauerMinuten = (ausfahrtZeit.getTime() - einfahrtZeit.getTime())/(1000*60); double kosten = 0; - if (einFahrtStunde >= 20 || ausFahrtStunde <= 06) { + if(parkDauerMinuten < 0){ + System.out.println("Diese Eingaben sind nicht möglich"); + } + + int einFahrtStunde = einfahrtZeit.getHours(); + int ausFahrtStunde = ausfahrtZeit.getHours(); + + if (einFahrtStunde >= 20 || ausFahrtStunde <= 6) { if (parkDauerMinuten <= 15) { return 0; }