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.List;
|
||||||
import java.util.Scanner;
|
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.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:");
|
||||||
|
|
||||||
|
List<Muenze> rueckgabeMuenzen = new ArrayList<Muenze>();
|
||||||
|
|
||||||
while(rückgabebetrag > 1.9) // 2 EURO-Münzen
|
while(rückgabebetrag > 1.9) // 2 EURO-Münzen
|
||||||
{
|
{
|
||||||
muenzeAusgeben(2, "EURO");
|
rueckgabeMuenzen.add(muenzeErstellen(2, "EURO"));
|
||||||
rückgabebetrag -= 2.0;
|
rückgabebetrag -= 2.0;
|
||||||
}
|
}
|
||||||
while(rückgabebetrag > 0.9) // 1 EURO-Münzen
|
while(rückgabebetrag > 0.9) // 1 EURO-Münzen
|
||||||
{
|
{
|
||||||
muenzeAusgeben(1, "EURO");
|
rueckgabeMuenzen.add(muenzeErstellen(1, "EURO"));
|
||||||
rückgabebetrag -= 1.0;
|
rückgabebetrag -= 1.0;
|
||||||
}
|
}
|
||||||
while(rückgabebetrag > 0.49) // 50 CENT-Münzen
|
while(rückgabebetrag > 0.49) // 50 CENT-Münzen
|
||||||
{
|
{
|
||||||
muenzeAusgeben(50, "CENT");
|
rueckgabeMuenzen.add(muenzeErstellen(50, "CENT"));
|
||||||
rückgabebetrag -= 0.5;
|
rückgabebetrag -= 0.5;
|
||||||
}
|
}
|
||||||
while(rückgabebetrag > 0.19) // 20 CENT-Münzen
|
while(rückgabebetrag > 0.19) // 20 CENT-Münzen
|
||||||
{
|
{
|
||||||
muenzeAusgeben(20, "CENT");
|
rueckgabeMuenzen.add(muenzeErstellen(20, "CENT"));
|
||||||
rückgabebetrag -= 0.2;
|
rückgabebetrag -= 0.2;
|
||||||
}
|
}
|
||||||
while(rückgabebetrag > 0.09) // 10 CENT-Münzen
|
while(rückgabebetrag > 0.09) // 10 CENT-Münzen
|
||||||
{
|
{
|
||||||
muenzeAusgeben(10, "CENT");
|
rueckgabeMuenzen.add(muenzeErstellen(10, "CENT"));
|
||||||
rückgabebetrag -= 0.1;
|
rückgabebetrag -= 0.1;
|
||||||
}
|
}
|
||||||
while(rückgabebetrag > 0.049)// 5 CENT-Münzen
|
while(rückgabebetrag > 0.049)// 5 CENT-Münzen
|
||||||
{
|
{
|
||||||
muenzeAusgeben(5, "CENT");
|
rueckgabeMuenzen.add(muenzeErstellen(5, "CENT"));
|
||||||
rückgabebetrag -= 0.05;
|
rückgabebetrag -= 0.05;
|
||||||
}
|
}
|
||||||
|
muenzenAusgeben(rueckgabeMuenzen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,13 +157,41 @@ class Fahrkartenautomat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void muenzeAusgeben(int betrag, String einheit) {
|
public static Muenze muenzeErstellen(int betrag, String einheit) {
|
||||||
System.out.println(" * * *");
|
Muenze addMuenze = new Muenze(betrag, einheit);
|
||||||
System.out.println(" * *");
|
return addMuenze;
|
||||||
System.out.printf("* %-2d *\n", betrag);
|
}
|
||||||
System.out.printf("* %-4s *\n", einheit);
|
|
||||||
System.out.println(" * *");
|
public static void muenzenAusgeben(List<Muenze> muenzen) {
|
||||||
System.out.println(" * * *");
|
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)
|
public static void main(String[] args)
|
||||||
@@ -176,4 +208,30 @@ class Fahrkartenautomat
|
|||||||
"vor Fahrtantritt entwerten zu lassen!\n"+
|
"vor Fahrtantritt entwerten zu lassen!\n"+
|
||||||
"Wir wünschen Ihnen eine gute Fahrt.");
|
"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