108 lines
3.9 KiB
Java
108 lines
3.9 KiB
Java
package QualifierTeil2;
|
|
|
|
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);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|