From 9b8e4d2c3527d9e25280f216da741ff14ffcc115 Mon Sep 17 00:00:00 2001 From: obai Date: Thu, 3 Oct 2024 20:41:53 +0200 Subject: [PATCH] - FLow Text, Hauptprogramm sowie die Einfahren Methode --- Flow.txt | 1 - src/ChatGPT.txt | 0 src/Flow.txt | 0 src/Parkhaus/Fahrzeug.java | 53 +++++++++++ src/Parkhaus/Gebuehrenberechnen.java | 7 ++ src/Parkhaus/Main.java | 11 +++ src/Parkhaus/Parkhaus.java | 90 +++++++++++++++++++ src/Parkhaus/TextUI.java | 64 +++++++++++++ src/Parkhaus/Zahlung.java | 12 +++ .../kennzeichenzufaelliggenerieren.java | 57 ++++++++++++ src/Test/Test.java | 9 -- 11 files changed, 294 insertions(+), 10 deletions(-) delete mode 100644 Flow.txt create mode 100644 src/ChatGPT.txt create mode 100644 src/Flow.txt create mode 100644 src/Parkhaus/Fahrzeug.java create mode 100644 src/Parkhaus/Gebuehrenberechnen.java create mode 100644 src/Parkhaus/Main.java create mode 100644 src/Parkhaus/Parkhaus.java create mode 100644 src/Parkhaus/TextUI.java create mode 100644 src/Parkhaus/Zahlung.java create mode 100644 src/Parkhaus/kennzeichenzufaelliggenerieren.java delete mode 100644 src/Test/Test.java diff --git a/Flow.txt b/Flow.txt deleted file mode 100644 index 17703fd..0000000 --- a/Flow.txt +++ /dev/null @@ -1 +0,0 @@ -TODO File...... \ No newline at end of file diff --git a/src/ChatGPT.txt b/src/ChatGPT.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/Flow.txt b/src/Flow.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/Parkhaus/Fahrzeug.java b/src/Parkhaus/Fahrzeug.java new file mode 100644 index 0000000..3a6ab5c --- /dev/null +++ b/src/Parkhaus/Fahrzeug.java @@ -0,0 +1,53 @@ +package Parkhaus; + +import java.text.SimpleDateFormat; +import java.util.Date; + +public class Fahrzeug { + + + private String kennzeichen; + private Date einfahrt; + private Date ausfahrt; + private boolean bezahlt; + + + Fahrzeug() { + this.kennzeichen = kennzeichenzufaelliggenerieren.kennzeichenzufaelliggenerieren(); + this.einfahrt = new Date(); + + } + + Fahrzeug(String kennzeichen, Date einfahrt) { + + this.kennzeichen = kennzeichen; + this.einfahrt = einfahrt; + } + + public String getKennzeichen() { + return kennzeichen; + } + + public String getEinfahrtFormatted() { + SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); + return sdf.format(einfahrt); + } + + public Date getAusfahrt() { + return ausfahrt; + } + + public void setAusfahrt(Date ausfahrt) { + this.ausfahrt = ausfahrt; + } + + public boolean isBezahlt() { + return bezahlt; + } + + public void setBezahlt(boolean bezahlt) { + this.bezahlt = bezahlt; + } + + +} diff --git a/src/Parkhaus/Gebuehrenberechnen.java b/src/Parkhaus/Gebuehrenberechnen.java new file mode 100644 index 0000000..27ff4f3 --- /dev/null +++ b/src/Parkhaus/Gebuehrenberechnen.java @@ -0,0 +1,7 @@ +package Parkhaus; + +public class Gebuehrenberechnen { + + // Hier werde ich die Parkgebühren behandlen + +} diff --git a/src/Parkhaus/Main.java b/src/Parkhaus/Main.java new file mode 100644 index 0000000..02c8e49 --- /dev/null +++ b/src/Parkhaus/Main.java @@ -0,0 +1,11 @@ +package Parkhaus; + +import java.text.ParseException; + +public class Main { + + public static void main(String[] args) throws ParseException { + new TextUI(); + } + +} diff --git a/src/Parkhaus/Parkhaus.java b/src/Parkhaus/Parkhaus.java new file mode 100644 index 0000000..d922bb4 --- /dev/null +++ b/src/Parkhaus/Parkhaus.java @@ -0,0 +1,90 @@ +package Parkhaus; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; + +/* Parkhaus klasse + * - Extern klasse dient als System + * - mit diseser Kalsse integriert der User (Autofahrer) + * + */ +public class Parkhaus { + + private ArrayList fahrzeuge; + private ArrayList fahrzeugeMitSchuldern; + private static int maxPlaetze; + private SimpleDateFormat sdf; + + + Parkhaus(){ + fahrzeuge = new ArrayList<>(); + fahrzeugeMitSchuldern = new ArrayList<>(); + maxPlaetze = 180; + sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); + } + + private String einfahrenIntern(String kennzeichen, String einfahrtzeit) throws ParseException { + Date einfahrt; + Fahrzeug fahrzeug; + if (kennzeichen.isEmpty() && einfahrtzeit.isEmpty()) + fahrzeug = new Fahrzeug(); + else { + einfahrt = sdf.parse(einfahrtzeit); + fahrzeug = new Fahrzeug(kennzeichen, einfahrt); + } + + fahrzeuge.add(fahrzeug); + maxPlaetze--; + return "Das Fahrzeug mit dem Kennzeichen: " + fahrzeug.getKennzeichen() + "\n" + "wurde um: " + + fahrzeug.getEinfahrtFormatted() + " im Parkhaus eingefahren."; + } + public String einfahrenextern(String kennzeichen, String einfahrtzeit) throws ParseException { + if(!checkParkplatze()) + return "Das Parkhaus ist voll"; + + return einfahrenIntern(kennzeichen,einfahrtzeit); + } + + + public boolean checkParkplatze() { + if (maxPlaetze <= 0) + return false; + + return true; + } + + + private boolean checkSchulden(String kennzeichen) { + for (Fahrzeug sc: fahrzeugeMitSchuldern) + if (sc.getKennzeichen().equals(kennzeichen)) + return true; + + return false; + } + + public boolean checkSchuldenExtern(String kennzeichen) { + return checkSchulden(kennzeichen); + } + + + public ArrayList getFahrzeuge() { + return fahrzeuge; + } + + public ArrayList getFahrzeugeMitSchuldern() { + return fahrzeugeMitSchuldern; + } + + public static int getMaxPlaetze() { + return maxPlaetze; + } + + public SimpleDateFormat getSdf() { + return sdf; + } + + + +} diff --git a/src/Parkhaus/TextUI.java b/src/Parkhaus/TextUI.java new file mode 100644 index 0000000..dea0287 --- /dev/null +++ b/src/Parkhaus/TextUI.java @@ -0,0 +1,64 @@ +package Parkhaus; + +import java.text.ParseException; +import java.util.Scanner; + +public class TextUI { + private Parkhaus system; + private Scanner eingabe; + + + TextUI() throws ParseException{ + system = new Parkhaus(); + startprogramm(); + } + + private void startprogramm() throws ParseException { + eingabe = new Scanner(System.in); + boolean aktiv = true; + + System.out.println("<> "); + while (aktiv) { + System.out.println(); + System.out.println("Bitte Wählen Sie ein Option ein: "); + System.out.println("1.Einfahren"); + System.out.println("2.Ausfahren"); + System.out.println("3. Parkgebühren berechnen und (bezahlen Oder Schulden lassen)"); + System.out.println("4. Beenden"); + + System.out.print("> "); + String auswhal = eingabe.nextLine(); + String kennzeichen; + String einfahrtzeit; + + switch (auswhal) { + case "1": // Einfahren + if (!system.checkParkplatze()) + System.out.println("Es gibt im Parkhaus keine genug Parkplätze"); + else { + System.out.println("geben Sie bitte das Kennzeichen Ihres Autos ein (optional): "); + kennzeichen = eingabe.nextLine(); + if (system.checkSchuldenExtern(kennzeichen)) + System.out.println("Das Auto mit dem Kennzeichen: " + kennzeichen + " ist im Parkhaus mit Schulden eingefahren!" ); + System.out.println("geben Sie nun bitte die Einfahrtszeit ein (Optional):"); + einfahrtzeit = eingabe.nextLine(); + System.out.println(system.einfahrenextern(kennzeichen, einfahrtzeit)); + } + + break; + + case "2": + // TODO + + case "3": + // TODO + case "4": + // TODO + + default: + System.out.println("Das war leider keine gültige Eingabe"); + + } + } + } +} diff --git a/src/Parkhaus/Zahlung.java b/src/Parkhaus/Zahlung.java new file mode 100644 index 0000000..4c1df96 --- /dev/null +++ b/src/Parkhaus/Zahlung.java @@ -0,0 +1,12 @@ +package Parkhaus; + +public class Zahlung { + // Hier werde ich die Zalhungsprozess behandlen + + public boolean checkVisaKarte(String visaNummer) { + // TODO + + return false; + } + +} diff --git a/src/Parkhaus/kennzeichenzufaelliggenerieren.java b/src/Parkhaus/kennzeichenzufaelliggenerieren.java new file mode 100644 index 0000000..ebad2d4 --- /dev/null +++ b/src/Parkhaus/kennzeichenzufaelliggenerieren.java @@ -0,0 +1,57 @@ +package Parkhaus; + +import java.util.ArrayList; +import java.util.Random; + +/*kennzeichenzufaelliggenerieren: + * + * - Diese Klasse hat nur die Aufgabe, zufällige Kennzeichen zu generieren + * - immer wenn diese Klasse ein zufälliges Kennzeichen generiert, + * - speichere ich das,damit es nicht für mehrere Autos dasselbe Kennzeichen generiert. + + + */ +public class kennzeichenzufaelliggenerieren { + + private static ArrayList speichereEindutigeNummern = new ArrayList<>(); + private static String[] ersteZweiZeichen = { "MA", "HD", "KA", "FF", "ROK", "BW", "HH", "B", "D" }; + private static String[] zweiteZweizeichen = { "ME", "SH", "DF", "KC", "FT", "GH", "OM", "KL", "CV" }; + private static String eindutigeZahlen = ""; + private static Random random = new Random(); + + public static String kennzeichenzufaelliggenerieren() { + String zufaelligeKennzeichen = ""; + + zufaelligeKennzeichen = ersteZweiZeichen[random.nextInt(ersteZweiZeichen.length)]; + zufaelligeKennzeichen += "-" + zweiteZweizeichen[random.nextInt(zweiteZweizeichen.length)] + " "; + + while (true) { + eindutigeZahlen = ""; + for (int i = 1; i <= 4; i++) + eindutigeZahlen += random.nextInt(10); + + if (!checkEindutigeZeichen()) + continue; + + speichereEindutigeNummern.add(eindutigeZahlen); + break; + } + + zufaelligeKennzeichen += eindutigeZahlen; + + if (random.nextBoolean()) + zufaelligeKennzeichen += "E"; + + return zufaelligeKennzeichen; + + } + + public static boolean checkEindutigeZeichen() { + for (String s : speichereEindutigeNummern) + if (s.equals(eindutigeZahlen)) + return false; + + return true; + + } +} diff --git a/src/Test/Test.java b/src/Test/Test.java deleted file mode 100644 index f9402ba..0000000 --- a/src/Test/Test.java +++ /dev/null @@ -1,9 +0,0 @@ -package Test; - -public class Test { - - public static void main(String[] args) { - System.out.println("Hallo"); - } - -}