Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. package bahnhof_2_0;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class TrainManagementMenu {
  6.  
  7. public static void main(String[] args) {
  8. Scanner systemEingabe = new Scanner(System.in);
  9. while (true) {
  10.  
  11. System.out.println("Wilkommen im Menue bitte benutzen sie eine der folgenden Optionen");
  12. System.out.println("Waehlen sie 1 um einen neun Zug anzulegen");
  13. System.out.println("Waehlen sie 2 um einen neuen Bahnhof anzulegen");
  14. int benutzerEingabe = 0;
  15. try {
  16. benutzerEingabe = systemEingabe.nextInt();
  17. } catch (Exception e) {
  18. systemEingabe.next();
  19.  
  20. }
  21. if (benutzerEingabe == 1) {
  22. buildNewTrain();
  23. }else if (benutzerEingabe == 2) {
  24. buildNewBahnhof();
  25. }else {
  26. System.out.println("Eingabe ungueltig bitte versuchen sie es erneut.");
  27. }
  28. }
  29. /*
  30. * public Train(int id, char type, int numberOfWagons, double wagonLength) {
  31. * this.id = id; this.type = type; this.numberOfWagons = numberOfWagons;
  32. * this.wagonLength = wagonLength; }
  33. */
  34. }
  35.  
  36. private static void buildNewBahnhof() {
  37. int anzahlGleise = (int) getValue(4);// recyceln von getValue d.h. 0,1,2,3,4...
  38. TrainStation trainStation = new TrainStation(anzahlGleise);
  39. for (int i = 0; i < anzahlGleise; i++) {
  40. double laengeDesGleises = (double) getValue(5);// Cast probiert beliebigen Typ in den genannten Typ
  41. // umzuwandeln.
  42. trainStation.tracks[i] = new Track(i, laengeDesGleises); // Erstellen eines Gleises mit ID i und der aus der
  43. // Konsole ausgelesenenen Laenge und speichern
  44. // es in der Gleis Liste der Train Station
  45.  
  46. }
  47. System.out.println("Der von ihnen erstellte Bahnhof hat " + anzahlGleise + " Gleise");
  48. for (int i = 0; i < anzahlGleise; i++) {
  49. System.out.println("Gleis " + i+" ist "+trainStation.tracks[i].length);
  50. }
  51.  
  52. }
  53.  
  54. private static void buildNewTrain() {
  55.  
  56. /*
  57. * Die Methode buildNewTrain ruft 4- mal (fuer jeden Parameter einmal) die
  58. * getValue Methode auf, welche abhaengig vom uebergebenen Typ (0-3) den passenden
  59. * Parameter von der Konsole einliesst.
  60. */
  61. int trainId = (int) getValue(2);
  62. char type = (char) getValue(1);
  63. double wagonLength = (double) getValue(0);
  64. int numberOfWagons = (int) getValue(3);
  65. /*
  66. * Mit hilfe des Konstruktors und den obigen Parametern wird ein Zug erstellt
  67. * und anschliessend ausgegeben
  68. */
  69. Train trainNewResult = new Train(trainId, type, numberOfWagons, wagonLength);
  70. System.out.println("dieser Zug hat die ID " + trainNewResult.id + ", ist vom Typ " + trainNewResult.type
  71. + " hat " + trainNewResult.numberOfWagons + " Wagons und ein Wagon ist " + trainNewResult.wagonLength
  72. + " Meter lang");
  73. }
  74.  
  75. private static Object getValue(int type) {
  76. Scanner scanner = new Scanner(System.in);
  77. String attribute = "";// leerer String, wird spaeter durch die Cases gefuellt.
  78. switch (type) {
  79. case 0:
  80. attribute = "die Wagonlaenge";
  81. break;
  82. case 1:
  83. attribute = "den Typ";
  84. break;
  85. case 2:
  86. attribute = "die Zug ID";
  87. break;
  88. case 4:
  89. attribute = "die Anzahl an Gleisen";
  90. break;
  91. case 5:
  92. attribute = "die Laenge des Gleises";
  93. break;
  94. default:
  95. attribute = "die Anzahl an Wagons";
  96. break;
  97. }
  98. System.out.println("Bitte geben sie " + attribute + " an");
  99. Object result = null;
  100. boolean undefined = true;
  101. while (undefined) {
  102. try {
  103. switch (type) {
  104. case 0:
  105. result = scanner.nextDouble();
  106. break;
  107. case 1:
  108. result = scanner.next().charAt(0);
  109. break;
  110. case 5:
  111. result = scanner.nextDouble();
  112. break;
  113. default:
  114. result = scanner.nextInt();
  115. break;
  116. }
  117. undefined = false;// Aus der While Schleife raus.
  118. } catch (Exception e) {// Jegliche Art von exceptions wird aufgefangen, while Schleife wird neu
  119. // ausgefuehrt, da undefined weiterhin =true.
  120. scanner.next(); // Fehlerhafte Eingabe beseitigen.
  121. System.out.println("Eingabe ungueltig bitte versuchen sie es erneut.");
  122. }
  123. }
  124. return result;
  125. }
  126.  
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement