Java Projekt: Fahrkartenautomat

Hier ein kleines Projekt, bei dem ich dir zeige, wie du einen Fahrkartenautomaten in Java realisieren kannst. Ich denke, der Code mit den Kommentaren sagt mehr aus, als eine ausführliche Beschreibung, hier also der Code:

//Imports
import java.util.ArrayList;
import java.util.Arrays;

//Klasse: Fahrkartenautomat
public class Fahrkartenautomat
{
    //Deklaration der Instanzvariablen
    private double fahrPreis;
    private double einwurf;
    private double gesamtEinnahmen;
    private ArrayList<Double> ticketumsaetze = new ArrayList<Double>();

    //Konstruktor
    public Fahrkartenautomat(){
        //Initialisierung der Instanzvariablen
        fahrPreis = 3.8;
        einwurf = 0.0;
        gesamtEinnahmen = 0.0;
        ticketumsaetze.clear();
    }

    //Methode zum Festlegen des Fahrpreises
    public void fahrpreisFestlegen(double Fahrpreis){
        fahrPreis = Fahrpreis;
    }

    //Methode zum Einzahlen
    public void einzahlen(double betrag){
        einwurf += betrag;
    }

    //Methode zum Drucken der Fahrkarte
    public void druckeFahrkarte(){
        System.out.println("Fahrpreis: " + fahrPreis + "€");
        System.out.println("Bereits gezahlt: " + einwurf + "€");
        if (einwurf < fahrPreis){
            System.out.println("Es fehlen noch " + (fahrPreis - einwurf) + "€.");
        } else if (einwurf == fahrPreis){
            System.out.println("Der Kauf wurde abgschlossen.");
            gesamtEinnahmen += fahrPreis;
            ticketumsaetze.add(fahrPreis);
            einwurf = 0.0;
        } else if (einwurf > fahrPreis){
            System.out.println("Der Kauf wurde abgschlossen.");
            gesamtEinnahmen += fahrPreis;
            ticketumsaetze.add(fahrPreis);
            System.out.println("Sie erhalten " + (einwurf - fahrPreis) + "€ Wechselgeld.");
            einwurf = 0.0;
        }
    }

    //Methode zum Anzeigen der Gesamteinnahmen
    public double getGesamteinnahmen(){
        return gesamtEinnahmen;
    }

    //Methode zum Abbrechen
    public void abbrechen(){
        System.out.println("Der Vorgang wird abgebrochen. Sie erhalten " + einwurf + "€ zurück.");
        einwurf = 0.0;
        fahrPreis = 0.0;
    }

    //Methode zum Ausdrucken des Ticketverlaufes
    public void ticketkaufverlaufAusdrucken(){
        System.out.println("\n--------------------------------------------");
        System.out.println("Ihre Umsätze: ");
        System.out.println("--------------------------------------------");
        for (int i = 0; i < ticketumsaetze.size(); i++){
            System.out.println("Ticketverkauf für: " + ticketumsaetze.get(i));
            System.out.println("--------------------------------------------");
        }
        System.out.println("Gesamteinnahmen bisher: " + getGesamteinnahmen() + "\n");
        System.out.println("--------------------------------------------");
    }
}

Das Projekt kannst du z.B. in BlueJ öffnen und ausführen. Hier ist der Vorteil, dass die Objekte ziemlich gut für Anfänger visualisiert sind.

Erstelle hier also als erstes Objekte für die verschiedenen Konten. Jetzt kannst du die verschiedenen Funktionen auf die Objekte anwenden. Hier ein paar Fotos dazu:

Bei Fragen oder Anregungen immer gerne einen Kommentar schreiben ;-).

Jan

Ich bin Jan und ich freue mich, dass du meinen Blog gefunden hast. Ich blogge in meiner Freizeit über Smart Home, 3D Druck und Technik und versuche, dir mit meinen Beiträgen möglichst gut zu helfen.

Hast du Fragen, Anregungen oder einen einfachen Kommentar dazu? Dann poste es hier!

Bitte bedenke, dass alle Kommentare manuell freigeschaltet werden müssen. Das kann teilweise ein bisschen dauern, du kannst dich aber mit der unten aufgeführten Funktion benachrichtigen lassen, wenn er beantwortet wurde. Das heißt auch, dass Beleidigungen, Spam oder pure Werbung keine Chance haben, auf die Website zu kommen. Deine Email-Adresse wird selbstverständlich nicht veröffentlicht.