From 94f95495b53e807795a7c4cf65fba697918e0203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ruwen=20B=C3=BCrger?= <3014515@stud.hs-mannheim.de> Date: Mon, 7 Oct 2024 09:51:09 +0200 Subject: [PATCH] =?UTF-8?q?Parkhaus=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Parkhaus | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 Parkhaus diff --git a/Parkhaus b/Parkhaus new file mode 100644 index 0000000..8fdd903 --- /dev/null +++ b/Parkhaus @@ -0,0 +1,124 @@ +package pr2parkhaus; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Scanner; + +public class Parkhaus { + + private int anzahlParkplaetze; //Gesamtanzahl aller Parkplätze + private Parkplatz[] plaetze; //Array von Parkplätzen + + Scanner in = new Scanner(System.in); + + //Konstruktor + public Parkhaus(int anzahlParkplaetze) { + + this.anzahlParkplaetze = anzahlParkplaetze; + this.plaetze = new Parkplatz[anzahlParkplaetze]; + + for (int i = 0; i < anzahlParkplaetze; i++) { + plaetze[i] = new Parkplatz(i+1); + } + } + + public String nummernschildErkennen() { + + String nummernschild = in.nextLine() +; + return nummernschild; + + } + + public Date zeitErkennen() { + + + SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); + + String eingabe = in.nextLine(); + Date zeit = null; + try { + zeit = sdf.parse(eingabe); + } catch (ParseException e) { + + e.printStackTrace(); + } + + return zeit; + + } + + public int autoParken(String nummernschild, Date einfahrtszeit) { + + Auto auto = new Auto(nummernschild, einfahrtszeit); + + for (Parkplatz platz : plaetze) { + + if (!platz.isSlotFree()) { + + platz.allocateSlot(auto); //Fahrzeug auf dem Platz speichern + + return platz.getPlatzNummer(); //Nummer des Platzes zurück geben + + } + } + + return -1; //kein freier Parkplatz vorhanden + } + + public double parkhausVerlassen(String nummernschild, Date ausfahrtszeit) { + + double gebuehrInCent = 0.0; + long secDiff = 0; + + for (int i=0; i