erneute Korrektur falscher Rückgeldbetrag + 2 weitere Methoden

This commit is contained in:
Joel Baldauf
2020-10-02 11:17:17 +02:00
parent 7326467647
commit d090f2b7ce
+36 -28
View File
@@ -2,14 +2,14 @@
class Fahrkartenautomat class Fahrkartenautomat
{ {
public static float fahrkartenbestellungErfassen (){ public static double fahrkartenbestellungErfassen (){
Scanner tastatur = new Scanner(System.in); Scanner tastatur = new Scanner(System.in);
float zuZahlenderBetrag; double zuZahlenderBetrag;
byte anzahlTickets; byte anzahlTickets;
System.out.print("Ticketpreis (EURO): "); System.out.print("Ticketpreis (EURO): ");
zuZahlenderBetrag = tastatur.nextFloat(); zuZahlenderBetrag = tastatur.nextDouble();
System.out.print("Anzahl der Tickets: "); System.out.print("Anzahl der Tickets: ");
anzahlTickets = tastatur.nextByte(); anzahlTickets = tastatur.nextByte();
@@ -19,20 +19,20 @@ class Fahrkartenautomat
return zuZahlenderBetrag; return zuZahlenderBetrag;
} }
public static float fahrkartenBezahlen(float zuZahlenderBetrag) { public static double fahrkartenBezahlen(double zuZahlenderBetrag) {
Scanner tastatur = new Scanner(System.in); Scanner tastatur = new Scanner(System.in);
// Geldeinwurf // Geldeinwurf
// ----------- // -----------
float eingezahlterGesamtbetrag = 0; double eingezahlterGesamtbetrag = 0;
while(eingezahlterGesamtbetrag < zuZahlenderBetrag) while(eingezahlterGesamtbetrag < zuZahlenderBetrag)
{ {
System.out.printf("Noch zu zahlen: %.2f Euro \n", (zuZahlenderBetrag - eingezahlterGesamtbetrag)); System.out.printf("Noch zu zahlen: %.2f Euro \n", (zuZahlenderBetrag - eingezahlterGesamtbetrag));
System.out.print("Eingabe (mind. 5Ct, höchstens 2 Euro): "); System.out.print("Eingabe (mind. 5Ct, höchstens 2 Euro): ");
float eingeworfeneMünze = tastatur.nextFloat(); double eingeworfeneMünze = tastatur.nextDouble();
eingezahlterGesamtbetrag += eingeworfeneMünze; eingezahlterGesamtbetrag += eingeworfeneMünze;
} }
// Rückgeldberechnung // Rückgeldberechnung
float rueckgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag; double rueckgabebetrag = eingezahlterGesamtbetrag - zuZahlenderBetrag;
return rueckgabebetrag; return rueckgabebetrag;
} }
@@ -43,17 +43,12 @@ class Fahrkartenautomat
for (int i = 0; i < 8; i++) for (int i = 0; i < 8; i++)
{ {
System.out.print("="); System.out.print("=");
try { warte(250);
Thread.sleep(250);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
System.out.println("\n\n"); System.out.println("\n\n");
} }
public static void rueckgeldAusgeben(float rückgabebetrag) { public static void rueckgeldAusgeben(double rückgabebetrag) {
// Rückgeldausgabe // Rückgeldausgabe
// ------------------------------ // ------------------------------
if(rückgabebetrag > 0.0) 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.printf("Der Rückgabebetrag in Höhe von %.2f EURO \n", rückgabebetrag);
System.out.println("wird in folgenden Münzen ausgezahlt:"); 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; 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; 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; 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; 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; 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; 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) public static void main(String[] args)
{ {
float zuZahlenderBetrag; double zuZahlenderBetrag;
float rueckgabebetrag; double rueckgabebetrag;
zuZahlenderBetrag = fahrkartenbestellungErfassen(); zuZahlenderBetrag = fahrkartenbestellungErfassen();
rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag); rueckgabebetrag = fahrkartenBezahlen(zuZahlenderBetrag);