From e9d033d5efa5c5a52b8bca0644d287ac15017836 Mon Sep 17 00:00:00 2001 From: andre Date: Sun, 23 Jun 2024 18:46:54 +0200 Subject: [PATCH] Overengineering :) --- PR1_Pflichtuebung6/src/ueb6/TestPacket.java | 157 ++++++++++++++++---- 1 file changed, 126 insertions(+), 31 deletions(-) diff --git a/PR1_Pflichtuebung6/src/ueb6/TestPacket.java b/PR1_Pflichtuebung6/src/ueb6/TestPacket.java index 1eee5cc..4a37eec 100644 --- a/PR1_Pflichtuebung6/src/ueb6/TestPacket.java +++ b/PR1_Pflichtuebung6/src/ueb6/TestPacket.java @@ -1,42 +1,137 @@ package ueb6; +import java.util.HashMap; +import java.util.Map; +import java.util.Scanner; + + public class TestPacket { public static void main(String[] args) { - Paket Fry = new Paket("Philip J. Fry", "Frystreet 1\nNew New York\nUSA"); - Paket Leela = new Paket("Turanga Leela", "Lilaweg 69\nNew New York\nUSA"); - Paket Bender = new Paket("Bender Rodriguez", "Biegeallee 420\nTijuana\nMexico"); + Scanner sc = new Scanner(System.in); + boolean gestoppt = false; + //Packstation instanziieren + Packstation ps = new Packstation(); - Packstation Test = new Packstation(2, 2); - - - System.out.println("Empfänger des 1. Pakets ist: " + Fry.getEmpfaenger()); - System.out.println("Adresse des 1. Pakets ist: " + Fry.getAnschrift()); - System.out.println("Empfänger des 2. Pakets ist: " + Leela.getEmpfaenger()); - System.out.println("Adresse des 2. Pakets ist: " + Leela.getAnschrift()); - System.out.println("Empfänger des 3. Pakets ist: " + Bender.getEmpfaenger()); - System.out.println("Adresse des 3. Pakets ist: " + Bender.getAnschrift()); - System.out.println(); - System.out.println(Fry.toString()); - System.out.println(); - System.out.println(Leela.toString()); - System.out.println(); - System.out.println(Bender.toString()); - System.out.println(); + //HashMap um Pakete später benennen zu können + Map pakete = new HashMap<>(); try { - Test.legePaketAb(Fry); - } catch (IllegalStateException e) { - System.out.println("Es existiert keine freier Platz mehr."); - } - int freiePlaetze = Test.zaehleFreieBoxen(); - System.out.println("Es gibt " + freiePlaetze + " freie Plätze."); - System.out.println(); - try { - String info = Test.informationZumBoxenplatz(1, 1); - System.out.println("Empfängerinformationen für Platz: " + info); - } catch (IllegalArgumentException e) { - System.out.println("Die angegebene Box existiert nicht."); + //Auswahl der Packstation-Konstruktoren + System.out.println("* Packstation wählen *"); + System.out.println("Standardgröße[1] | Benutzerdefinierte Größe[2]"); + + //Nutzereingabe + System.out.print("Auswahl: "); + int auswahl = sc.nextInt(); + + //Auswahl des Standardkonstruktors + if (auswahl == 1) { + System.out.println("\n* Standardgröße gewählt *"); + System.out.println("Breite: 5, Höhe: 4"); + + //Auswahl des benutzerdefinierten Konstruktors + } else if (auswahl == 2) { + + //Eingabe der Werte für den Konstruktor + System.out.println("\n* Bitte Werte eingeben *"); + System.out.print("Breite: "); + int breite = sc.nextInt(); + System.out.print("Hoehe: "); + int hoehe = sc.nextInt(); + + //Instanziieren der Klasse + ps = new Packstation(breite, hoehe); + System.out.println("\n* Benutzerdefinierte Größe gewählt *"); + System.out.printf("Breite: %d, Höhe: %d\n", breite, hoehe); + + } else { + sc.close(); + //Fehlermeldung, wenn nicht Option 1 oder 2 gewählt wird + throw new IllegalArgumentException("Fehlerhafte Eingabe."); + + } + + while(!gestoppt) { + //Auswahl der auszuführenden Methode + System.out.println("\n* Operation wählen *"); + System.out.println("Paket ablegen[1] | Freie Boxen zählen[2] | Information zum Boxenplatz[3] | Programm beenden[4]"); + + //Nutzereingabe + System.out.print("Auswahl: "); + auswahl = sc.nextInt(); + sc.nextLine(); + + switch(auswahl) { + + case 1: + System.out.println("\n* Paket ablegen gewählt *"); + + //Nutzereingabe für Konstruktor: Empfaenger + System.out.print("Name: "); + String name = sc.nextLine(); + + //Nutzereingabe für Konstruktor: Adresse + System.out.print("Adresse: "); + String adresse = sc.nextLine(); + + //Nutzereingabe zur Benennung des Objekts + System.out.print("Paketbezeichnung: "); + String paketname = sc.nextLine(); + pakete.put(paketname, new Paket(name, adresse)); + + try { + //Ablegen des Pakets + ps.legePaketAb(pakete.get(paketname)); + + } + //Fehlermeldung falls Box voll + catch (IllegalStateException e) { + System.out.println(e.getMessage()); + } + break; + + case 2: + System.out.println("* Freie Boxen zählen gewählt *"); + + //Freie Boxen zählen + int freieBoxen = ps.zaehleFreieBoxen(); + if (freieBoxen == 1) + System.out.println("Es ist " + ps.zaehleFreieBoxen() + " Box verfügbar."); + else + System.out.println("Es sind " + ps.zaehleFreieBoxen() + " Boxen verfügbar."); + break; + + case 3: + System.out.println("\n* Information zum Boxenplatz *"); + + //Formatierte Ausgabe der Packstation-Boxen + ps.printStation(); + + //Nutzereingabe für Spalte + System.out.print("\nSpalte wählen: "); + int spalte = sc.nextInt(); + + //Nutzereingabe für Reihe + System.out.print("Reihe spalten: "); + int reihe = sc.nextInt(); + + //Ausgabe der Information + System.out.println(ps.informationZumBoxenplatz(spalte, reihe)); + break; + + case 4: + //Schließen des Programmes + System.out.println(" * Programm wird beendet * "); + gestoppt = true; + break; + } + + } + } catch(IllegalArgumentException e) { + System.out.println(e.getMessage()); } + + sc.close(); } }