From 9523e1a8e115cd1262c63fc7e300e6a8b765cdb6 Mon Sep 17 00:00:00 2001 From: ioana Date: Sat, 5 Oct 2024 10:01:10 +0200 Subject: [PATCH] =?UTF-8?q?Erweiterung=20der=20Klassen=20und=20Funktionali?= =?UTF-8?q?t=C3=A4ten,=20.txt=20Dateien=20zu=20den=20prompts=202=20und=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QualifierTeil2/Main.java | 62 ++++++++++++++++++++++++++---------- QualifierTeil2/PKW.java | 2 -- QualifierTeil2/Parkhaus.java | 27 +++++++++++++--- QualifierTeil2/UI.java | 47 ++++++++++++++++++++------- QualifierTeil2/prompt2.txt | 20 ++++++++++++ QualifierTeil2/prompt3.txt | 29 +++++++++++++++++ 6 files changed, 151 insertions(+), 36 deletions(-) create mode 100644 QualifierTeil2/prompt2.txt create mode 100644 QualifierTeil2/prompt3.txt diff --git a/QualifierTeil2/Main.java b/QualifierTeil2/Main.java index a6da2bd..ea1f81d 100644 --- a/QualifierTeil2/Main.java +++ b/QualifierTeil2/Main.java @@ -5,7 +5,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; -public class Main extends UI { +public class Main{ @@ -13,25 +13,53 @@ public class Main extends UI { UI ui = new UI(); Scanner scanner = new Scanner(System.in); - PKW pkw1 = new PKW(); + PKW pkw1 = new PKW(); - ui.einfahrtPKW(pkw1); + System.out.println("Willkommen im Parkhaus BYE am Hauptbahnhof!\n"); + + while (true) { + + System.out.println("Wählen Sie eine Option:"); + System.out.println("1. PKW einfahren"); + System.out.println("2. Mehrere PKWs einfahren"); + System.out.println("3. Parkgebühren berechnen"); + System.out.println("4. Parkgbühren bezahlen und ausfahren"); + System.out.println("5. Verfügbare Parkplätze anzeigen"); + System.out.println("6. Beenden."); + + int option = scanner.nextInt(); + scanner.nextLine(); // Consume newline + + switch (option) { + case 1: + ui.einfahrtPKW(); + System.out.println("Schranke öffnet sich.\n"); + break; + + case 2: + ui.mehrereEinfahrten(); + break; + + case 3: + //kommt gleich + break; + + case 4: + System.out.println("Geben Sie das Kennzeichen des ausfahrenden PKWs ein: "); + ui.ausfahrtPKW(); + break; + + case 5: + ui.zeigeVerfügbarePlätze(); + break; + case 6: + System.out.println("Programm beendet."); + return; + default: + System.out.println("Ungültige Auswahl."); - System.out.println("Möchten Sie die Parkgebühren bezahlen und ausfahren?"); - switch (scanner.nextLine()) { - case "ja": - ui.ausfahrtPKW(pkw1); - break; - case "Abbruch": - System.out.println("Vorgang abgebrochen."); - break; - default: - System.out.println("Ungültige Eingabe."); } - - scanner.close(); - - + } } } diff --git a/QualifierTeil2/PKW.java b/QualifierTeil2/PKW.java index 2728703..d09c935 100644 --- a/QualifierTeil2/PKW.java +++ b/QualifierTeil2/PKW.java @@ -7,13 +7,11 @@ import java.util.Random; public class PKW { private String kennzeichen; Date einfahrt; - //String ausfahrt; private boolean hatBezahlt; public PKW() { this.kennzeichen = generiereKennzeichen(); this.einfahrt = new Date(); - //this.ausfahrt = gebeAktuelleZeit(); this.hatBezahlt = false; } diff --git a/QualifierTeil2/Parkhaus.java b/QualifierTeil2/Parkhaus.java index 5eaec06..ce864fd 100644 --- a/QualifierTeil2/Parkhaus.java +++ b/QualifierTeil2/Parkhaus.java @@ -20,21 +20,18 @@ public class Parkhaus { return (int) (Math.random() * 200) + 1; } + // Methode zum Einfahren eines PKWs public void einfahren(PKW pkw) { if (parkendePkws.size() < kapazitaet) { parkendePkws.add(pkw); this.kapazitaet--; this.belegt++; + System.out.println("PKW mit Kennzeichen " + pkw.getKennzeichen() + " ist eingefahren."); } else { System.out.println("Parkhaus voll."); - } } - // Methode zum Anzeigen der verfügbaren Plätze - public void zeigeVerfügbarePlätze() { - System.out.println("Verfügbare Plätze: " + (kapazitaet - parkendePkws.size())); - } // Methode zum Prüfen, ob das Parkhaus voll ist public boolean istVoll() { @@ -42,6 +39,26 @@ public class Parkhaus { } + // Methode zum Ausfahren eines PKWs anhand des Kennzeichens + public void ausfahren(String kennzeichen) { + PKW zuEntfernen = null; + for (PKW pkw : parkendePkws) { + if (pkw.getKennzeichen().equals(kennzeichen)) { + zuEntfernen = pkw; + break; + } + } + if (zuEntfernen != null) { + parkendePkws.remove(zuEntfernen); + this.kapazitaet++; + this.belegt--; + System.out.println("PKW mit Kennzeichen " + kennzeichen + " hat die Gebühren bezahlt und darf rausfahren."); + } else { + System.out.println("Kein PKW mit diesem Kennzeichen gefunden."); + } + } + + public long berechneParkdauer(String kennzeichen, Date ausfahrt) { long minDiff = 0; diff --git a/QualifierTeil2/UI.java b/QualifierTeil2/UI.java index 8279752..27d350c 100644 --- a/QualifierTeil2/UI.java +++ b/QualifierTeil2/UI.java @@ -9,15 +9,13 @@ public class UI { - public void einfahrtPKW(PKW pkw) { + public void einfahrtPKW() { - System.out.println("Willkommen im Parkhaus BYE am Hauptbahnhof!\n"); - - System.out.println("Verfügbare Parkplätze: " + parkhaus1.kapazitaet); - parkhaus1.einfahren(pkw); - System.out.println("Kennzeichen " + pkw.getKennzeichen() + " wurde erfasst."); - System.out.println("Einfahrt: " + pkw.getEinfahrtAlsString()); - System.out.println("Schranke öffnet sich.\n"); + PKW pkw = new PKW(); + System.out.println("Aktuell verfügbare Parkplätze: " + parkhaus1.kapazitaet); + parkhaus1.einfahren(pkw); + System.out.println("weitere verfügbare Parkplätze: " + parkhaus1.kapazitaet); + System.out.println("Einfahrt: " + pkw.getEinfahrtAlsString()); //Debugging // System.out.println("Verfügbar nach einfahrt: " + parkhaus1.kapazität); @@ -25,12 +23,37 @@ public class UI { // System.out.println("Liste pkws: " + parkhaus1.getParkendePkws()); } + public void mehrereEinfahrten(){ + while (true) { + if (parkhaus1.istVoll()) { + System.out.println("Das Parkhaus ist voll. Keine weiteren Einfahrten möglich."); + break; + } - public void ausfahrtPKW(PKW pkw){ + System.out.println("Möchten Sie einen weiteren PKW einfahren lassen? (j/n)"); + String weiter = scan.nextLine(); + if (!weiter.equalsIgnoreCase("j")) { + break; + } + + // PKW einfahren + einfahrtPKW(); + } + + } + + // Methode zum Anzeigen der verfügbaren Plätze + public void zeigeVerfügbarePlätze() { + System.out.println("Verfügbare Plätze: " + parkhaus1.kapazitaet); + } + + + public void ausfahrtPKW(){ - System.out.println("Bezahlung der Parkgebühren\n"); - System.out.println("Geben Sie Ihr Kennzeichen ein: "); String kennzeichen = scan.nextLine().toUpperCase(); + parkhaus1.ausfahren(kennzeichen); + + /* Date ausfahrt = new Date(); if (kennzeichen.equals(pkw.getKennzeichen())){ //System.out.println("Ihr Kennzeichen: " + kennzeichen); @@ -42,7 +65,7 @@ public class UI { System.out.println("Das eingegebene Kennzeichen existiert nicht, bitte erneut eingeben: "); } - scan.close(); + scan.close();*/ } diff --git a/QualifierTeil2/prompt2.txt b/QualifierTeil2/prompt2.txt new file mode 100644 index 0000000..f9f9045 --- /dev/null +++ b/QualifierTeil2/prompt2.txt @@ -0,0 +1,20 @@ +ich: schreibe eine Methode zum Ausfahren eines PKWs aus dem Parkhaus von einer Liste, indem man das Kennzeichen des PKWs +eingibt. +KI: hier ist ein Beispiel einer Methode zum Ausfahren eines PKWs anhand des Kennzeichens: +// Methode zum Ausfahren eines PKWs anhand des Kennzeichens + public void ausfahren(String kennzeichen) { + PKW zuEntfernen = null; + for (PKW pkw : pkwListe) { + if (pkw.getKennzeichen().equals(kennzeichen)) { + zuEntfernen = pkw; + break; + } + } + + if (zuEntfernen != null) { + pkwListe.remove(zuEntfernen); + System.out.println("PKW mit Kennzeichen " + kennzeichen + " ist ausgefahren."); + } else { + System.out.println("Kein PKW mit diesem Kennzeichen gefunden."); + } + } \ No newline at end of file diff --git a/QualifierTeil2/prompt3.txt b/QualifierTeil2/prompt3.txt new file mode 100644 index 0000000..67b75a9 --- /dev/null +++ b/QualifierTeil2/prompt3.txt @@ -0,0 +1,29 @@ +ich: wie kann ich mehrere PKW-Objekte einfahren lassen bzw. speichern +KI: Um mehrere PKW-Objekte einfahren zu lassen, kannst du eine Datenstruktur wie eine Liste (ArrayList oder LinkedList) +verwenden, die in der Parkhaus-Klasse die einzelnen PKW-Objekte speichert. +Die Parkhaus-Klasse sollte eine Liste von PKWs verwalten und Methoden zum Einfahren und Ausfahren bereitstellen: + private List pkwListe = new ArrayList<>(); + private final int maxPlätze = 180; + + // Methode zum Einfahren eines PKWs + + // Methode zum Ausfahren eines PKWs anhand des Kennzeichens + +Du kannst in der UI-Klasse eine Schleife implementieren, die es erlaubt, mehrere PKWs nacheinander einzufahren, und +dabei jeweils ein neues PKW-Objekt erzeugen: + public void mehrereEinfahrten() { + while (true) { + if (parkhaus.istVoll()) { + System.out.println("Das Parkhaus ist voll. Keine weiteren Einfahrten möglich."); + break; + } + + System.out.println("Möchten Sie einen weiteren PKW einfahren lassen? (j/n)"); + String weiter = scanner.nextLine(); + if (!weiter.equalsIgnoreCase("j")) { + break; + } + + // PKW einfahren + einfahren(); + } \ No newline at end of file