diff --git a/Fahrkartenautomat/src/Fahrkartenautomat.java b/Fahrkartenautomat/src/Fahrkartenautomat.java index 78790ba..32ebeb5 100644 --- a/Fahrkartenautomat/src/Fahrkartenautomat.java +++ b/Fahrkartenautomat/src/Fahrkartenautomat.java @@ -2,91 +2,107 @@ class Fahrkartenautomat { + public static float fahrkartenbestellungErfassen (){ + Scanner tastatur = new Scanner(System.in); + + float zuZahlenderBetrag; + byte anzahlTickets; + + System.out.print("Ticketpreis (EURO): "); + zuZahlenderBetrag = tastatur.nextFloat(); + + System.out.print("Anzahl der Tickets: "); + anzahlTickets = tastatur.nextByte(); + + zuZahlenderBetrag = anzahlTickets * zuZahlenderBetrag; + + return zuZahlenderBetrag; + } + + public static float fahrkartenBezahlen(float zuZahlenderBetrag) { + Scanner tastatur = new Scanner(System.in); + // Geldeinwurf + // ----------- + float 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(); + eingezahlterGesamtbetrag += eingeworfeneMünze; + } + // Rückgeldberechnung + float rueckgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag; + return rueckgabebetrag; + } + + public static void fahrkartenAusgeben () { + // Fahrscheinausgabe + // ----------------- + System.out.println("\nFahrschein wird ausgegeben"); + for (int i = 0; i < 8; i++) + { + System.out.print("="); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + System.out.println("\n\n"); + } + + public static void rueckgeldAusgeben(float rückgabebetrag) { + // Rückgeldausgabe + // ------------------------------ + if(rückgabebetrag > 0.0) + { + 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 + { + System.out.println("2 EURO"); + rückgabebetrag -= 2.0; + } + while(rückgabebetrag >= 1.0) // 1 EURO-Münzen + { + System.out.println("1 EURO"); + rückgabebetrag -= 1.0; + } + while(rückgabebetrag >= 0.5) // 50 CENT-Münzen + { + System.out.println("50 CENT"); + rückgabebetrag -= 0.5; + } + while(rückgabebetrag >= 0.2) // 20 CENT-Münzen + { + System.out.println("20 CENT"); + rückgabebetrag -= 0.2; + } + while(rückgabebetrag >= 0.1) // 10 CENT-Münzen + { + System.out.println("10 CENT"); + rückgabebetrag -= 0.1; + } + while(rückgabebetrag >= 0.05)// 5 CENT-Münzen + { + System.out.println("5 CENT"); + rückgabebetrag -= 0.05; + } + } + } + public static void main(String[] args) - { - Scanner tastatur = new Scanner(System.in); - + { float zuZahlenderBetrag; - float eingezahlterGesamtbetrag; - float eingeworfeneMünze; - float rückgabebetrag; - byte anzahlTickets; + float rueckgabebetrag; - System.out.print("Ticketpreis (EURO-Cent): "); - zuZahlenderBetrag = tastatur.nextFloat(); - - System.out.print("Anzahl der Tickets: "); - anzahlTickets = tastatur.nextByte(); - - zuZahlenderBetrag = anzahlTickets * zuZahlenderBetrag; - - // Geldeinwurf - // ----------- - 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): "); - eingeworfeneMünze = tastatur.nextFloat(); - eingezahlterGesamtbetrag += eingeworfeneMünze; - } - - // Fahrscheinausgabe - // ----------------- - System.out.println("\nFahrschein wird ausgegeben"); - for (int i = 0; i < 8; i++) - { - System.out.print("="); - try { - Thread.sleep(250); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - System.out.println("\n\n"); - - // Rückgeldberechnung und -Ausgabe - // ------------------------------- - rückgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag; - if(rückgabebetrag > 0.0) - { - 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 - { - System.out.println("2 EURO"); - rückgabebetrag -= 2.0; - } - while(rückgabebetrag >= 1.0) // 1 EURO-Münzen - { - System.out.println("1 EURO"); - rückgabebetrag -= 1.0; - } - while(rückgabebetrag >= 0.5) // 50 CENT-Münzen - { - System.out.println("50 CENT"); - rückgabebetrag -= 0.5; - } - while(rückgabebetrag >= 0.2) // 20 CENT-Münzen - { - System.out.println("20 CENT"); - rückgabebetrag -= 0.2; - } - while(rückgabebetrag >= 0.1) // 10 CENT-Münzen - { - System.out.println(rückgabebetrag); - System.out.println("10 CENT"); - rückgabebetrag -= 0.1; - } - while(rückgabebetrag >= 0.05)// 5 CENT-Münzen - { - System.out.println(rückgabebetrag); - System.out.println("5 CENT"); - rückgabebetrag -= 0.05; - } - } + zuZahlenderBetrag = fahrkartenbestellungErfassen(); + rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag); + fahrkartenAusgeben(); + rueckgeldAusgeben(rueckgabebetrag); System.out.println("\nVergessen Sie nicht, den Fahrschein\n"+ "vor Fahrtantritt entwerten zu lassen!\n"+