Hi Leute, habe im Studium gerade begonnen Java zu lernen. Evt. kennt jemand die Entwicklungsumgebung "BlueJ". Wir arbeiten im momentanen Semester damit und steigen nachher auf eclips um.
Jetzt haben wir einen Ticketautomaten vorgegeben, der mit Cent`s arbeitet, sprich:
- Ticketpreis eingeben
- bisher bezahlt ausgibt
- Ticket drucken kann
- preis des Tickets ausgibt
- und natürlich kann man Geld einwerfen
Bisher haben wir nur mit int Werten gearbeitet, jetzt haben wir aber übers WE die Aufgabe bekommen den Quelltext so umzuschreiben, dass er mit Euro und Cent arbeitet bzw. Franken und Rappen.
Einen grossen Teil habe ich schon umgeschrieben, z.B. Eingabe von zwei Werten für Franken und Rappen. Jedoch kriege ichs nicht hin, dass mir der Automat vernünftig was ausgibt.
Hier mal der Quelltext:
Hoffe ihr könnt mir bei meinem Problem weiterhelfen, bin leider noch n blutiger Anfänger in sachen Java . Danke schonmal für euren Rat.
Jetzt haben wir einen Ticketautomaten vorgegeben, der mit Cent`s arbeitet, sprich:
- Ticketpreis eingeben
- bisher bezahlt ausgibt
- Ticket drucken kann
- preis des Tickets ausgibt
- und natürlich kann man Geld einwerfen
Bisher haben wir nur mit int Werten gearbeitet, jetzt haben wir aber übers WE die Aufgabe bekommen den Quelltext so umzuschreiben, dass er mit Euro und Cent arbeitet bzw. Franken und Rappen.
Einen grossen Teil habe ich schon umgeschrieben, z.B. Eingabe von zwei Werten für Franken und Rappen. Jedoch kriege ichs nicht hin, dass mir der Automat vernünftig was ausgibt.
Hier mal der Quelltext:
Java:
/**
* Die Klasse Ticketautomat modelliert einfache Ticketautomaten,
* die Tickets zu einem Einheitspreis herausgeben.
* Der Preis f¸r die Tickets eines Automaten kann ¸ber den Konstruktor
* festgelegt werden.
* Ticketautomaten dieser Klasse pr¸fen, ob sinnvolle Geldbetr‰ge
* eingeworfen werden, und drucken ein Ticket nur dann, wenn
* ausreichend Geld eingeworfen wurde.
*
* @author David J. Barnes und Michael Kˆlling
* @version 2008.03.30
*/
public class Ticketautomat
{
// Der Preis eines Tickets dieses Automaten.
private int preis;//Modifizierer; Datentyp; Bezeichung
// Der Betrag, der bisher vom Automatenbenutzer eingeworfen wurde.
private int bisherGezahlt;
// Die Geldsumme, die bisher von diesem Automaten eingenommen wurde.
private int gesamtsumme;
private int Rappen;
private int Franken;
/**
* Erzeuge einen Automaten, der Tickets zum angegebenen Preis
* (in Franken und Rappen) ausgibt.
*/
public Ticketautomat(int Franken, int Rappen)
{//Konstruktor
preis = Franken + Rappen;
bisherGezahlt = 0;
gesamtsumme = 0;
}
/**Anfang der 1. Methode
* Liefere den Preis eines Tickets dieses Automaten (in Cent).Return ist nicht gleich System.out.println()!
*/
public void gibPreis()
{
System.out.println("Der Preis beträgt:" + Franken +" Franken und " + Rappen +" Rappen");
}
/**Beginn der 2. Methode
* Liefere die Hoehe des Betrags, der fuer das naechste Ticket bereits
* eingeworfen wurde.
*/
public int gibBisherGezahltenBetrag()
{
return bisherGezahlt;//Rückgabeanweisung "return" von bisherGezahlt;, liefert einen ganzzahligen Wert
}//Ende der 2.Methode
/**Begin der 3. Methode (modifizierende Methode)
* Nimm den angegebenen Betrag (in Franken und Rappen) als Anzahlung fuer das
* n‰chste Ticket. Pr¸fe, ob der Betrag sinnvoll ist.
*/
public void geldEinwerfen(int Franken, int Rappen)//modifizierende Methode, am Parameter erkennbar
{
if (Franken >= 0) {// bedingte Anweisung; true oder false
bisherGezahlt+=Franken + Rappen; //bisherGezahlt = bisherGezahlt + betrag;//
}
else {
System.out.println("Bitte nur positive Betraege verwenden: "//Betrag hat int Wert; Fehlermeldung wird ausgegeben....
+ Franken + Rappen);
}
}
/**
* Drucke ein Ticket, wenn gen¸gend Geld eingeworfen wurde, und
* ziehe den Ticketpreis vom bisher gezahlten Betrag ab. Gib eine
* Fehlermeldung aus, falls noch Geld f¸r ein Ticket fehlt.
*/
public void ticketDrucken() //modifizierende Methode
{
if (bisherGezahlt >= preis) {
// Den Ausdruck eines Tickets simulieren.
System.out.println("##################");
System.out.println("# Die BlueJ-Linie");
System.out.println("# Ticket");
System.out.println("#" + Franken +" Franken");
System.out.println("#" + Rappen +" Rappen");
System.out.println("##################");
System.out.println();
// Die Gesamtsumme um den Ticketpreis erhˆhen.
gesamtsumme = gesamtsumme + preis;
// Den Preis von der bisherigen Bezahlung abziehen.
bisherGezahlt = bisherGezahlt - preis;
}
else {
System.out.println("Sie m¸ssen noch mindestens " +
(preis - bisherGezahlt) +
" Franken einwerfen.");
}
}
/**
* Gib das Wechselgeld bzw. den bisher gezahlten Betrag zur¸ck.
*/
public int wechselgeldAuszahlen()
{
int wechselgeld = bisherGezahlt; //lokale Variable (Hilfsvariable); nur in der Methode wirksam; wird nachher wieder verworfen
bisherGezahlt = 0; //setzt bisherGezahlt auf 0 zurück
return wechselgeld; //gibt Wert von wechselgeld zurück, nicht im Textfeld
}
}
Hoffe ihr könnt mir bei meinem Problem weiterhelfen, bin leider noch n blutiger Anfänger in sachen Java . Danke schonmal für euren Rat.
Zuletzt bearbeitet von einem Moderator: