ZULETZT ANGESEHEN
Die Aufgabe der heutigen Stunde ist der Parkscheinautomat! Dieses Programm ist recht einfach gehalten und besteht aus einem einfachen EVA prinzip.
Die Aufgabenstellung lautet:
In System gibt es zu wenig Parkplätze in der Innenstadt. Deshalb sollen sehr teure Parkplatzpreise ohne Kartenzahlungsmöglichkeit dafür sorgen, dass die Leute in der Innenstadt nur vorübergehend parken.
Der verantwortliche Programmierer hatte schon angefangen und vorgestern im Lotto gewonnen. Wir haben gehört, dass er mittlerweile auf Hawaii ist. Sie erhalten von uns alle Unterlagen und Informationen um den Auftrag zu beenden:
Beschreibung des Auftraggebers
Auf einem kostenpflichtigen Parkplatz gilt der Tarif 0,5 € pro angefangener Stunde, maximal 5 € pro Tag.
Lösungsprozess der Aufgabe:
/**
*
* Das fertige Java Programm des "ParkscheinAutomat.java"
*
* @version 1.0 vom 26.02.2024
* @MeinInfoKurs.github.io
*/
public class ParkscheinAutomat {
public static void main(String[] args) {
int Stunden;
double Geldbetrag, Parkgebühr, Zahlbetrag, Wechselgeld;
Stunden = InOut.readInt("Parkzeit in Stunden: ");
Geldbetrag = InOut.readDouble("Eingeworfener Geldbetrag in Euro: ");
Parkgebühr = Stunden * 0.5;
System.out.println("Betrag zu Zahlen: " + Parkgebühr);
if (Parkgebühr > 5) {
Parkgebühr = 5;
}
if (Geldbetrag < Parkgebühr) {
Zahlbetrag = Parkgebühr - Geldbetrag;
System.out.println("Noch zu Zahlen: " + Zahlbetrag);
}else {
if (Geldbetrag > Parkgebühr) {
Wechselgeld = Geldbetrag - Parkgebühr;
System.out.println("Wechselgeld: " + Wechselgeld);
} // end of if
System.out.println("Parkgebühr bezahlt! :");
} // end of if-else
} // end of main
} // end of class ParkscheinAutomat.
In der Aufgabenstellung wird gefordert, dass wir folgende Funktionen in unseren Code implementieren:
- Nutzereingabe der geparkten Stunden
- Nutzereingabe des eingeworfenen Geldbetrags
- Berechnung der Parkgebühr
- Parkgebühr = maximal 5
- Falls Geldbetrag < Parkgebühr wird mehr Geld gefordert
- Berechnung des Wechselgeldes
- Ausgabe des Wechselgeldes
1. Nutzereingaben (Stunden und Geldbetrag)
Um eine Nutzereingabe zu ermöglichen, müssen wir zuerst die Variable deklarieren, der wir einen Wert zuweisen wollen.
Nun brauchen wir eine Variable für die Stunden. Welche nutzen wir da am besten? Einen Integer.
Aber wir müssen auch den Geldbetrag eingeben lassen. Da dieser eine Nachkommastelle beinhalten kann, nutzen wir hier einen Double.
Der Code dafür könnte zb so aussehen:
int Stunden;
double Geldbetrag;
Stunden = InOut.readInt("Parkzeit in Stunden: ");
Geldbetrag = InOut.readDouble("Eingeworfener Geldbetrag in Euro: ");
2. Berechnung der Parkgebühr
Da die Eingabe nun vollendet ist, müssen wir mit den uns zugeteilten Werten einige Rechnungen anstellen, um an das gewünschte Ergebnis zu gelangen. Dafür teilen wir uns alle Rechenschritte in verschiedene kleinere auf:
2.1 Parkgebühr = maximal 5
Um zu überprüfen ob die Parkgebühr mehr als unser Maximal beträgt, benötigen wir ein IF Statement. Die Fähigkeit ein IF Statement zu benutzen ist eine wichtige Grundlage. Kannst du dies nicht, solltest du dir nochmal vergangene Aufgaben anschauen und die Dokumentation durchlesen. Durch folgendes IF Statement können wir diese Bedinung ( Parkgebühr > 5 ) überprüfen:
Parkgebühr = Stunden * 0.5; // Berechnung der Parkgebühr if (Parkgebühr > 5) { Parkgebühr = 5; } // Falls Parkgebühr größer als 5 ist, wird Parkgebühr auf 5 gesetzt.
2.2 Berechnung des Wechselgeldes
Hat der Nutzer nun zu viel Geld eingeworfen, wollen wir ihm sein Wechselgeld geben. Hat er zu wenig eingeworfen, wollen wir das restliche Geld fordern. Dazu benutzen wir ein if-else. Zuerst wollen wir schauen ob der Geldbetrag (den der Nutzer eingeworfen hat) weniger ist als die Parkgebühr, welches heißt das er noch zusätzlich Geld einwerfen muss. Wir verwenden ein IF-ELSE Statement
if (Geldbetrag < Parkgebühr) { // Überprüfen ob zu wenig Geld eingeworfen wurde
Zahlbetrag = Parkgebühr - Geldbetrag; // Falls ja, wird der noch zu zahlende Betrag ausgerechnet
System.out.println("Noch zu Zahlen: " + Zahlbetrag); // Wir fordern den restlichen Betrag
}else { // Falls nicht zu wenig Geld eingeworfen wurde:
if (Geldbetrag > Parkgebühr) { // Überprüfen wir ob zu viel Geld eingeworfen wurde
Wechselgeld = Geldbetrag - Parkgebühr; // Berechnung des Wechselgeldes
System.out.println("Wechselgeld: " + Wechselgeld); // Wechselgeld wird ausgegeben.
} // end of if
System.out.println("Parkgebühr bezahlt! :"); // Bestätigung
} // end of if-else
Die Bestätigung ist ganz am Ende, außerhalb des IF Statements, da falls direkt genug Geld eingeworfen wird, wir nicht in dieses IF Statement gehen müssen und
somit, wenn die Bestätigung im IF Statement wäre, wir keine Bestätigung bei genauem Geldeinwurf erhalten würden.
Da beim ausführen eines Codes, die ausführreihenfolge immer von oben nach unten ist, hätten wir die Bestätigung auch ganz außerhalb des IF-ELSE Statements setzen können
und hätten die selbe Lösung.