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
{
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);