Overengineering :)

master
andre 2024-06-23 18:46:54 +02:00
parent 1bca114fce
commit e9d033d5ef
1 changed files with 126 additions and 31 deletions

View File

@ -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<String, Paket> 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();
}
}