Erweiterung der Klassen und Funktionalitäten, .txt Dateien zu den prompts 2 und 3
parent
ea2de68d51
commit
9523e1a8e1
|
@ -5,7 +5,7 @@ import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class Main extends UI {
|
public class Main{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,23 +15,51 @@ public class Main extends UI {
|
||||||
Scanner scanner = new Scanner(System.in);
|
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");
|
||||||
|
|
||||||
System.out.println("Möchten Sie die Parkgebühren bezahlen und ausfahren?");
|
while (true) {
|
||||||
switch (scanner.nextLine()) {
|
|
||||||
case "ja":
|
System.out.println("Wählen Sie eine Option:");
|
||||||
ui.ausfahrtPKW(pkw1);
|
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;
|
break;
|
||||||
case "Abbruch":
|
|
||||||
System.out.println("Vorgang abgebrochen.");
|
case 2:
|
||||||
|
ui.mehrereEinfahrten();
|
||||||
break;
|
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:
|
default:
|
||||||
System.out.println("Ungültige Eingabe.");
|
System.out.println("Ungültige Auswahl.");
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
scanner.close();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,13 +7,11 @@ import java.util.Random;
|
||||||
public class PKW {
|
public class PKW {
|
||||||
private String kennzeichen;
|
private String kennzeichen;
|
||||||
Date einfahrt;
|
Date einfahrt;
|
||||||
//String ausfahrt;
|
|
||||||
private boolean hatBezahlt;
|
private boolean hatBezahlt;
|
||||||
|
|
||||||
public PKW() {
|
public PKW() {
|
||||||
this.kennzeichen = generiereKennzeichen();
|
this.kennzeichen = generiereKennzeichen();
|
||||||
this.einfahrt = new Date();
|
this.einfahrt = new Date();
|
||||||
//this.ausfahrt = gebeAktuelleZeit();
|
|
||||||
this.hatBezahlt = false;
|
this.hatBezahlt = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,21 +20,18 @@ public class Parkhaus {
|
||||||
return (int) (Math.random() * 200) + 1;
|
return (int) (Math.random() * 200) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Methode zum Einfahren eines PKWs
|
||||||
public void einfahren(PKW pkw) {
|
public void einfahren(PKW pkw) {
|
||||||
if (parkendePkws.size() < kapazitaet) {
|
if (parkendePkws.size() < kapazitaet) {
|
||||||
parkendePkws.add(pkw);
|
parkendePkws.add(pkw);
|
||||||
this.kapazitaet--;
|
this.kapazitaet--;
|
||||||
this.belegt++;
|
this.belegt++;
|
||||||
|
System.out.println("PKW mit Kennzeichen " + pkw.getKennzeichen() + " ist eingefahren.");
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Parkhaus voll.");
|
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
|
// Methode zum Prüfen, ob das Parkhaus voll ist
|
||||||
public boolean istVoll() {
|
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) {
|
public long berechneParkdauer(String kennzeichen, Date ausfahrt) {
|
||||||
long minDiff = 0;
|
long minDiff = 0;
|
||||||
|
|
||||||
|
|
|
@ -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");
|
PKW pkw = new PKW();
|
||||||
|
System.out.println("Aktuell verfügbare Parkplätze: " + parkhaus1.kapazitaet);
|
||||||
System.out.println("Verfügbare Parkplätze: " + parkhaus1.kapazitaet);
|
|
||||||
parkhaus1.einfahren(pkw);
|
parkhaus1.einfahren(pkw);
|
||||||
System.out.println("Kennzeichen " + pkw.getKennzeichen() + " wurde erfasst.");
|
System.out.println("weitere verfügbare Parkplätze: " + parkhaus1.kapazitaet);
|
||||||
System.out.println("Einfahrt: " + pkw.getEinfahrtAlsString());
|
System.out.println("Einfahrt: " + pkw.getEinfahrtAlsString());
|
||||||
System.out.println("Schranke öffnet sich.\n");
|
|
||||||
|
|
||||||
//Debugging
|
//Debugging
|
||||||
// System.out.println("Verfügbar nach einfahrt: " + parkhaus1.kapazität);
|
// System.out.println("Verfügbar nach einfahrt: " + parkhaus1.kapazität);
|
||||||
|
@ -25,12 +23,37 @@ public class UI {
|
||||||
// System.out.println("Liste pkws: " + parkhaus1.getParkendePkws());
|
// 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();
|
String kennzeichen = scan.nextLine().toUpperCase();
|
||||||
|
parkhaus1.ausfahren(kennzeichen);
|
||||||
|
|
||||||
|
/*
|
||||||
Date ausfahrt = new Date();
|
Date ausfahrt = new Date();
|
||||||
if (kennzeichen.equals(pkw.getKennzeichen())){
|
if (kennzeichen.equals(pkw.getKennzeichen())){
|
||||||
//System.out.println("Ihr Kennzeichen: " + kennzeichen);
|
//System.out.println("Ihr Kennzeichen: " + kennzeichen);
|
||||||
|
@ -42,7 +65,7 @@ public class UI {
|
||||||
System.out.println("Das eingegebene Kennzeichen existiert nicht, bitte erneut eingeben: ");
|
System.out.println("Das eingegebene Kennzeichen existiert nicht, bitte erneut eingeben: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
scan.close();
|
scan.close();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -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<PKW> 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();
|
||||||
|
}
|
Loading…
Reference in New Issue