07++ display max 3 coins side by side
This commit is contained in:
@@ -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<Muenze> rueckgabeMuenzen = new ArrayList<Muenze>();
|
||||
|
||||
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<Muenze> muenzen) {
|
||||
int anzahlZeilen = (int)((double)muenzen.size()/(double)3) +1;
|
||||
int[] anzahlMuenzen = new int[anzahlZeilen];
|
||||
|
||||
for (int i=0; i<anzahlZeilen-1; i++) anzahlMuenzen[i] = 3;
|
||||
if (anzahlZeilen == 1) anzahlMuenzen[0] = muenzen.size();
|
||||
|
||||
int fMuenzen=0;
|
||||
for (int i=0; i<anzahlZeilen; i++) {
|
||||
System.out.println(" * * * ".repeat(anzahlMuenzen[i]));
|
||||
System.out.println(" * * ".repeat(anzahlMuenzen[i]));
|
||||
String zBetrag = "";
|
||||
String zEinheit = "";
|
||||
int j=0;
|
||||
for (; (j<anzahlMuenzen[i]) || j>3; 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user