From b8de76edc51bcd33fa9691639d83b521c271e2a0 Mon Sep 17 00:00:00 2001 From: nikow Date: Sat, 7 Jan 2023 18:38:03 +0100 Subject: [PATCH] =?UTF-8?q?Alle=20gefundenen=20Ausnahmen=20die=20der=20Use?= =?UTF-8?q?r=20ausl=C3=B6sen=20kann=20werden=20gecatcht.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Roboterfabrik/src/Domäne/RobotFactory.java | 6 +- Roboterfabrik/src/facade/Factorysystem.java | 5 + Roboterfabrik/src/ui/Factory.java | 107 +++++++++++++------- 3 files changed, 79 insertions(+), 39 deletions(-) diff --git a/Roboterfabrik/src/Domäne/RobotFactory.java b/Roboterfabrik/src/Domäne/RobotFactory.java index a36ca30..e35f2be 100644 --- a/Roboterfabrik/src/Domäne/RobotFactory.java +++ b/Roboterfabrik/src/Domäne/RobotFactory.java @@ -7,7 +7,7 @@ import tpe.exceptions.roboter.exceptions.RobotException; public class RobotFactory { private String name; private Roboter pris = Nexus6.getInstance(); -private HashMap roboterLager = new HashMap<>(); +private static HashMap roboterLager = new HashMap<>(); public RobotFactory (String name) { this.name = name; @@ -86,4 +86,8 @@ public RobotFactory (String name) { public int getRoboterLagerSize() { return roboterLager.size(); } + + public static boolean istDieserRoboterDa(int id) { + return roboterLager.containsKey(id); + } } diff --git a/Roboterfabrik/src/facade/Factorysystem.java b/Roboterfabrik/src/facade/Factorysystem.java index f9f1268..2dafbac 100644 --- a/Roboterfabrik/src/facade/Factorysystem.java +++ b/Roboterfabrik/src/facade/Factorysystem.java @@ -53,4 +53,9 @@ public class Factorysystem { public String roboterDaten (int id) { return robotFactory.datenDesRoboters(id); } + + public static boolean istDieserRoboterDa(int id) { + boolean istDa = RobotFactory.istDieserRoboterDa(id); + return istDa; + } } diff --git a/Roboterfabrik/src/ui/Factory.java b/Roboterfabrik/src/ui/Factory.java index 1fd6159..275bc32 100644 --- a/Roboterfabrik/src/ui/Factory.java +++ b/Roboterfabrik/src/ui/Factory.java @@ -18,7 +18,7 @@ public class Factory { } private void hauptmenü() throws RobotException { - + int input = 0; mainloop: while (true) { System.out.println(); System.out.println("========"); @@ -28,9 +28,16 @@ public class Factory { System.out.println("9 -> Beenden"); System.out.println(); - System.out.println("> "); - int input = Integer.parseInt(sc.nextLine()); - System.out.println(); + while (true) { + System.out.println("> "); + try { + input = Integer.parseInt(sc.nextLine()); + System.out.println(); + break; + } catch (Exception e) { + System.out.println("Bitte eine passende Zahl eingeben"); + } + } switch (input) { case 1: @@ -47,35 +54,51 @@ public class Factory { } + System.out.println("Programm beendet!"); } private void roboterBauen() { int auswahl; String name; - while(true) { + while (true) { try { System.out.println("Welchen Robotertyp möchten Sie haben?(R2D2(1) oder C3PO (2)"); auswahl = Integer.parseInt(sc.nextLine()); - if (auswahl == 1 || auswahl == 2) break; - } catch(Exception e) { + if (auswahl == 1 || auswahl == 2) + break; + } catch (Exception e) { System.out.println("Bitte 1 oder 2 eingeben"); } } - - while(true) { - System.out.println("Wie wollen Sie ihren Roboter nennen?"); - name = sc.nextLine(); - if (!name.isBlank())break; + + while (true) { + System.out.println("Wie wollen Sie ihren Roboter nennen?"); + name = sc.nextLine(); + if (!name.isBlank()) + break; } - + int seriennummer = factorysystem.roboterAnlegen(name, auswahl); System.out.println(name + " mit der Seriennummer: " + seriennummer + " wurde erstellt."); } private void roboterAuswählen() throws RobotException { - System.out.println("Geben Sie bitte die Seriennummer ein: "); - int id = Integer.parseInt(sc.nextLine()); + int id; + while (true) { + try { + System.out.println("Geben Sie bitte die Seriennummer ein: "); + id = Integer.parseInt(sc.nextLine()); + if (istDieserRoboterDa(id)) { + break; + } else { + System.out.println("Dieser Roboter wurde nicht gefunden"); + return; + } + } catch (Exception e) { + System.out.println("Bitte eine Nummer eingeben"); + } + } loop: while (true) { System.out.println("Wählen Sie eine Aktion aus!"); @@ -86,29 +109,38 @@ public class Factory { System.out.println("5 -> Daten abrufen"); System.out.println("9 -> Zurück ins Hauptmenü"); System.out.print("> "); - int input = Integer.parseInt(sc.nextLine()); - - switch (input) { - case 1: - zustandAbfragen(id); - break; - case 2: - schalterBetätigen(id); - break; - case 3: - sprechen(id); - break; - case 4: - letzteFehlermeldung(id); - break; - case 5: datenAbruf(id); break; - case 9: - break loop; + try { + int input = Integer.parseInt(sc.nextLine()); + switch (input) { + case 1: + zustandAbfragen(id); + break; + case 2: + schalterBetätigen(id); + break; + case 3: + sprechen(id); + break; + case 4: + letzteFehlermeldung(id); + break; + case 5: + datenAbruf(id); + break; + case 9: + break loop; + } + } catch (Exception e) { + System.out.println("Bitte eine passende Zahl eingeben."); } - } } + private boolean istDieserRoboterDa(int id) { + boolean istDa = Factorysystem.istDieserRoboterDa(id); + return istDa; + } + private void zustandAbfragen(int id) { boolean zustand = factorysystem.zustandRoboter(id); if (zustand == true) { @@ -156,9 +188,8 @@ public class Factory { System.out.println("Ausgabe: " + ausgabe); } catch (RobotException e) { System.out.println("Fehler! Bitte den letzten Fehler auslesen!"); - //e.printStackTrace(); + // e.printStackTrace(); } - } @@ -167,10 +198,10 @@ public class Factory { } private void letzteFehlermeldung(int id) { - System.out.println (factorysystem.fehlerAuslesen(id)); + System.out.println(factorysystem.fehlerAuslesen(id)); } - + private void datenAbruf(int id) { System.out.println(factorysystem.roboterDaten(id)); }