G
giant
Gast
Hallo Leute,
Also ich muss ein Bankomatbeispiel programmieren, die Aufgabenstellung lautet wie folgt:
Nun das hier habe ich schon gemacht:
Nun wenn ich "50er scheine 5 mal" eintippe, lässt er mich nicht abheben, jedes mal wird der Wert "Nicht genügend Scheine" ausgeliefert.
Weis jemand wo mein Problem liegt?
LG
Also ich muss ein Bankomatbeispiel programmieren, die Aufgabenstellung lautet wie folgt:
Das Besondere an diesem Bankomat ist, dass man weder Karte noch Code benötigt, um abzuheben ;-)
In den Attributen (scheine500, scheine200, ...) ist jeweils die Anzahl der 500er-Scheine, 200er-Scheine, ... gespeichert.
Ein neuer Bankomat ist leer, d.h. alle scheineXXX-Atribute haben den Wert 0.
Daher muss der Bankomat befüllt werden. Die Methode befuellen(...) hat 2 Parameter:
schein: gibt an, welche scheine nachgelegt werden (z.B. 50 - es werden 50er-Scheine nachgelegt).
anzahl: gibt an, wieviele Scheine nachgelegt werden.
Mit der Methode auszahlen(...) kann man den Bankomat veranlassen, einen bestimmten Betrag auszuzahlen. Der Automat muss nun berechnen, ob und mit welchen Scheinen er den Betrag auszahlen kann. Dabei gilt die Regel, dass er immer mit den größtmöglichen Scheinen auszahlt. Die Anzahl der jeweiligen Scheine wird auf der Konsole ausgegeben.
Beispiel: Der Betrag 790 soll ausgezahlt werden - Ausgabe auf der Konsole:
500-Scheine: 1
200-Scheine: 1
50-Scheine: 1
20-Scheine: 2
Natürlich muss dabei überprüft werden, ob die benötigten Scheine überhaupt verfügbar sind. Falls nicht, wird eine Fehlermeldung ausgegeben: Betrag nicht verfügbar.
Bei einer Auszahlung müssen auch die Werte der entsprechenden scheineXXX-Attribute reduziert werden.
Nun das hier habe ich schon gemacht:
Java:
public class Bankomat
{
private int scheine500;
private int scheine200;
private int scheine100;
private int scheine50;
private int scheine20;
private int scheine10;
//Konstruktor
public Bankomat()
{
scheine500 = 0;
scheine200 = 0;
scheine100 = 0;
scheine50 = 0;
scheine20 = 0;
scheine10 = 0;
}
public void befuellen(int schein, int anzahl)
{
if ( schein == 10 ||schein == 20 || schein == 50 || schein == 100 || schein == 200 ||schein == 500 )
{
if (schein == 10)
{
scheine10 = anzahl;
}
if (schein == 20)
{
scheine20 = anzahl;
}
if (schein == 50)
{
scheine50 = anzahl;
}
if (schein == 100)
{
scheine100 = anzahl;
}
if (schein == 200)
{
scheine200 = anzahl;
}
if (schein == 500)
{
scheine500 = anzahl;
}
}
else
{
System.out.println("Mein Sohn, diese Scheine gibt es nicht!");
}
}
public void auszahlen(int betrag)
{
int betrScheine500 = 0;
int betrScheine200 = 0;
int betrScheine100 = 0;
int betrScheine50 = 0;
int betrScheine20 = 0;
int betrScheine10 = 0;
if (scheine500 <= betrScheine500)
{
betrScheine500 = scheine500;
betrag = betrag - (500 * (betrScheine500));
}
if (scheine200 <= betrScheine200)
{
betrScheine200 = scheine200;
betrag = betrag - (200 * (betrScheine200));
}
if (scheine100 <= betrScheine100)
{
betrScheine100 = scheine100;
betrag = betrag - (100 * (betrScheine100));
}
if (scheine50 <= betrScheine50)
{
betrScheine50 = scheine50;
betrag = betrag - (50 * (betrScheine50));
}
if (scheine20 <= betrScheine20)
{
betrScheine20 = scheine20;
betrag = betrag - (20 * (betrScheine20));
}
if (scheine10 <= betrScheine10)
{
betrScheine10 = scheine10;
betrag = betrag - (10 * (betrScheine10));
}
if (betrag == 0)
{
if(betrScheine500 != 0)
{
System.out.println("500-Scheine: " + betrScheine500);
scheine500 = scheine500 - (betrScheine500);
}
if(betrScheine200 != 0)
{
System.out.println("200-Scheine: " + betrScheine200);
scheine200 = scheine200 - (betrScheine200);
}
if(betrScheine100 != 0)
{
System.out.println("100-Scheine: " + betrScheine100);
scheine100 = scheine100 - (betrScheine100);
}
if(betrScheine50 != 0)
{
System.out.println("50-Scheine: " + betrScheine50);
scheine50 = scheine50 - (betrScheine50);
}
if(betrScheine20 != 0)
{
System.out.println("20-Scheine: " + betrScheine20);
scheine20 = scheine20 - (betrScheine20);
}
if(betrScheine10 != 0)
{
System.out.println("10-Scheine: " + betrScheine10);
scheine10 = scheine10 - (betrScheine10);
}
}
else
{
System.out.println("Nicht genügend Scheine vorhanden!");
}
}
}
Nun wenn ich "50er scheine 5 mal" eintippe, lässt er mich nicht abheben, jedes mal wird der Wert "Nicht genügend Scheine" ausgeliefert.
Weis jemand wo mein Problem liegt?
LG