Parkhaus2/Parkhaus.java

60 lines
2.8 KiB
Java

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<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) {
// Ü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<Pkw> 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<Pkw> getFahrzeugSchulden() {
return fahrzeugSchulden; // Gibt die Liste der Fahrzeuge mit Schulden zurück
}
}