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 class Parkhaus { private int aktuelleAutoAnzahl = 0; // Zählt die aktuelle Anzahl der Autos im Parkhaus private static final int MAX_PLATZANZAHL = 180; // Maximale Anzahl an Parkplätzen im Parkhaus private ArrayList fahrzeugListe = new ArrayList<>(); // Liste der Fahrzeuge im Parkhaus private ArrayList fahrzeugSchulden = new ArrayList<>(); // Liste der Fahrzeuge mit Schulden // Fahrzeug einfahren public boolean einfahrt(String kennzeichen) { // Überprüft, ob noch Platz im Parkhaus ist if (aktuelleAutoAnzahl < MAX_PLATZANZAHL) { // Erstellt ein neues Pkw-Objekt mit dem gegebenen Kennzeichen und der aktuellen Zeit Pkw neuesAuto = new Pkw(kennzeichen, LocalDateTime.now()); fahrzeugListe.add(neuesAuto); // Fügt das neue Fahrzeug zur Liste hinzu aktuelleAutoAnzahl++; // Erhöht die Anzahl der aktuellen Autos return true; // Erfolgreich eingetragen } else { return false; // Parkhaus ist voll } } // Fahrzeug ausfahren public float ausfahrt(String kennzeichen) { // Durchläuft die Liste der geparkten Fahrzeuge for (Pkw auto : fahrzeugListe) { // Überprüft, ob das Kennzeichen mit dem gesuchten Kennzeichen übereinstimmt if (auto.getKennzeichen().equals(kennzeichen)) { // Berechnet die Parkgebühren basierend auf der Eingangszeit und der aktuellen Zeit float parkgebuehren = ParkgebuehrenBerechnung.berechneGebuehren(auto.getEinfahrzeit(), LocalDateTime.now(), auto.getKennzeichen()); 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 } } return -1; // Fahrzeug nicht gefunden } // Gibt die aktuelle Anzahl der Fahrzeuge im Parkhaus zurück public int getAktuelleAutoAnzahl() { return aktuelleAutoAnzahl; } // Gibt die Liste der geparkten Fahrzeuge zurück public ArrayList getFahrzeugListe() { return fahrzeugListe; } // Fügt ein Fahrzeug zur Liste der Fahrzeuge mit Schulden hinzu public void addFahrzeugMitSchulden(Pkw auto) { fahrzeugSchulden.add(auto); // Fügt das Fahrzeug zur Schuldenliste hinzu } // Gibt die Liste der Fahrzeuge mit Schulden zurück public ArrayList getFahrzeugSchulden() { return fahrzeugSchulden; // Gibt die Liste der Fahrzeuge mit Schulden zurück } }