diff --git a/QualifierTeil2/Main.java b/QualifierTeil2/Main.java index a64eac7..43b5943 100644 --- a/QualifierTeil2/Main.java +++ b/QualifierTeil2/Main.java @@ -1,4 +1,30 @@ package QualifierTeil2; +import java.text.ParseException; +import java.util.Random; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class Main extends UI { + + + public static void main(String[] args) throws ParseException { + + einfahrtPKW(); + ausfahrtPKW(); + + + } + + + + + + + + + + + // --------------------------------Hilfsmethoden-------------------------------------- + -public class Main { } diff --git a/QualifierTeil2/PKW.java b/QualifierTeil2/PKW.java index ede3e5c..3a37963 100644 --- a/QualifierTeil2/PKW.java +++ b/QualifierTeil2/PKW.java @@ -1,4 +1,54 @@ package QualifierTeil2; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Random; + public class PKW { + String kennzeichen; + String einfahrt; + String ausfahrt; + + public PKW() { + this.kennzeichen = generiereKennzeichen(); + this.einfahrt = gebeAktuelleZeit(); + this.ausfahrt = gebeAktuelleZeit(); + } + + public String gebeAktuelleZeit(){ + var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); + return sdf.format(new Date()); + } + + public String generiereKennzeichen(){ + Random random = new Random(); + + // 2 bis 3 Buchstaben für Stadt/Region + String stadtRegion = randomString(random, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", random.nextInt(2) + 2); + + // 1 bis 2 Buchstaben für Fahrzeugklasse + String fahrzeugKlasse = randomString(random, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", random.nextInt(2) + 1); + + // 1 bis 4 Ziffern für die Nummer + String nummer = randomString(random, "0123456789", random.nextInt(4) + 1); + + // Optional ein "E" für Elektrofahrzeuge + String elektro = random.nextBoolean() ? "E" : ""; + + // Zusammenfügen des Kennzeichens + return stadtRegion + "-" + fahrzeugKlasse + " " + nummer + elektro; + } + + // Hilfsmethode zur Erzeugung einer zufälligen Zeichenkette + private static String randomString(Random random, String zeichen, int laenge) { + StringBuilder sb = new StringBuilder(laenge); + for (int i = 0; i < laenge; i++) { + sb.append(zeichen.charAt(random.nextInt(zeichen.length()))); + } + return sb.toString(); + } } + + + + diff --git a/QualifierTeil2/Parkhaus.java b/QualifierTeil2/Parkhaus.java index e1e8eb0..0270283 100644 --- a/QualifierTeil2/Parkhaus.java +++ b/QualifierTeil2/Parkhaus.java @@ -1,4 +1,68 @@ package QualifierTeil2; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; public class Parkhaus { + int anzahlParkplätze; + long parkdauer; + double parkgebühren; + + public Parkhaus() { + this.anzahlParkplätze = randomAnzahlParkplätze(); + this.parkdauer = berechneParkdauer(); + this.parkgebühren = berechneParkgebuehr(); + } + + public static int randomAnzahlParkplätze(){ + return (int) (Math.random() * 200) + 1; + } + + + public static long berechneParkdauer(){ + var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); + + Date d1 = null; + try { + d1 = sdf.parse("01.10.2024, 9:45"); + } catch (ParseException e) { + throw new RuntimeException(e); + } + Date d2 = null; + try { + d2 = sdf.parse("01.10.2024, 11:45"); + } catch (ParseException e) { + throw new RuntimeException(e); + } + + long minDiff = (d2.getTime() - d1.getTime()) / 60000; + + return minDiff; + } + + public int berechneParkgebuehr(){ + long pd = this.parkdauer; + int gebuehr = 0; + + if (pd == 1440){ + gebuehr = 1500; + pd = 0; + } + + //Wenn zu zahlenden Parkdauer vorhanden ist, sind die ersten 15 min kostenlos + if (pd > 0){ + pd = pd - 15; + } + + //Wenn noch zu zahlenden Parkdauer vorhanden ist, wird der Rest mit 1€ pro 1h angerechnet. + if (pd > 0){ + while (pd > 0) { + gebuehr += 100; + pd -= 60; + } + } + return gebuehr; + } } + + diff --git a/QualifierTeil2/UI.java b/QualifierTeil2/UI.java new file mode 100644 index 0000000..f9251d7 --- /dev/null +++ b/QualifierTeil2/UI.java @@ -0,0 +1,25 @@ +package QualifierTeil2; + +import java.text.ParseException; + +public class UI { + static Parkhaus parkhaus1 = new Parkhaus(); + static PKW pkw1 = new PKW(); + + + + public static void einfahrtPKW() { + + System.out.println("Willkommen im Parkhaus BYE am Hauptbahnhof!"); + System.out.println("Kennzeichen " + pkw1.kennzeichen + " wurde erfasst."); + System.out.println("Einfahrt: " + pkw1.einfahrt); + System.out.println("Schranke öffnet sich."); + System.out.println("Verfügbare Parkplätze: " + parkhaus1.anzahlParkplätze); + } + + public static void ausfahrtPKW(){ + System.out.println("Parkdauer in Minuten: " + parkhaus1.parkdauer); + System.out.println("Parkgebühren in Cent: " + parkhaus1.parkgebühren); + + } +}