Verbesserte SystemAusGaben,
verbesserte berechnungen, ausfahrt und Schuldenspeicherung überarbeitet, flow chart korrigiert; KI Promts hinzugefügtmain
parent
423e6e33b0
commit
7737315b18
|
@ -1,26 +1,35 @@
|
||||||
Benutzer startet Main Klasse
|
Benutzer startet Main-Klasse:
|
||||||
System gibt Willkommens Nachricht aus und bittet um eingabe ob einfahrt oder ausfahrt
|
Das Programm erstellt im Hintergrund ein Datumsformat und baut einen Parkplatz auf, um auf die Parkplatz-Klasse zugreifen zu können.
|
||||||
Benutzer gibt ein ob man ein-, ausfährt, bezahlen oder beenden möchte
|
Das System gibt eine Willkommensnachricht aus und bittet um die Eingabe, ob Einfahrt oder Ausfahrt gewünscht ist.
|
||||||
System nimmt entscheidung auf und startet anhand der Entscheidung entweder der Park/Ausfahrt oder den Bezahlvorgang oder beendet das Programm
|
Der Benutzer gibt ein, ob man ein- oder ausfahren, bezahlen oder das Programm beenden möchte.
|
||||||
|
Das System nimmt die Entscheidung auf und startet basierend auf der Entscheidung entweder den Park-/Ausfahrtvorgang, den Bezahlvorgang oder beendet das Programm.
|
||||||
|
|
||||||
1. Parkvorgang:
|
1. Parkvorgang:
|
||||||
Das Programm bittet um eingabe des Kennzeichens und des Datums mit Uhrzeit
|
Das Programm bittet um die Eingabe des Kennzeichens und des Datums mit Uhrzeit.
|
||||||
Benutzer gibt die geforderten Daten ein
|
Der Benutzer gibt die geforderten Daten ein.
|
||||||
Programm kreiert anhand der Daten ein neues Auto Objekt in der Parkhaus Klasse und speichert in einer Auto Liste um mehrere Autos managen zu können
|
Das Programm sucht in der ArrayList der eingefahrenen und ausgefahrenen Autos nach dem Kennzeichen, um sicherzugehen, dass das Auto noch nicht eingefahren ist und ob es bereits einmal eingefahren war, um die Schulden zu übernehmen.
|
||||||
|
Wenn das Auto in den eingefahrenen Autos gefunden wird, gibt das System einen Fehler aus, da Autos nicht zwei Mal mit dem gleichen Kennzeichen eingefahren sein können.
|
||||||
|
Wenn das Auto in den ausgefahrenen Autos gefunden wird, werden die Schulden übernommen, und es wird eine Willkommensnachricht mit der Erklärung ausgegeben, dass die Schulden übernommen wurden.
|
||||||
|
Wenn das Auto nirgends vorhanden ist, wird ein neues Auto erstellt und eingefahren.
|
||||||
|
|
||||||
2. Ausfahrt:
|
2. Ausfahrt:
|
||||||
Eingabe des Kennzeichens und Datums mit Uhrzeit vom Ausfahren
|
Das System fordert den Kunden auf, das Kennzeichen sowie die Uhrzeit einzugeben, zu der ausgefahren werden soll.
|
||||||
Preis berechnung im Hintergrund
|
Nach der Eingabe des Kennzeichens und des Datums mit Uhrzeit für die Ausfahrt erfolgt die Preisberechnung im Hintergrund.
|
||||||
Platz im Parkhaus wird wieder größer
|
(Wenn die Dauer des Parkaufenthalts kürzer als 15 Minuten ist, gilt "Kiss and Ride", und es entstehen keine Kosten.)
|
||||||
nicht gezahlter Betrag wird zu den Schulden gespeichert
|
Das Ergebnis der Parkkostenberechnung wird ausgegeben, gefolgt von einer Abschiedsnachricht mit der Ankündigung, dass Schulden hinzugefügt wurden, da nicht bezahlt wurde.
|
||||||
|
Der Platz im Parkhaus wird wieder freigegeben.
|
||||||
|
Das Auto wird in der Liste der ausgefahrenen Autos gespeichert, um beim nächsten Einfahren auf die Schulden zugreifen zu können.
|
||||||
|
|
||||||
3. Bezahlen und Ausfahren
|
3. Bezahlen und Ausfahren:
|
||||||
Eingabe des Kennzeichens und Datums mit Uhrzeit vom Ausfahren
|
Das System fordert den Kunden auf, das Kennzeichen sowie die Uhrzeit einzugeben, zu der bezahlt werden soll.
|
||||||
Preis berechnung im Hintergrund
|
Nach der Eingabe des Kennzeichens und des Datums mit Uhrzeit erfolgt die Preisberechnung im Hintergrund.
|
||||||
Ausgabe des Preises
|
Der zu zahlende Betrag wird ausgegeben.
|
||||||
Kunde wird aufgefordert seine Kreditkartennummer einzugeben
|
Der Kunde wird aufgefordert, seine Kreditkartennummer einzugeben.
|
||||||
Prüfziffer wird berechnet
|
Die Kreditkartennummer wird auf Plausibilität geprüft.
|
||||||
Platz im Parkhaus wird größer, keine Schulden da gezahlt wird
|
Wenn plausibel, werden die einzelnen Ziffern der Kreditkartennummer aufaddiert und die Quersumme gebildet.
|
||||||
|
Die Quersumme wird mit Modulo 10 geprüft, ob sie mit der letzten Ziffer der Kreditkartennummer übereinstimmt.
|
||||||
|
Wenn ja, werden die Schulden beglichen, das Auto fährt aus, und der Platz im Parkhaus wird wieder freigegeben.
|
||||||
|
Wenn nein, werden die Schulden nicht getilgt, und der Kunde wird erneut aufgefordert, das Kennzeichen und die Bezahlzeit einzugeben.
|
||||||
|
|
||||||
4. beenden:
|
4. Beenden:
|
||||||
Programm verabschiedet sich und wird beendet
|
Das Programm verabschiedet sich und wird beendet.
|
|
@ -0,0 +1,97 @@
|
||||||
|
Ich:
|
||||||
|
java while schleife ist nicht immer true, wie kann ich eine andere Option anbieten. Beispiel: So lange die Eistüte nicht voll ist kann man hinzufügen, aber wenn die Eistüte voll ist soll man nur noch wegnehmen können
|
||||||
|
|
||||||
|
ChatGPT:
|
||||||
|
In deinem Beispiel möchtest du eine Schleife haben, die fortlaufend Eis in eine Eistüte füllt, solange sie nicht voll ist. Sobald die Eistüte voll ist, soll die Schleife nur noch das Entfernen von Eis erlauben. Du kannst dies mit einer Kombination aus einer `while`-Schleife und einer Bedingung realisieren, die entscheidet, ob du Eis hinzufügen oder wegnehmen kannst.
|
||||||
|
|
||||||
|
Hier ist eine einfache Möglichkeit, dies umzusetzen:
|
||||||
|
|
||||||
|
1. Verwende eine Schleife, um den aktuellen Zustand der Eistüte zu überprüfen.
|
||||||
|
2. Wenn die Eistüte voll ist, kann man nur noch Eis wegnehmen.
|
||||||
|
3. Wenn die Eistüte nicht voll ist, kann man Eis hinzufügen.
|
||||||
|
|
||||||
|
Ein Beispiel in Java:
|
||||||
|
|
||||||
|
```java
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Eisstand {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
int maximaleKapazität = 5; // Maximale Anzahl der Eiskugeln, die die Tüte halten kann
|
||||||
|
int aktuelleKugeln = 0; // Aktuelle Anzahl der Eiskugeln in der Tüte
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if (aktuelleKugeln < maximaleKapazität) {
|
||||||
|
System.out.println("Die Eistüte hat " + aktuelleKugeln + " Kugeln. Möchtest du eine Kugel hinzufügen? (ja/nein)");
|
||||||
|
String eingabe = scanner.nextLine();
|
||||||
|
|
||||||
|
if (eingabe.equalsIgnoreCase("ja")) {
|
||||||
|
aktuelleKugeln++;
|
||||||
|
System.out.println("Eine Kugel wurde hinzugefügt.");
|
||||||
|
} else {
|
||||||
|
System.out.println("Okay, keine Kugel hinzugefügt.");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
System.out.println("Die Eistüte ist voll mit " + aktuelleKugeln + " Kugeln. Möchtest du eine Kugel wegnehmen? (ja/nein)");
|
||||||
|
String eingabe = scanner.nextLine();
|
||||||
|
|
||||||
|
if (eingabe.equalsIgnoreCase("ja")) {
|
||||||
|
aktuelleKugeln--;
|
||||||
|
System.out.println("Eine Kugel wurde weggenommen.");
|
||||||
|
} else {
|
||||||
|
System.out.println("Keine Kugel wurde weggenommen.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Erklärung:
|
||||||
|
- Solange die Anzahl der Kugeln in der Eistüte kleiner ist als die maximale Kapazität (`aktuelleKugeln < maximaleKapazität`), wird der Benutzer gefragt, ob er eine Kugel hinzufügen möchte.
|
||||||
|
- Sobald die maximale Kapazität erreicht ist, wird der Benutzer gefragt, ob er eine Kugel entfernen möchte, da die Eistüte voll ist.
|
||||||
|
|
||||||
|
Mit dieser Logik wird sichergestellt, dass du nur so lange Eis hinzufügen kannst, bis die Tüte voll ist, und danach nur noch Kugeln wegnehmen kannst.
|
||||||
|
|
||||||
|
Ich:
|
||||||
|
Meine Funktion greift in sich selbst zu und wenn eine maximale Zahl von 180 erreicht wurde soll nichts mehr einfahren können. Es wird ein Parkhaus erstellt welches am Anfang leer ist und es können autos ein oder aus fahren.
|
||||||
|
|
||||||
|
ChatGPT:
|
||||||
|
Um das Problem mit dem Parkhaus zu lösen, kannst du eine Methode verwenden, die den aktuellen Status (Anzahl der Autos) überwacht. Wenn die maximale Kapazität von 180 erreicht ist, darf kein weiteres Auto mehr einfahren, aber Autos können weiterhin ausfahren.
|
||||||
|
|
||||||
|
Hier ist eine Beispielimplementierung:
|
||||||
|
|
||||||
|
```java
|
||||||
|
public class Parkhaus {
|
||||||
|
private int aktuelleAutos = 0;
|
||||||
|
private final int maximaleKapazität = 180;
|
||||||
|
|
||||||
|
// Methode, um ein Auto einfahren zu lassen
|
||||||
|
public void autoEinfahren() {
|
||||||
|
if (aktuelleAutos < maximaleKapazität) {
|
||||||
|
aktuelleAutos++;
|
||||||
|
System.out.println("Ein Auto ist eingefahren. Aktuelle Anzahl Autos: " + aktuelleAutos);
|
||||||
|
} else {
|
||||||
|
System.out.println("Das Parkhaus ist voll! Kein Auto kann mehr einfahren.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Methode, um ein Auto ausfahren zu lassen
|
||||||
|
public void autoAusfahren() {
|
||||||
|
if (aktuelleAutos > 0) {
|
||||||
|
aktuelleAutos--;
|
||||||
|
System.out.println("Ein Auto ist ausgefahren. Aktuelle Anzahl Autos: " + aktuelleAutos);
|
||||||
|
} else {
|
||||||
|
System.out.println("Das Parkhaus ist leer! Kein Auto zum Ausfahren.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Erklärung:
|
||||||
|
- `aktuelleAutos` speichert die Anzahl der Autos im Parkhaus.
|
||||||
|
- Die Methode `autoEinfahren()` prüft, ob die Anzahl der Autos unter der maximalen Kapazität liegt. Wenn dies der Fall ist, wird ein Auto eingefahren, andernfalls wird eine Meldung ausgegeben, dass das Parkhaus voll ist.
|
||||||
|
- Die Methode `autoAusfahren()` lässt ein Auto ausfahren, wenn mindestens ein Auto im Parkhaus ist. Ansonsten wird eine Meldung angezeigt, dass das Parkhaus leer ist.
|
||||||
|
|
||||||
|
Du kannst diese Methoden dann in deinem Hauptprogramm oder in anderen Klassen verwenden, um das Ein- und Ausfahren der Autos zu steuern.
|
|
@ -0,0 +1,53 @@
|
||||||
|
Ich:
|
||||||
|
Ich möchte in Java meine Systemzeit auslesen lassen und sie in einem String im Format DD.MM.YYYY HH:MM
|
||||||
|
|
||||||
|
ChatGPT:
|
||||||
|
Um die aktuelle Systemzeit in Java auszulesen und im gewünschten Format `DD.MM.YYYY HH:MM` darzustellen, kannst du die Klasse `SimpleDateFormat` oder, wenn du mit Java 8 oder höher arbeitest, die moderne `DateTimeFormatter`-API verwenden.
|
||||||
|
|
||||||
|
Hier ist ein Beispiel für beide Varianten:
|
||||||
|
|
||||||
|
### Variante 1: Mit `SimpleDateFormat`
|
||||||
|
```java
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// Aktuelle Systemzeit
|
||||||
|
Date now = new Date();
|
||||||
|
|
||||||
|
// Format festlegen
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm");
|
||||||
|
|
||||||
|
// In String umwandeln
|
||||||
|
String formattedDate = sdf.format(now);
|
||||||
|
|
||||||
|
// Ausgabe
|
||||||
|
System.out.println(formattedDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Variante 2: Mit `DateTimeFormatter` (Java 8+)
|
||||||
|
```java
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// Aktuelle Systemzeit
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|
||||||
|
// Format festlegen
|
||||||
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
|
||||||
|
|
||||||
|
// In String umwandeln
|
||||||
|
String formattedDate = now.format(dtf);
|
||||||
|
|
||||||
|
// Ausgabe
|
||||||
|
System.out.println(formattedDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Beide Varianten liefern die aktuelle Systemzeit im Format `DD.MM.YYYY HH:MM`. Die moderne `DateTimeFormatter`-API wird bevorzugt, da sie thread-sicher ist und mehr Funktionalität bietet.
|
|
@ -0,0 +1,95 @@
|
||||||
|
Ich:
|
||||||
|
Benutzer startet Main Klasse
|
||||||
|
Programm erstellt im Hintergrund ein Datums format und baut ein Parkplatz auf um auf die ParkplatzKlasse zugreifen zu können
|
||||||
|
System gibt Willkommens Nachricht aus und bittet um eingabe ob einfahrt oder ausfahrt
|
||||||
|
Benutzer gibt ein ob man ein-, ausfährt, bezahlen oder beenden möchte
|
||||||
|
System nimmt entscheidung auf und startet anhand der Entscheidung entweder der Park/Ausfahrt oder den Bezahlvorgang oder beendet das Programm
|
||||||
|
|
||||||
|
1. Parkvorgang:
|
||||||
|
Das Programm bittet um eingabe des Kennzeichens und des Datums mit Uhrzeit
|
||||||
|
Benutzer gibt die geforderten Daten ein
|
||||||
|
Programm sucht nach eingegebenen Kennzeichen in der ArrayList eingefahrene und ausgefahrene Autos nach dem Kennzeichen
|
||||||
|
um sicherzugehen, dass das Auto noch nicht eingefahen ist und ob es bereits mal eingefahren war um die Schulden zu übernehmen
|
||||||
|
Wenn auto gefunden in eingefahrenen ausgabe eines Fehlers, da Autos nicht zwei mal das gleiche Kennzeichen haben können, wenn auto in ausgefahrenen
|
||||||
|
0erden schulden übernommen und ausgabe einer willkommens nachricht mit erklärung, dass Schulden übernommen werden
|
||||||
|
Wenn Auto nirgends vorhanden wird neues Auto erstellt und eingefahren.
|
||||||
|
|
||||||
|
2. Ausfahrt:
|
||||||
|
System fordert den Kunden auf das Kennzeichen welches ausfahren soll sowie die Uhrzeit zu der ausgefahren werden soll
|
||||||
|
Eingabe des Kennzeichens und Datums mit Uhrzeit vom Ausfahren
|
||||||
|
Preis berechnung im Hintergrund (Wenn dauer des Parkaufenthalts kleiner als 15 minuten dann gilt Kiss and Ride und es entstehen keine Kosten)
|
||||||
|
Ausgabe Ergebnis Parkkostenberechnung und abschiedsnachricht mit ankündigung, dass Schulden da nicht bezahlt wurden hinzugefügt wurden
|
||||||
|
Platz im Parkhaus wird wieder größer
|
||||||
|
Auto wird in ausgefahrene Autos gespeichert um beim nächsten ausfahen auf die Schulden zugreifen zu können
|
||||||
|
|
||||||
|
3. Bezahlen und Ausfahren
|
||||||
|
System fordert den Kunden auf das Kennzeichen welches bezahlt werden soll sowie die Uhrzeit zu der bezahlt werden soll
|
||||||
|
Eingabe des Kennzeichens und Datums mit Uhrzeit vom bezahlen
|
||||||
|
Preis berechnung im Hintergrund
|
||||||
|
Ausgabe des Preises
|
||||||
|
Kunde wird aufgefordert seine Kreditkartennummer einzugeben
|
||||||
|
Kredtkartennummer wird auf plausiblität geprüft
|
||||||
|
Wenn plausible, werden die einzelnen Zahlen aus die letze Stelle der Kreditkartennummer aufeinander aufaddiert und die Quersumme gebildet
|
||||||
|
Quersumme mit modulo 10 geprüft ob dies die letzte Zahl auf der Kreditkarte bildet wenn
|
||||||
|
Ja:
|
||||||
|
Schulden beglichen, auto fährt aus, Platz im Parkhaus wird größer
|
||||||
|
Nein:
|
||||||
|
Schulden werden nicht getilgt, erneute Kennzeicheneingabe sowie bezahlzeit gefordert
|
||||||
|
|
||||||
|
4. beenden:
|
||||||
|
Programm verabschiedet sich und wird beendet
|
||||||
|
|
||||||
|
Korrigiere etwaiige rechtschreibfehler
|
||||||
|
|
||||||
|
ChatGPT:
|
||||||
|
Hier ist der korrigierte Text:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Benutzer startet Main-Klasse:**
|
||||||
|
Das Programm erstellt im Hintergrund ein Datumsformat und baut einen Parkplatz auf, um auf die Parkplatz-Klasse zugreifen zu können.
|
||||||
|
Das System gibt eine Willkommensnachricht aus und bittet um die Eingabe, ob Einfahrt oder Ausfahrt gewünscht ist.
|
||||||
|
Der Benutzer gibt ein, ob man ein- oder ausfahren, bezahlen oder das Programm beenden möchte.
|
||||||
|
Das System nimmt die Entscheidung auf und startet basierend auf der Entscheidung entweder den Park-/Ausfahrtvorgang, den Bezahlvorgang oder beendet das Programm.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 1. Parkvorgang:
|
||||||
|
Das Programm bittet um die Eingabe des Kennzeichens und des Datums mit Uhrzeit.
|
||||||
|
Der Benutzer gibt die geforderten Daten ein.
|
||||||
|
Das Programm sucht in der ArrayList der eingefahrenen und ausgefahrenen Autos nach dem Kennzeichen, um sicherzugehen, dass das Auto noch nicht eingefahren ist und ob es bereits einmal eingefahren war, um die Schulden zu übernehmen.
|
||||||
|
Wenn das Auto in den eingefahrenen Autos gefunden wird, gibt das System einen Fehler aus, da Autos nicht zwei Mal mit dem gleichen Kennzeichen eingefahren sein können.
|
||||||
|
Wenn das Auto in den ausgefahrenen Autos gefunden wird, werden die Schulden übernommen, und es wird eine Willkommensnachricht mit der Erklärung ausgegeben, dass die Schulden übernommen wurden.
|
||||||
|
Wenn das Auto nirgends vorhanden ist, wird ein neues Auto erstellt und eingefahren.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Ausfahrt:
|
||||||
|
Das System fordert den Kunden auf, das Kennzeichen sowie die Uhrzeit einzugeben, zu der ausgefahren werden soll.
|
||||||
|
Nach der Eingabe des Kennzeichens und des Datums mit Uhrzeit für die Ausfahrt erfolgt die Preisberechnung im Hintergrund.
|
||||||
|
(Wenn die Dauer des Parkaufenthalts kürzer als 15 Minuten ist, gilt "Kiss and Ride", und es entstehen keine Kosten.)
|
||||||
|
Das Ergebnis der Parkkostenberechnung wird ausgegeben, gefolgt von einer Abschiedsnachricht mit der Ankündigung, dass Schulden hinzugefügt wurden, da nicht bezahlt wurde.
|
||||||
|
Der Platz im Parkhaus wird wieder freigegeben.
|
||||||
|
Das Auto wird in der Liste der ausgefahrenen Autos gespeichert, um beim nächsten Einfahren auf die Schulden zugreifen zu können.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. Bezahlen und Ausfahren:
|
||||||
|
Das System fordert den Kunden auf, das Kennzeichen sowie die Uhrzeit einzugeben, zu der bezahlt werden soll.
|
||||||
|
Nach der Eingabe des Kennzeichens und des Datums mit Uhrzeit erfolgt die Preisberechnung im Hintergrund.
|
||||||
|
Der zu zahlende Betrag wird ausgegeben.
|
||||||
|
Der Kunde wird aufgefordert, seine Kreditkartennummer einzugeben.
|
||||||
|
Die Kreditkartennummer wird auf Plausibilität geprüft.
|
||||||
|
Wenn plausibel, werden die einzelnen Ziffern der Kreditkartennummer aufaddiert und die Quersumme gebildet.
|
||||||
|
Die Quersumme wird mit Modulo 10 geprüft, ob sie mit der letzten Ziffer der Kreditkartennummer übereinstimmt.
|
||||||
|
Wenn **ja**, werden die Schulden beglichen, das Auto fährt aus, und der Platz im Parkhaus wird wieder freigegeben.
|
||||||
|
Wenn **nein**, werden die Schulden nicht getilgt, und der Kunde wird erneut aufgefordert, das Kennzeichen und die Bezahlzeit einzugeben.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. Beenden:
|
||||||
|
Das Programm verabschiedet sich und wird beendet.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Alle Rechtschreibfehler wurden korrigiert, und der Ablauf bleibt wie von dir gewünscht erhalten.
|
|
@ -47,6 +47,7 @@ public class Main {
|
||||||
}
|
}
|
||||||
Auto auto = new Auto(kennzeichenEinfahrt, einfahrtZeit);
|
Auto auto = new Auto(kennzeichenEinfahrt, einfahrtZeit);
|
||||||
parkhaus.addAuto(auto);
|
parkhaus.addAuto(auto);
|
||||||
|
System.out.println("Im Parkhaus sind jetzt noch " + parkhaus.getPlatz() + " plätze frei");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
@ -80,6 +81,7 @@ public class Main {
|
||||||
bezahltZeit = sdf.parse(bezahltEingabe);
|
bezahltZeit = sdf.parse(bezahltEingabe);
|
||||||
System.out.println("Es wird die Bezahlzeit: " + sdf.format(bezahltZeit) + " verwendet");
|
System.out.println("Es wird die Bezahlzeit: " + sdf.format(bezahltZeit) + " verwendet");
|
||||||
}
|
}
|
||||||
|
System.out.println("Für die Dauer die Sie im Parkhaus standen, fallen Kosten in Höhe von " + parkhaus.berechneParkKosten(auto, bezahltZeit) + "€ an");
|
||||||
System.out.println("Bitte geben Sie die 16 Stellige Nummer Ihrer Visa Karte ein");
|
System.out.println("Bitte geben Sie die 16 Stellige Nummer Ihrer Visa Karte ein");
|
||||||
String kreditkartennummer = sc.nextLine();
|
String kreditkartennummer = sc.nextLine();
|
||||||
parkhaus.bezahlen(kennzeichenBezahlt, bezahltZeit, kreditkartennummer);
|
parkhaus.bezahlen(kennzeichenBezahlt, bezahltZeit, kreditkartennummer);
|
||||||
|
|
|
@ -54,27 +54,22 @@ public class Parkhaus {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addAuto(Auto auto) {
|
public void addAuto(Auto auto) {
|
||||||
Auto vorhandenesAuto = autoFinden(auto.getKennzeichen());
|
for (Auto ausgefahrenesAuto : ausgefahrene) {
|
||||||
|
if (ausgefahrenesAuto.getKennzeichen().equals(auto.getKennzeichen())) {
|
||||||
if (vorhandenesAuto != null) {
|
System.out.println("Auto mit dem Kennzeichen " + auto.getKennzeichen() + " fährt erneut ein. Übernommene Schulden: " + ausgefahrenesAuto.getSchulden() + "€");
|
||||||
System.out.println("Ein Auto mit diesem Kennzeichen ist bereits eingefahren.");
|
ausgefahrene.remove(ausgefahrenesAuto);
|
||||||
return;
|
ausgefahrenesAuto.setEinfahrtZeit(auto.getEinfahrtZeit());
|
||||||
}
|
autos.add(ausgefahrenesAuto);
|
||||||
Auto ausgefahrenesAuto = autoFinden(auto.getKennzeichen());
|
platz -= 1;
|
||||||
if (ausgefahrenesAuto != null) {
|
return;
|
||||||
auto.setSchulden(ausgefahrenesAuto.getSchulden());
|
}
|
||||||
ausgefahrene.remove(ausgefahrenesAuto);
|
|
||||||
System.out.println("Das Auto hat noch Schulden von " + auto.getSchulden() + " €.");
|
|
||||||
}
|
|
||||||
if (platz <= 0) {
|
|
||||||
System.out.println("Das Parkhaus ist voll, Sie können nicht mehr einfahren!");
|
|
||||||
} else {
|
|
||||||
autos.add(auto);
|
|
||||||
platz -= 1;
|
|
||||||
System.out.println("Das Auto mit dem Kennzeichen " + auto.getKennzeichen() + " ist eingefahren.");
|
|
||||||
}
|
}
|
||||||
|
autos.add(auto);
|
||||||
|
platz -= 1;
|
||||||
|
System.out.println("Auto mit dem Kennzeichen " + auto.getKennzeichen() + " ist eingefahren.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Auto autoFinden(String kennzeichen) {
|
public Auto autoFinden(String kennzeichen) {
|
||||||
for (Auto auto : autos) {
|
for (Auto auto : autos) {
|
||||||
if (auto.getKennzeichen().equals(kennzeichen)) {
|
if (auto.getKennzeichen().equals(kennzeichen)) {
|
||||||
|
@ -94,16 +89,10 @@ public class Parkhaus {
|
||||||
Auto auto = autoFinden(kennzeichen);
|
Auto auto = autoFinden(kennzeichen);
|
||||||
if (auto == null) {
|
if (auto == null) {
|
||||||
System.out.println("Für dieses Kennzeichen ist leider kein Auto vorhanden.");
|
System.out.println("Für dieses Kennzeichen ist leider kein Auto vorhanden.");
|
||||||
return; // Methode beenden, falls das Auto nicht gefunden wird
|
return;
|
||||||
}
|
}
|
||||||
double aktuelleKosten = berechneParkKosten(auto, bezahltZeit);
|
double aktuelleKosten = berechneParkKosten(auto, bezahltZeit);
|
||||||
double gesamtSchulden = auto.getSchulden() + aktuelleKosten;
|
double gesamtSchulden = auto.getSchulden() + aktuelleKosten;
|
||||||
|
|
||||||
System.out.println("Für die Parkdauer fallen Kosten in Höhe von " + aktuelleKosten + " € an.");
|
|
||||||
System.out.println("Ihre Gesamtschulden betragen: " + gesamtSchulden + " €.");
|
|
||||||
|
|
||||||
System.out.println("Bitte geben Sie Ihre 16-stellige VISA-Kreditkartennummer ein:");
|
|
||||||
|
|
||||||
if (!istGueltigeVisaKarte(kreditkartennummer)) {
|
if (!istGueltigeVisaKarte(kreditkartennummer)) {
|
||||||
System.out.println("Ungültige Kreditkartennummer! Bitte versuchen Sie es erneut.");
|
System.out.println("Ungültige Kreditkartennummer! Bitte versuchen Sie es erneut.");
|
||||||
return;
|
return;
|
||||||
|
@ -111,6 +100,11 @@ public class Parkhaus {
|
||||||
|
|
||||||
System.out.println("Zahlung erfolgreich! Ihre Schulden wurden beglichen.");
|
System.out.println("Zahlung erfolgreich! Ihre Schulden wurden beglichen.");
|
||||||
auto.setSchulden(0);
|
auto.setSchulden(0);
|
||||||
|
System.out.println("Wir wünschen Ihnen noch einen schönen Tag und bis zum nächsten mal");
|
||||||
|
autos.remove(auto);
|
||||||
|
ausgefahrene.remove(auto);
|
||||||
|
platz +=1;
|
||||||
|
System.out.println("Nun sind im Parkhaus wieder " + platz + " Plätze frei");
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean istGueltigeVisaKarte(String kreditkartenNummer) {
|
private boolean istGueltigeVisaKarte(String kreditkartenNummer) {
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue