Class Ticketautomat 1/3 /** * 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. * Ein Ticketautomat ist insofern 'naiv', dass er seinen Benutzern * vertraut, dass sie genügend Geld einwerfen, bevor sie sich ein Ticket * ausdrucken lassen. * Außerdem nimmt er an, dass sinnvolle Beträge eingeworfen werden. * * @author David J. Barnes und Michael Kölling / WS * @version 2006.05.22 */ public class Ticketautomat { // Der Preis eines Tickets dieses Automaten. private int preis; // Der Betrag, der bisher vom Automatenbenutzer eingeworfen wurde. private int bisherGezahlt; // Die Geldsumme, die bisher von diesem Automaten eingenommen wurde. private int gesamtsumme; // für das Wechselgeld private int zuViel; /** * Erzeuge eine Maschine, die Tickets zum angegebenen Preis * (in Cent) ausgibt. * Zu beachten: Der Preis muss größer als Null sein, * der Automat überprüft dies jedoch nicht. */ public Ticketautomat(int ticketpreis) { preis = ticketpreis; bisherGezahlt = 0; gesamtsumme = 0; zuViel = 0; } /** * Liefere den Preis eines Tickets dieses Automaten (in Cent). */ public int gibPreis() { return preis; } /** * Liefere die Höhe des Betrags, der für das nächste Ticket bereits * eingeworfen wurde. */ public int gibBisherGezahltenBetrag() { return bisherGezahlt; 22.05.2006 06:07:50 Class Ticketautomat (fortgesetzt) 2/3 } /** * Nimm den angegebenen Betrag (in Cent) als Anzahlung für das * nächste Ticket. */ public void geldEinwerfen(int betrag) { bisherGezahlt += betrag; } /** * Drucke ein Ticket. * Aktualisiere die eingenommene Gesamtsumme und setze den gezahlten * Betrag auf Null. */ public void ticketDrucken() { // Den Ausdruck eines Tickets simulieren. System.out.println("##################"); System.out.println("# Die BlueJ-Linie"); System.out.println("# Ticket"); System.out.println("# " + preis + " Cent."); System.out.println("##################"); System.out.println(); // Die Gesamtsumme mit dem eingezahlten Betrag aktualisieren. gesamtsumme += bisherGezahlt; // Die bisherige Bezahlung zurücksetzen. bisherGezahlt = 0; } /** * Drucke ein Ticket by ws */ public void ticketDrucken2() { // Den Ausdruck eines Tickets simulieren. if (bisherGezahlt >= preis) { zuViel = bisherGezahlt - preis; System.out.println("##################"); System.out.println("# Die BlueJ-Linie"); System.out.println("# Ticket"); System.out.println("# " + preis + " Cent."); if (zuViel > 0) { System.out.println("# Wechselgeld:" + zuViel + " Cent."); } System.out.println("##################"); System.out.println(); // Die Gesamtsumme mit dem eingezahlten Betrag aktualisieren. 22.05.2006 06:07:50 Class Ticketautomat (fortgesetzt) 3/3 gesamtsumme += preis; // Die bisherige Bezahlung zurücksetzen. bisherGezahlt = 0; zuViel = 0; } else { System.out.println(" Kein Geld, kein Ticket!!!"); } } } 22.05.2006 06:07:50