diff --git a/Fahrkartenautomat/src/Fahrkartenautomat.java b/Fahrkartenautomat/src/Fahrkartenautomat.java index 069a4c6..d54edef 100644 --- a/Fahrkartenautomat/src/Fahrkartenautomat.java +++ b/Fahrkartenautomat/src/Fahrkartenautomat.java @@ -2,163 +2,155 @@ class Fahrkartenautomat { - public static double fahrkartenbestellungErfassen (){ - //Preise - double preisEinzelfahrschein = 2.9; - double preisTageskarte = 8.6; - double preisKleingruppe = 23.5; - //===================================== - - Scanner tastatur = new Scanner(System.in); - - double zuZahlenderBetrag = 0.0; - double einzelBetrag = 0.0; - byte anzahlTickets = 0; - byte auswahlTicket = 0; - - boolean auswahl = true; - while (auswahl) { - System.out.printf("\nWählen Sie ihre Wunschfahrkarte für Berlin AB aus:\n" + - " Einzelfahrschein Regeltarif AB [%.2f EUR] (1)\n" + - " Tageskarte Regeltarif AB [%.2f EUR] (2)\n" + - " Kleingruppen-Tageskarte Regeltarif AB [%.2f EUR] (3)\n" + - " Bezahlen (9)\n\n", preisEinzelfahrschein, preisTageskarte, preisKleingruppe); - System.out.print("Ihre Wahl: "); - auswahlTicket = tastatur.nextByte(); - einzelBetrag = 0.0; - - switch(auswahlTicket) { - case 1: - einzelBetrag = preisEinzelfahrschein; - break; - case 2: - einzelBetrag = preisTageskarte; - break; - case 3: - einzelBetrag = preisKleingruppe; - break; - case 9: - auswahl = false; - break; - default: - System.out.println(" >>falsche Eingabe<<"); - break; - } - - - while (auswahl) { - System.out.print("Anzahl der Tickets: "); - anzahlTickets = tastatur.nextByte(); - if (!(anzahlTickets > 0 && anzahlTickets <= 10)) { - System.out.print("Es wurde ein ungültiger Wert für die Ticketanzahl eingegeben. \n" - + "Bitte erneut versuchen.\n"); - continue; - } - break; - } - - zuZahlenderBetrag += anzahlTickets * einzelBetrag; - - } - - return zuZahlenderBetrag; - } - - public static double fahrkartenBezahlen(double zuZahlenderBetrag) { - Scanner tastatur = new Scanner(System.in); - // Geldeinwurf - // ----------- - 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): "); - double eingeworfeneMünze = tastatur.nextDouble(); - eingezahlterGesamtbetrag += eingeworfeneMünze; - } - // Rückgeldberechnung - double rueckgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag; - return rueckgabebetrag; - } - + public static double fahrkartenbestellungErfassen (){ + // Array für Preise + + String[] bezeichnungen = {"Einzelfahrschein Berlin AB", + "Einzelfahrschein Berlin BC", + "Einzelfahrschein Berlin ABC", + "Kurzstrecke", + "Tageskarte Berlin AB", + "Tageskarte Berlin BC", + "Tageskarte Berlin ABC", + "Kleingruppen-Tageskarte Berlin AB", + "Kleingruppen-Tageskarte Berlin BC", + "Kleingruppen-Tageskarte Berlin ABC"}; + double[] preise = {2.9, 3.3, 3.6, 1.9, 8.6, 9.0, 9.6, 23.5, 24.3, 24.9}; + + Scanner tastatur = new Scanner(System.in); + + double zuZahlenderBetrag = 0.0; + double einzelBetrag = 0.0; + byte anzahlTickets = 0; + byte auswahlTicket = 0; + + while (true) { + System.out.printf("\nWählen Sie:\n"); + int i=0; + for (; i>falsche Eingabe<<"); continue;} + } + + while (true) { + System.out.print("Anzahl der Tickets: "); + anzahlTickets = tastatur.nextByte(); + if (!(anzahlTickets > 0 && anzahlTickets <= 10)) { + System.out.print("Es wurde ein ungültiger Wert für die Ticketanzahl eingegeben. \n" + + "Bitte erneut versuchen.\n"); + continue; + } + break; + } + zuZahlenderBetrag += anzahlTickets * einzelBetrag; + } + + return zuZahlenderBetrag; + } + + public static double fahrkartenBezahlen(double zuZahlenderBetrag) { + Scanner tastatur = new Scanner(System.in); + // Geldeinwurf + // ----------- + 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): "); + double eingeworfeneMünze = tastatur.nextDouble(); + eingezahlterGesamtbetrag += eingeworfeneMünze; + } + // Rückgeldberechnung + double 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("="); - warte(250); - } - System.out.println("\n\n"); + // ----------------- + System.out.println("\nFahrschein wird ausgegeben"); + for (int i = 0; i < 8; i++) + { + System.out.print("="); + warte(250); + } + System.out.println("\n\n"); } - + public static void rueckgeldAusgeben(double 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:"); + // ------------------------------ + 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 > 1.9) // 2 EURO-Münzen - { - muenzeAusgeben(2, "EURO"); - rückgabebetrag -= 2.0; - } - while(rückgabebetrag > 0.9) // 1 EURO-Münzen - { - muenzeAusgeben(1, "EURO"); - rückgabebetrag -= 1.0; - } - while(rückgabebetrag > 0.49) // 50 CENT-Münzen - { - muenzeAusgeben(50, "CENT"); - rückgabebetrag -= 0.5; - } - while(rückgabebetrag > 0.19) // 20 CENT-Münzen - { - muenzeAusgeben(20, "CENT"); - rückgabebetrag -= 0.2; - } - while(rückgabebetrag > 0.09) // 10 CENT-Münzen - { - muenzeAusgeben(10, "CENT"); - rückgabebetrag -= 0.1; - } - while(rückgabebetrag > 0.049)// 5 CENT-Münzen - { - 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(); + while(rückgabebetrag > 1.9) // 2 EURO-Münzen + { + muenzeAusgeben(2, "EURO"); + rückgabebetrag -= 2.0; } + while(rückgabebetrag > 0.9) // 1 EURO-Münzen + { + muenzeAusgeben(1, "EURO"); + rückgabebetrag -= 1.0; + } + while(rückgabebetrag > 0.49) // 50 CENT-Münzen + { + muenzeAusgeben(50, "CENT"); + rückgabebetrag -= 0.5; + } + while(rückgabebetrag > 0.19) // 20 CENT-Münzen + { + muenzeAusgeben(20, "CENT"); + rückgabebetrag -= 0.2; + } + while(rückgabebetrag > 0.09) // 10 CENT-Münzen + { + muenzeAusgeben(10, "CENT"); + rückgabebetrag -= 0.1; + } + while(rückgabebetrag > 0.049)// 5 CENT-Münzen + { + 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) - { - double zuZahlenderBetrag; - double rueckgabebetrag; - zuZahlenderBetrag = fahrkartenbestellungErfassen(); - rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag); - fahrkartenAusgeben(); - rueckgeldAusgeben(rueckgabebetrag); + public static void main(String[] args) + { + double zuZahlenderBetrag; + double rueckgabebetrag; - System.out.println("\nVergessen Sie nicht, den Fahrschein\n"+ - "vor Fahrtantritt entwerten zu lassen!\n"+ - "Wir wünschen Ihnen eine gute Fahrt."); - } + zuZahlenderBetrag = fahrkartenbestellungErfassen(); + rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag); + fahrkartenAusgeben(); + rueckgeldAusgeben(rueckgabebetrag); + + System.out.println("\nVergessen Sie nicht, den Fahrschein\n"+ + "vor Fahrtantritt entwerten zu lassen!\n"+ + "Wir wünschen Ihnen eine gute Fahrt."); + } } \ No newline at end of file