Advertisement
Mauricew

Toaster

May 31st, 2021
1,272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 3.63 KB | None | 0 0
  1. using System;
  2.  
  3. namespace LF5Toaster
  4. {
  5.     public class Program
  6.     {
  7.         public static void Main()
  8.         {
  9.             // Neuen Toaster erstellen
  10.             Console.WriteLine("Bitte neuen Toaster erstellen.");
  11.  
  12.             int toasterType;
  13.             do
  14.             {
  15.                 toasterType =
  16.                     ReadIntConsole("Möchten Sie einen normalen Toaster benutzen (1) oder einen Supertoaster (2): ");
  17.             } while (toasterType != 1 && toasterType != 2);
  18.  
  19.             var schaechte = ReadIntConsole("Anzahl der Schächte: ");
  20.  
  21.             Console.Write("Farbe: ");
  22.             var farbe = Console.ReadLine();
  23.  
  24.             var toaster = toasterType == 1 ? new Toaster(schaechte, farbe) : new SuperToaster(schaechte, farbe);
  25.  
  26.             // Toaster betreiben
  27.             char? action;
  28.             do
  29.             {
  30.                 Console.WriteLine(string.Format("{0} (Schächte: {1}, Belegung: {2}, Dauer: {3}s, Farbe: \"{4}\")",
  31.                     toaster.GetType().Name, toaster.Schaechte, toaster.AnzahlToasts, toaster.Zeit, toaster.Farbe));
  32.                
  33.                 // Nächste Toaster-Aktion ermitteln
  34.                 action = ReadActionConsole("Was soll jetzt geschehen? (e = Toastscheibe einlegen, t = " +
  35.                                            "Toasten, r = Toastscheiben, z = Zeit einstellen, x = Beenden): ");
  36.  
  37.                 try
  38.                 {
  39.                     switch (action)
  40.                     {
  41.                         case 'e': // Toastscheibe einlegen
  42.                             var scheiben = ReadIntConsole("Wie viele Toastscheiben sollen eingelegt werden?: ");
  43.                             toaster.ToastReintun(scheiben);
  44.                             break;
  45.                         case 't': // Toastvorgang starten
  46.                             toaster.Toasten();
  47.                             Console.WriteLine("Der Toastvorgang ist abgeschlossen.");
  48.                             break;
  49.                         case 'r': // Toastscheiben rausnehmen
  50.                             var toasts = toaster.ToastAuswerfen();
  51.                             foreach (var toast in toasts)
  52.                                 Console.WriteLine(string.Format("Toast entnommen, Zustand: {0} ({1})",
  53.                                     toast.Zustand, (int)toast.Zustand));
  54.                            
  55.                             break;
  56.                         case 'z': // Dauer von Toastvorgang einstellen
  57.                             var zeit = ReadIntConsole("Toastdauer in Sekunden: ");
  58.                             toaster.ToastZeitEinstellen(zeit);
  59.                             break;
  60.                         case 'x': // Ende
  61.                             Environment.Exit(0);
  62.                             break;
  63.                     }
  64.                 }
  65.                 catch (Exception ex) // Fehler beim Toasten aufgetreten
  66.                 {
  67.                     Console.WriteLine(ex.Message);
  68.                 }
  69.             } while (true);
  70.         }
  71.  
  72.         private static char? ReadActionConsole(string prompt)
  73.         {
  74.             Console.Write(prompt);
  75.             var input = Console.ReadLine();
  76.             if(input != null) input = input.ToLower();
  77.             return string.IsNullOrEmpty(input) ? (char?)null : input[0];
  78.         }
  79.  
  80.         private static int ReadIntConsole(string prompt)
  81.         {
  82.             var input = "";
  83.             int inputInt;
  84.             do
  85.             {
  86.                 Console.Write(prompt);
  87.                 input = Console.ReadLine();
  88.             } while (!int.TryParse(input, out inputInt));
  89.  
  90.             return inputInt;
  91.         }
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement