Parkhaus2/Parkhaus.java

60 lines
2.8 KiB
Java
Raw Normal View History

2024-10-08 15:19:51 +02:00
import java.util.ArrayList; // Importiert die ArrayList-Klasse für die Verwaltung von Fahrzeuglisten
import java.time.LocalDateTime; // Importiert die LocalDateTime-Klasse für Zeitstempel
2024-10-08 14:09:49 +02:00
2024-10-08 14:58:40 +02:00
class Parkhaus {
private int aktuelleAutoAnzahl = 0; // Zählt die aktuelle Anzahl der Autos im Parkhaus
2024-10-08 15:19:51 +02:00
private static final int MAX_PLATZANZAHL = 180; // Maximale Anzahl an Parkplätzen im Parkhaus
2024-10-08 14:58:40 +02:00
private ArrayList<Pkw> fahrzeugListe = new ArrayList<>(); // Liste der Fahrzeuge im Parkhaus
private ArrayList<Pkw> fahrzeugSchulden = new ArrayList<>(); // Liste der Fahrzeuge mit Schulden
// Fahrzeug einfahren
public boolean einfahrt(String kennzeichen) {
2024-10-08 15:19:51 +02:00
// Überprüft, ob noch Platz im Parkhaus ist
2024-10-08 14:58:40 +02:00
if (aktuelleAutoAnzahl < MAX_PLATZANZAHL) {
2024-10-08 15:19:51 +02:00
// Erstellt ein neues Pkw-Objekt mit dem gegebenen Kennzeichen und der aktuellen Zeit
2024-10-08 14:58:40 +02:00
Pkw neuesAuto = new Pkw(kennzeichen, LocalDateTime.now());
2024-10-08 15:19:51 +02:00
fahrzeugListe.add(neuesAuto); // Fügt das neue Fahrzeug zur Liste hinzu
aktuelleAutoAnzahl++; // Erhöht die Anzahl der aktuellen Autos
2024-10-08 14:58:40 +02:00
return true; // Erfolgreich eingetragen
} else {
2024-10-08 15:19:51 +02:00
return false; // Parkhaus ist voll
2024-10-08 14:09:49 +02:00
}
}
2024-10-08 14:58:40 +02:00
// Fahrzeug ausfahren
public float ausfahrt(String kennzeichen) {
2024-10-08 15:19:51 +02:00
// Durchläuft die Liste der geparkten Fahrzeuge
2024-10-08 14:58:40 +02:00
for (Pkw auto : fahrzeugListe) {
2024-10-08 15:19:51 +02:00
// Überprüft, ob das Kennzeichen mit dem gesuchten Kennzeichen übereinstimmt
2024-10-08 14:58:40 +02:00
if (auto.getKennzeichen().equals(kennzeichen)) {
2024-10-08 15:19:51 +02:00
// Berechnet die Parkgebühren basierend auf der Eingangszeit und der aktuellen Zeit
2024-10-08 14:58:40 +02:00
float parkgebuehren = ParkgebuehrenBerechnung.berechneGebuehren(auto.getEinfahrzeit(), LocalDateTime.now(), auto.getKennzeichen());
2024-10-08 15:19:51 +02:00
fahrzeugListe.remove(auto); // Entfernt das Fahrzeug aus der Liste
aktuelleAutoAnzahl--; // Verringert die Anzahl der aktuellen Autos
return parkgebuehren; // Gibt die berechneten Parkgebühren zurück
2024-10-08 14:58:40 +02:00
}
2024-10-08 14:09:49 +02:00
}
2024-10-08 14:58:40 +02:00
return -1; // Fahrzeug nicht gefunden
2024-10-08 14:09:49 +02:00
}
2024-10-08 15:19:51 +02:00
// Gibt die aktuelle Anzahl der Fahrzeuge im Parkhaus zurück
2024-10-08 14:58:40 +02:00
public int getAktuelleAutoAnzahl() {
return aktuelleAutoAnzahl;
}
2024-10-08 14:09:49 +02:00
2024-10-08 15:19:51 +02:00
// Gibt die Liste der geparkten Fahrzeuge zurück
2024-10-08 14:58:40 +02:00
public ArrayList<Pkw> getFahrzeugListe() {
return fahrzeugListe;
2024-10-08 14:09:49 +02:00
}
2024-10-08 15:19:51 +02:00
// Fügt ein Fahrzeug zur Liste der Fahrzeuge mit Schulden hinzu
2024-10-08 14:58:40 +02:00
public void addFahrzeugMitSchulden(Pkw auto) {
2024-10-08 15:19:51 +02:00
fahrzeugSchulden.add(auto); // Fügt das Fahrzeug zur Schuldenliste hinzu
2024-10-08 14:58:40 +02:00
}
2024-10-08 14:09:49 +02:00
2024-10-08 15:19:51 +02:00
// Gibt die Liste der Fahrzeuge mit Schulden zurück
2024-10-08 14:58:40 +02:00
public ArrayList<Pkw> getFahrzeugSchulden() {
2024-10-08 15:19:51 +02:00
return fahrzeugSchulden; // Gibt die Liste der Fahrzeuge mit Schulden zurück
2024-10-08 14:09:49 +02:00
}
}