From d090f2b7ced43f7e99b312295396e97d71ba5d65 Mon Sep 17 00:00:00 2001 From: Joel Baldauf Date: Fri, 2 Oct 2020 11:17:17 +0200 Subject: [PATCH] =?UTF-8?q?erneute=20Korrektur=20falscher=20R=C3=BCckgeldb?= =?UTF-8?q?etrag=20+=202=20weitere=20Methoden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Fahrkartenautomat/src/Fahrkartenautomat.java | 64 +++++++++++--------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/Fahrkartenautomat/src/Fahrkartenautomat.java b/Fahrkartenautomat/src/Fahrkartenautomat.java index 32ebeb5..1427e74 100644 --- a/Fahrkartenautomat/src/Fahrkartenautomat.java +++ b/Fahrkartenautomat/src/Fahrkartenautomat.java @@ -2,14 +2,14 @@ class Fahrkartenautomat { - public static float fahrkartenbestellungErfassen (){ + public static double fahrkartenbestellungErfassen (){ Scanner tastatur = new Scanner(System.in); - float zuZahlenderBetrag; + double zuZahlenderBetrag; byte anzahlTickets; System.out.print("Ticketpreis (EURO): "); - zuZahlenderBetrag = tastatur.nextFloat(); + zuZahlenderBetrag = tastatur.nextDouble(); System.out.print("Anzahl der Tickets: "); anzahlTickets = tastatur.nextByte(); @@ -19,20 +19,20 @@ class Fahrkartenautomat return zuZahlenderBetrag; } - public static float fahrkartenBezahlen(float zuZahlenderBetrag) { + public static double fahrkartenBezahlen(double zuZahlenderBetrag) { Scanner tastatur = new Scanner(System.in); // Geldeinwurf // ----------- - float eingezahlterGesamtbetrag = 0; + double eingezahlterGesamtbetrag = 0; while(eingezahlterGesamtbetrag < zuZahlenderBetrag) { System.out.printf("Noch zu zahlen: %.2f Euro \n", (zuZahlenderBetrag - eingezahlterGesamtbetrag)); System.out.print("Eingabe (mind. 5Ct, höchstens 2 Euro): "); - float eingeworfeneMünze = tastatur.nextFloat(); + double eingeworfeneMünze = tastatur.nextDouble(); eingezahlterGesamtbetrag += eingeworfeneMünze; } // Rückgeldberechnung - float rueckgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag; + double rueckgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag; return rueckgabebetrag; } @@ -43,17 +43,12 @@ class Fahrkartenautomat for (int i = 0; i < 8; i++) { System.out.print("="); - try { - Thread.sleep(250); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + warte(250); } System.out.println("\n\n"); } - public static void rueckgeldAusgeben(float rückgabebetrag) { + public static void rueckgeldAusgeben(double rückgabebetrag) { // Rückgeldausgabe // ------------------------------ if(rückgabebetrag > 0.0) @@ -61,43 +56,56 @@ class Fahrkartenautomat System.out.printf("Der Rückgabebetrag in Höhe von %.2f EURO \n", rückgabebetrag); System.out.println("wird in folgenden Münzen ausgezahlt:"); - while(rückgabebetrag >= 2.0) // 2 EURO-Münzen + while(rückgabebetrag > 1.9) // 2 EURO-Münzen { - System.out.println("2 EURO"); + muenzeAusgeben(2, "EURO"); rückgabebetrag -= 2.0; } - while(rückgabebetrag >= 1.0) // 1 EURO-Münzen + while(rückgabebetrag > 0.9) // 1 EURO-Münzen { - System.out.println("1 EURO"); + muenzeAusgeben(1, "EURO"); rückgabebetrag -= 1.0; } - while(rückgabebetrag >= 0.5) // 50 CENT-Münzen + while(rückgabebetrag > 0.49) // 50 CENT-Münzen { - System.out.println("50 CENT"); + muenzeAusgeben(50, "CENT"); rückgabebetrag -= 0.5; } - while(rückgabebetrag >= 0.2) // 20 CENT-Münzen + while(rückgabebetrag > 0.19) // 20 CENT-Münzen { - System.out.println("20 CENT"); + muenzeAusgeben(20, "CENT"); rückgabebetrag -= 0.2; } - while(rückgabebetrag >= 0.1) // 10 CENT-Münzen + while(rückgabebetrag > 0.09) // 10 CENT-Münzen { - System.out.println("10 CENT"); + muenzeAusgeben(10, "CENT"); rückgabebetrag -= 0.1; } - while(rückgabebetrag >= 0.05)// 5 CENT-Münzen + while(rückgabebetrag > 0.049)// 5 CENT-Münzen { - System.out.println("5 CENT"); + muenzeAusgeben(5, "CENT"); rückgabebetrag -= 0.05; } } } + public static void warte(int millisekunde) { + try { + Thread.sleep(millisekunde); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public static void muenzeAusgeben(int betrag, String einheit) { + System.out.println(betrag + " " + einheit); + } + public static void main(String[] args) { - float zuZahlenderBetrag; - float rueckgabebetrag; + double zuZahlenderBetrag; + double rueckgabebetrag; zuZahlenderBetrag = fahrkartenbestellungErfassen(); rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag);