From 428a16efdee4da26855fe0a073fccfc0e09852a7 Mon Sep 17 00:00:00 2001 From: Leon <3010261@stud.hs-mannheim.de> Date: Thu, 3 Oct 2024 11:15:40 +0200 Subject: [PATCH] =?UTF-8?q?Verbesserungen,=20Code=20anpassung=20sowie=20er?= =?UTF-8?q?stes=20Ger=C3=BCst=20zur=20implementierung=20der=20Schulden,=20?= =?UTF-8?q?des=20ausfahrens=20ohne=20zu=20zahlen=20und=20der=20bezahl=20op?= =?UTF-8?q?tion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Qualifier Parkhaus/src/Auto.java | 24 ++++++++- Qualifier Parkhaus/src/Main.java | 81 ++++++++++++++++++++++------ Qualifier Parkhaus/src/Parkhaus.java | 63 ++++++++++++++++++---- 3 files changed, 141 insertions(+), 27 deletions(-) diff --git a/Qualifier Parkhaus/src/Auto.java b/Qualifier Parkhaus/src/Auto.java index 8a3b9e4..73fed43 100644 --- a/Qualifier Parkhaus/src/Auto.java +++ b/Qualifier Parkhaus/src/Auto.java @@ -5,13 +5,16 @@ public class Auto { private String kennzeichen; private Date einfahrtZeit; private Date ausfahrtZeit; + private Date bezahlZeit; private boolean eAuto; + private double schulden; public Auto(String kennzeichen, Date einfahrtZeit) { this.kennzeichen = kennzeichen; this.einfahrtZeit = einfahrtZeit; this.ausfahrtZeit = ausfahrtZeit; - this.eAuto = eAuto; + this.eAuto = iseAuto(); + this.schulden = 0; } public String getKennzeichen() { @@ -22,6 +25,10 @@ public class Auto { return einfahrtZeit; } + public Date getBezahlZeit() { + return bezahlZeit; + } + public Date getAusfahrtZeit() { return ausfahrtZeit; } @@ -30,6 +37,10 @@ public class Auto { return eAuto; } + public double getSchulden() { + return schulden; + } + public void setKennzeichen(String kennzeichen) { this.kennzeichen = kennzeichen; } @@ -42,10 +53,21 @@ public class Auto { this.ausfahrtZeit = ausfahrtZeit; } + public void setBezahlZeit(Date bezahlZeit) { + this.bezahlZeit = bezahlZeit; + } + public void setEAuto(boolean eAuto) { this.eAuto = eAuto; } + public void setSchulden(double schulden) { + this.schulden = schulden; + } + + public void addSchulden(double betrag) { + this.schulden += betrag; + } private boolean iseAuto() { String letztesSymbol = kennzeichen.charAt(kennzeichen.length() - 1) + ""; diff --git a/Qualifier Parkhaus/src/Main.java b/Qualifier Parkhaus/src/Main.java index 794cda6..a0430b1 100644 --- a/Qualifier Parkhaus/src/Main.java +++ b/Qualifier Parkhaus/src/Main.java @@ -9,24 +9,73 @@ public class Main { Scanner sc = new Scanner(System.in); Parkhaus parkhaus = new Parkhaus(1.0); SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm"); - System.out.println("Willkommen im Parkhaus der Hochschule Mannheim"); - System.out.println("Bitte geben Sie ihr Kennzeichen ein:"); - String kennzeichenEinfahrt = sc.nextLine(); - System.out.println("Wann sind Sie in das Parkhaus eingefahren. Bitte im Format TT.MM.JJJJ SS:MM"); - String einfahrtEingabe = sc.nextLine(); - Date einfahrtZeit = sdf.parse(einfahrtEingabe); - Auto auto = new Auto(kennzeichenEinfahrt, einfahrtZeit); - System.out.println(""); - System.out.println(""); - System.out.println(""); - System.out.println(""); - System.out.println(""); - System.out.println(""); - System.out.println("Bitte geben Sie das Kennzeichen des Fahrzeugs ein, welches ausfahren soll :"); - String kennzeichenAusfahrt = sc.nextLine(); + while (true) { - System.out.println(parkhaus.berechneParkKosten(auto)); + System.out.println("Willkommen im Parkhaus der Hochschule Mannheim"); + System.out.println("Wollen Sie "); + System.out.println("1. Ins Parkhaus einfahren"); + System.out.println("2. Aus dem Parkhaus ausfahren"); + System.out.println("3. Bezahlen und ausfahren"); + System.out.println("4. Beenden"); + int auswahl = sc.nextInt(); + + if (auswahl == 4) { + System.out.println("Das Programm wird nun beendet."); + System.out.println("Wir wünschen Ihnen noch einen schönen Tag"); + } + + + switch (auswahl) { + + case 1: + System.out.println("Bitte geben Sie ihr Kennzeichen ein:"); + String kennzeichenEinfahrt = sc.nextLine(); + System.out.println("Wann sind Sie in das Parkhaus eingefahren. Bitte im Format TT.MM.JJJJ SS:MM"); + String einfahrtEingabe = sc.nextLine(); + Date einfahrtZeit = sdf.parse(einfahrtEingabe); + Auto auto = new Auto(kennzeichenEinfahrt, einfahrtZeit); + parkhaus.addAuto(auto); + break; + + case 2: + System.out.println("Bitte geben Sie das Kennzeichen des Fahrzeugs ein, welches ausfahren soll :"); + String kennzeichenAusfahrt = sc.nextLine(); + auto = parkhaus.autoFinden(kennzeichenAusfahrt); + if(auto == null ){ + System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden."); + } + else { + System.out.println("Zu welcher Uhrzeit wurde ausgefahren? :"); + String ausfahrtEingabe = sc.nextLine(); + Date ausfahrtZeit = sdf.parse(ausfahrtEingabe); + parkhaus.berechneParkKosten(auto); + parkhaus.ausfahrt(auto , ausfahrtZeit); + } + break; + + case 3: + System.out.println("Für welches Kennzeichen sollen die Parkgebühren bezahlt werden"); + String kennzeichenBezahlt = sc.nextLine(); + auto = parkhaus.autoFinden(kennzeichenBezahlt); + if(auto == null ){ + System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden."); + } + else { + System.out.println("Was ist die aktuelle Uhrzeit zu der Sie bezahlen"); + String bezahltEingabe = sc.nextLine(); + Date bezahltZeit = sdf.parse(bezahltEingabe); + System.out.println(parkhaus.berechneParkKosten(auto)); + parkhaus.ausfahrt(auto , bezahltZeit); + } + break; + + + default: + System.out.println("Falsche Eingabe bitte nur 1,2 oder 3 eingeben"); + break; + } + } } } diff --git a/Qualifier Parkhaus/src/Parkhaus.java b/Qualifier Parkhaus/src/Parkhaus.java index 40ca425..7c0c3c3 100644 --- a/Qualifier Parkhaus/src/Parkhaus.java +++ b/Qualifier Parkhaus/src/Parkhaus.java @@ -6,26 +6,24 @@ public class Parkhaus { private double maxNachtPreis; private double preis; private double maxTagesPreis; + private int maxPlatz; + private int platz; private List autos; public double getMaxNachtPreis() { return maxNachtPreis; } + public int getPlatz() { + return platz; + } + public double getMaxTagesPreis() { return maxTagesPreis; } - - public Parkhaus(double preis) { - this.preis = 1.0; - this.maxNachtPreis = 5; - this.maxTagesPreis = 15; - this.autos = new ArrayList(); - } - - public void addAuto(Auto auto) { - autos.add(auto); + public int getMaxPlatz() { + return maxPlatz; } public double getPreis() { @@ -36,6 +34,51 @@ public class Parkhaus { this.preis = preis; } + public void setMaxPlatz(int maxPlatz) { + this.maxPlatz = maxPlatz; + } + + public void setPlatz(int platz) { + this.platz = platz; + } + + public Parkhaus(double preis) { + this.preis = 1.0; + this.maxPlatz = 180; + this.platz = maxPlatz; + this.maxNachtPreis = 5; + this.maxTagesPreis = 15; + this.autos = new ArrayList(); + } + + public void addAuto(Auto auto) { + autos.add(auto); + platz -= 1; + } + + public Auto autoFinden(String kennzeichen) { + for (Auto auto : autos) { + if (auto.getKennzeichen().equals(kennzeichen)) { + return auto; + } + } + return null; + } + + public void ausfahrt(String kennzeichen, Date ausfahrtZeit) { + Auto auto = autoFinden(kennzeichen); + if (auto == null) { + System.out.println("Das Auto mit dem eingegebenen Kennzeichen " + kennzeichen + " wurde nicht gefunden!"); + return; + } + auto.setAusfahrtZeit(ausfahrtZeit); + double kosten = berechneParkKosten(auto); + System.out.println("Die Koste für das Fahrzeug mit dem eingegebenen Kennzeichen " + kennzeichen + "betragen:"); + System.out.println(kosten); + autos.remove(auto); + platz += 1; + } + public double berechneParkKosten(Auto auto) { Date einfahrtZeit = auto.getEinfahrtZeit(); Date ausfahrtZeit = auto.getAusfahrtZeit();