hey, hab hier ne schöne, Aufgabe komme aber selbst leider nicht drauf. Bin blutige Anfängerin.
Wir sollen einen Münzautomaten programmieren in Java mit JCreator.
Die Aufgabe lautet:
1. Der zu zahlende Fahrpreis ist ein float-Wert (die kleinste Einheit ist 5 Cent,
kleinere Centbeträge kommen nicht vor).
2. Der zu zahlende Fahrpreis ist immer kleiner oder gleich 5 Euro und größer als
0 Euro.
3. Es können nicht mehr als 5 Euro als Geldbetrag eingeworfen werden. Der
eingeworfene Geldbetrag ist als float-Wert zu erfassen (zwei Nachkommastellen).
4. Der Automat verfügt über folgende Münzarten: 2 Euro, 1 Euro, 50 Cent, 20,
Cent, 10 Cent, 5 Cent.
5. Auszugeben ist die Anzahl der jeweiligen Münzart, die als Wechselgeld zurückgegeben
wird.
6. Der eingeworfene Geldbetrag ist größer oder gleich dem zu zahlenden Fahrpreis.
Beispiel:
Eingabe:
zu zahlender Fahrpreis: 2,10 Euro
eingeworfener Geldbetrag: 5,00 Euro
Ausgabe:
1 * 2 Euro, 1 * 50 Cent, 2 * 20 Cent
Entwerfen Sie eine Java-Klasse Muenzautomat, die das voran stehende
Problem löst. Diese soll eine Methode public int[] berechneWechselgeld(float
preis, float geldbetrag) enthalten. In dieser Methode soll das Wechselgeld berechnet
werden. Als Ergebnis wird ein Feld zurückgegeben, dass für jede Münzart
die Anzahl der Münzen im Wechselgeld angibt.
Hab da mal was zusammengebastelt und hab jetzt ne totale blockade.
Naja wäre aufjedenfall nett, wenn mir jemand helfen könnte
lg Sandra
Wir sollen einen Münzautomaten programmieren in Java mit JCreator.
Die Aufgabe lautet:
1. Der zu zahlende Fahrpreis ist ein float-Wert (die kleinste Einheit ist 5 Cent,
kleinere Centbeträge kommen nicht vor).
2. Der zu zahlende Fahrpreis ist immer kleiner oder gleich 5 Euro und größer als
0 Euro.
3. Es können nicht mehr als 5 Euro als Geldbetrag eingeworfen werden. Der
eingeworfene Geldbetrag ist als float-Wert zu erfassen (zwei Nachkommastellen).
4. Der Automat verfügt über folgende Münzarten: 2 Euro, 1 Euro, 50 Cent, 20,
Cent, 10 Cent, 5 Cent.
5. Auszugeben ist die Anzahl der jeweiligen Münzart, die als Wechselgeld zurückgegeben
wird.
6. Der eingeworfene Geldbetrag ist größer oder gleich dem zu zahlenden Fahrpreis.
Beispiel:
Eingabe:
zu zahlender Fahrpreis: 2,10 Euro
eingeworfener Geldbetrag: 5,00 Euro
Ausgabe:
1 * 2 Euro, 1 * 50 Cent, 2 * 20 Cent
Entwerfen Sie eine Java-Klasse Muenzautomat, die das voran stehende
Problem löst. Diese soll eine Methode public int[] berechneWechselgeld(float
preis, float geldbetrag) enthalten. In dieser Methode soll das Wechselgeld berechnet
werden. Als Ergebnis wird ein Feld zurückgegeben, dass für jede Münzart
die Anzahl der Münzen im Wechselgeld angibt.
Java:
public class Muenzautomat
{
double muenz[][]=new double[2][8];
int anzahl_muenzen[]=new int[8];
float zuZahlen;
float Preis;
double rueckGeldBetrag;
int Exeption;
public float zuZahlen()
{
this.zuZahlen=zuZahlen;
}
public float Preis()
{
this.Preis=Preis;
}
public void init()
{
muenz[0][0]=2;
muenz[0][1]=1;
muenz[0][2]=0.5;
muenz[0][3]=0.2;
muenz[0][4]=0.1;
muenz[0][5]=0.05;
muenz[0][6]=0.02;
muenz[0][7]=0.01;
for(int i=0;i<=7;i++)
{
muenz[1][i]=5;
}
}
// Anfang Methoden
public void neuberechnen()
{
for(int i=0;i<=7;i++)
{
muenz[1][i]=muenz[1][i]-anzahl_muenzen[i];
anzahl_muenzen[i]=0;
}
}
// Prüfung
public boolean pruefung(int i)
{
if((muenz[0][i]==2.0)&&(muenz[1][i]<=5))
return true;
if((muenz[0][i]==1.0)&&(muenz[1][i]<=5))
return true;
if((muenz[0][i]==0.5)&&(muenz[1][i]<=5))
return true;
if((muenz[0][i]==0.2)&&(muenz[1][i]<=5))
return true;
if((muenz[0][i]==0.1)&&(muenz[1][i]<=5))
return true;
if((muenz[0][i]==0.05)&&(muenz[1][i]<=5))
return true;
if((muenz[0][i]==0.02)&&(muenz[1][i]<=5))
return true;
if((muenz[0][i]==0.01)&&(muenz[1][i]<=5))
// Prüfung 2
int i=0, gesamt=0;
do
{
if(betrag>=muenz[0][i])
{
anzahl_muenzen[i]=(int)(betrag/muenz[0][i]);
betrag=betrag%muenz[0][i];
betrag=(java.lang.Math.round(betrag*100)/100.);
}
gesamt=gesamt+anzahl_muenzen[i];
i++;
if(i>7) break;
}while(betrag>0);
if(gesamt==1)
label1.setText("Es wird insgesamt 1 Münze benötigt");
else
label1.setText("Es werden insgesamt "+((Integer)gesamt).toString()+" Münzen benötigt");
textArea1.setText(null);
for(i=0;i<=7;i++)
{
if(anzahl_muenzen[i]!=0)
{
textArea1.insert((muenz[0][i]+" Euro: "+anzahl_muenzen[i]+"\n"),0);
if (pruefung(i)==true)textArea1.insert(("ACHTUNG!WENIG VON DEN " + muenz[0][i]+" EURO MÜNZEN VORHANDEN!\n"),0);
}
}
neuberechnen();
//Prüfung 3
public int abfragen(double muenze)
{
for(int i=0;i<=7;i++)
{
if(muenze==muenz[0][i])
return (int)muenz[1][i];
}
return Exception("Eingegebene Münze nicht vorhanden!!");
}
//Ende Methoden
}
Java:
public class berechneWechselgeld
{
public static void main(String[] args)
{
// Geldbetraege einlesen
Out.print("Bitte geben Sie den zu zahlenden Betrag in Cent ein:");
int zuZahlen = In.readInt();
Out.print("Bitte geben Sie den gegebenen Geldbetrag in Cent ein:");
int Preis = In.readInt();
// Differenz, die zurueckgegeben werden muss, berechnen
int rueckGeldBetrag = zuZahlen - Preis;
// Ausgabe bei zu wenig gegebenem Geld oder passendem Betrag (kein Rueckgeld)
if (rueckGeldBetrag < 0)
{
Out.println("Sie haben zu wenig Geld gegeben," +
" es fehlen noch " + (-rueckGeldBetrag) + " Cent!");
}
else if (rueckGeldBetrag == 0)
{
Out.println("Kein Rueckgeld.");
}
/*
* Solange Geld zurueckgeben, bis die Differenz zwischen
* dem zu zahlenden Betrag und dem gegebenen Betrag 0 ergibt.
*/
while (zuZahlen > 0)
{
if (rueckGeldBetrag >= 5)
{
rueckGeldBetrag = rueckGeldBetrag - 5;
Out.println("5 zurueck");
}
else if (rueckGeldBetrag >= 2)
{
zuZahlen = rueckGeldBetrag - 2;
Out.println("2 zurueck");
}
else
{
rueckGeldBetrag = rueckGeldBetrag - 1;
Out.println("1 zurueck");
}
}
}
}
Hab da mal was zusammengebastelt und hab jetzt ne totale blockade.
Naja wäre aufjedenfall nett, wenn mir jemand helfen könnte
lg Sandra