diff --git a/Fahrkartenautomat/src/Fahrkartenautomat.java b/Fahrkartenautomat/src/Fahrkartenautomat.java index 1872f5e..f3f19bc 100644 --- a/Fahrkartenautomat/src/Fahrkartenautomat.java +++ b/Fahrkartenautomat/src/Fahrkartenautomat.java @@ -1,4 +1,5 @@ -import java.util.Arrays; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Scanner; @@ -111,36 +112,39 @@ 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:"); + List rueckgabeMuenzen = new ArrayList(); + while(rückgabebetrag > 1.9) // 2 EURO-Münzen { - muenzeAusgeben(2, "EURO"); + rueckgabeMuenzen.add(muenzeErstellen(2, "EURO")); rückgabebetrag -= 2.0; } while(rückgabebetrag > 0.9) // 1 EURO-Münzen { - muenzeAusgeben(1, "EURO"); + rueckgabeMuenzen.add(muenzeErstellen(1, "EURO")); rückgabebetrag -= 1.0; } while(rückgabebetrag > 0.49) // 50 CENT-Münzen { - muenzeAusgeben(50, "CENT"); + rueckgabeMuenzen.add(muenzeErstellen(50, "CENT")); rückgabebetrag -= 0.5; } while(rückgabebetrag > 0.19) // 20 CENT-Münzen { - muenzeAusgeben(20, "CENT"); + rueckgabeMuenzen.add(muenzeErstellen(20, "CENT")); rückgabebetrag -= 0.2; } while(rückgabebetrag > 0.09) // 10 CENT-Münzen { - muenzeAusgeben(10, "CENT"); + rueckgabeMuenzen.add(muenzeErstellen(10, "CENT")); rückgabebetrag -= 0.1; } while(rückgabebetrag > 0.049)// 5 CENT-Münzen { - muenzeAusgeben(5, "CENT"); + rueckgabeMuenzen.add(muenzeErstellen(5, "CENT")); rückgabebetrag -= 0.05; } + muenzenAusgeben(rueckgabeMuenzen); } } @@ -153,13 +157,41 @@ class Fahrkartenautomat } } - public static void muenzeAusgeben(int betrag, String einheit) { - System.out.println(" * * *"); - System.out.println(" * *"); - System.out.printf("* %-2d *\n", betrag); - System.out.printf("* %-4s *\n", einheit); - System.out.println(" * *"); - System.out.println(" * * *"); + public static Muenze muenzeErstellen(int betrag, String einheit) { + Muenze addMuenze = new Muenze(betrag, einheit); + return addMuenze; + } + + public static void muenzenAusgeben(List muenzen) { + int anzahlZeilen = (int)((double)muenzen.size()/(double)3) +1; + int[] anzahlMuenzen = new int[anzahlZeilen]; + + for (int i=0; i3; j++) { + zBetrag += String.format("* %-2d * ", muenzen.get(j+fMuenzen).getBetrag()); + zEinheit += String.format("* %-4s * ", muenzen.get(j+fMuenzen).getEinheit()); + } + System.out.println(zBetrag); + System.out.println(zEinheit); + System.out.println(" * * ".repeat(anzahlMuenzen[i])); + System.out.println(" * * * ".repeat(anzahlMuenzen[i])); + fMuenzen+=j; + try { + anzahlMuenzen[i+1]=muenzen.size()-fMuenzen; + } + catch (ArrayIndexOutOfBoundsException exception) { + + } + } } public static void main(String[] args) @@ -176,4 +208,30 @@ class Fahrkartenautomat "vor Fahrtantritt entwerten zu lassen!\n"+ "Wir wünschen Ihnen eine gute Fahrt."); } +} + +class Muenze { + private int betrag; + private String einheit; + + public Muenze(int betrag, String einheit) { + this.setBetrag(betrag); + this.einheit=einheit; + } + + public int getBetrag() { + return betrag; + } + + public void setBetrag(int betrag) { + this.betrag = betrag; + } + + public String getEinheit() { + return einheit; + } + + public void setEinheit(String einheit) { + this.einheit = einheit; + } } \ No newline at end of file