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.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();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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();*/
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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