package QualifierTeil2.QualifierTeil2domain; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class UI { private Parkhaus parkhaus1 = new Parkhaus(); private Scanner scan = new Scanner(System.in); // Methode für die Einfahrt eines PKWs public void einfahrtPKW() { // Überprüfen, ob das Parkhaus voll ist if (parkhaus1.istVoll()) { System.out.println("Das Parkhaus ist voll. Keine weiteren Einfahrten möglich."); return; // Methode beenden, wenn keine Parkplätze mehr verfügbar sind } // Eingabe von Kennzeichen; wenn leer, Kennzeichen wird automatisch generiert System.out.println("Bitte geben Sie das Kennzeichen ein (leer lassen, um ein Kennzeichen zu generieren):"); String kennzeichen = scan.nextLine(); if (kennzeichen.isEmpty()) { kennzeichen = parkhaus1.generiereKennzeichen(); System.out.println("Generiertes Kennzeichen: " + kennzeichen); System.out.println(" "); } // manuelle oder automatische Eingabe der Einfahrtszeit SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); Date einfahrtZeit; System.out.println("Bitte geben Sie die Einfahrtszeit ein (leer lassen, um die aktuelle Zeit zu verwenden, Format: dd.MM.yyyy, HH:mm):"); String einfahrtInput = scan.nextLine(); // Falls die Eingabe leer ist, wird die aktuelle Zeit verwendet if (einfahrtInput.isEmpty()) { einfahrtZeit = new Date(); // aktuelle Zeit System.out.println("Einfahrtszeit: " + sdf.format(einfahrtZeit)); } else { // Falls eine manuelle Zeit eingegeben wurde try { einfahrtZeit = sdf.parse(einfahrtInput); System.out.println("Manuell eingegebene Einfahrtszeit: " + sdf.format(einfahrtZeit)); } catch (ParseException e) { System.out.println("Ungültiges Format. Die aktuelle Zeit wird verwendet."); einfahrtZeit = new Date(); System.out.println("Einfahrtszeit: " + sdf.format(einfahrtZeit)); } } System.out.println("Aktuell verfügbare Parkplätze: " + parkhaus1.kapazitaetVerfuegbar); // Methodenaufruf vom Parkhaus für die Einfahrt parkhaus1.einfahren(kennzeichen, einfahrtZeit); System.out.println("weitere verfügbare Parkplätze: " + parkhaus1.kapazitaetVerfuegbar); //Debugging // System.out.println("belegt: " + parkhaus1.belegt); // System.out.println("Liste pkws: " + parkhaus1.getParkendePkws()); } // Methode für die Einfahrt von mehreren PKWs public void mehrereEinfahrten() { while (true) { if (parkhaus1.istVoll()) { System.out.println("Das Parkhaus ist voll. Keine weiteren Einfahrten möglich."); break; } // PKW einfahren einfahrtPKW(); // Frage, ob der Benutzer weitere PKWs einfahren lassen möchte System.out.println("Möchten Sie einen weiteren PKW einfahren lassen? (j/n)"); String weiter = scan.nextLine(); // Wenn der Benutzer "n" eingibt, wird die Schleife beendet if (!weiter.equalsIgnoreCase("j")) { break; } } } // Methode zum Anzeigen der verfügbaren Plätze public void zeigeVerfügbarePlätze() { System.out.println("Verfügbare Plätze: " + parkhaus1.kapazitaetVerfuegbar); System.out.println(" "); } // Methode für die Ausfahrt und Bezahlung public void ausfahrtPKW() { System.out.println("Geben Sie das Kennzeichen des ausfahrenden PKWs ein: "); String kennzeichen = scan.nextLine().toUpperCase(); //Methodenaufruf vom Parkhaus für die Ausfahrt parkhaus1.ausfahren(kennzeichen); } }