82 lines
3.6 KiB
Java
82 lines
3.6 KiB
Java
|
import java.util.Scanner;
|
||
|
import java.util.regex.Pattern;
|
||
|
import java.util.regex.Matcher;
|
||
|
import java.time.LocalDateTime;
|
||
|
|
||
|
public class Main {
|
||
|
public static void main(String[] args) {
|
||
|
Scanner scanner = new Scanner(System.in);
|
||
|
Parkhaus parkhaus = new Parkhaus();
|
||
|
String kennzeichenRegex = "^[A-ZÄÖÜ]{1,3}-[A-Z]{1,2} \\d{1,4}E?$"; // Regex für deutsches Kennzeichen mit optionalem 'E'
|
||
|
Pattern kennzeichenPattern = Pattern.compile(kennzeichenRegex);
|
||
|
|
||
|
System.out.println("Willkommen im Parkhaus!");
|
||
|
|
||
|
while (true) {
|
||
|
System.out.println("\nWählen Sie eine Option:");
|
||
|
System.out.println("1: Einfahrt");
|
||
|
System.out.println("2: Ausfahrt");
|
||
|
System.out.println("3: Liste der geparkten Fahrzeuge");
|
||
|
System.out.println("4: Programm beenden");
|
||
|
|
||
|
String auswahl = scanner.nextLine();
|
||
|
|
||
|
switch (auswahl) {
|
||
|
case "1":
|
||
|
System.out.println("Geben Sie das Kennzeichen des Autos ein (z.B. MA-SH 4077):");
|
||
|
String kennzeichen = scanner.nextLine();
|
||
|
|
||
|
Matcher kennzeichenMatcher = kennzeichenPattern.matcher(kennzeichen);
|
||
|
if (!kennzeichenMatcher.matches()) {
|
||
|
System.out.println("Ungültiges Kennzeichenformat. Bitte versuchen Sie es erneut.");
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
boolean erfolgreich = parkhaus.einfahrt(kennzeichen);
|
||
|
if (erfolgreich) {
|
||
|
System.out.println("Fahrzeug erfolgreich eingetragen.");
|
||
|
} else {
|
||
|
System.out.println("Das Parkhaus ist voll. Einfahrt nicht möglich.");
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case "2":
|
||
|
System.out.println("Geben Sie Ihr Kennzeichen ein:");
|
||
|
String kennzeichenAus = scanner.nextLine();
|
||
|
float parkgebuehren = parkhaus.ausfahrt(kennzeichenAus);
|
||
|
|
||
|
if (parkgebuehren == -1) {
|
||
|
System.out.println("Fahrzeug nicht im Parkhaus gefunden.");
|
||
|
} else {
|
||
|
System.out.println("Die Parkgebühren betragen: " + parkgebuehren + " Euro");
|
||
|
System.out.println("Bitte geben Sie Ihre 16-stellige Kreditkartennummer zur Bezahlung ein:");
|
||
|
String kreditkartennummer = scanner.nextLine();
|
||
|
|
||
|
if (Zahlungsabwicklung.validiereKreditkarte(kreditkartennummer)) {
|
||
|
System.out.println("Bezahlung erfolgreich. Vielen Dank!");
|
||
|
} else {
|
||
|
System.out.println("Ungültige Kreditkartennummer. Fahrzeug wird als schuldig markiert.");
|
||
|
parkhaus.addFahrzeugMitSchulden(new Pkw(kennzeichenAus, LocalDateTime.now())); // Fahrzeug mit Schulden markieren
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case "3":
|
||
|
System.out.println("Aktuell geparkte Fahrzeuge:");
|
||
|
for (Pkw auto : parkhaus.getFahrzeugListe()) {
|
||
|
System.out.println("Kennzeichen: " + auto.getKennzeichen() + ", Eingefahren am: " + auto.getEinfahrzeit());
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case "4":
|
||
|
System.out.println("Programm wird beendet. Auf Wiedersehen!");
|
||
|
scanner.close();
|
||
|
return;
|
||
|
|
||
|
default:
|
||
|
System.out.println("Ungültige Auswahl. Bitte versuchen Sie es erneut.");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|