static void ModifiziereGeraet(Geraet[] geraeteliste) { Console.WriteLine("Gerät modifizieren"); Console.WriteLine("------------------"); Console.WriteLine("Bitte geben Sie die ID des zu modifizierenden Geräts an: "); try { string id = Console.ReadLine(); int ind = Convert.ToInt32(id); index = Array.FindIndex(geraeteliste, row => row.Id == ind); ModifizereGeraete(geraeteliste); Type a = geraeteliste[index].GetType(); Type b = typeof(Tablet); if (a.Equals(b)) { Tablet t = geraeteliste[index] as Tablet; ModifiziereTablet(t); } Type c = typeof(Notebook); if (a.Equals(c)) { Notebook n = geraeteliste[index] as Notebook; ModifiziereNotebook(n); } Type d = typeof(Smartphone); if (a.Equals(d)) { Smartphone s = geraeteliste[index] as Smartphone; ModifiziereSmartphone(s); } } catch (FormatException e) { Console.WriteLine("Es muss eine Eingabe gemacht werden! Bitte eine Taste drücken und neu wählen. "); } catch (NullReferenceException e) { Console.WriteLine("Es muss eine Eingabe gemacht werden! Bitte eine Taste drücken und neu wählen. "); } }
static Smartphone ErfasseSmartphone() { Console.WriteLine("Smartphone erfassen"); Console.WriteLine("-------------------"); Smartphone smartphone = new Smartphone(); ErfasseGeraeteDaten(smartphone); Console.Write("Bitte geben Sie an, ob das Smartphone über eine MicroSD-Card Slot verfügt (J / N): "); string sdcardslot = Console.ReadLine(); Console.WriteLine("Eingabe: {0}", sdcardslot); if (sdcardslot != "J" && sdcardslot != "N") { Console.WriteLine("Falsche Eingabe: Nur \"J\" oder \"N\" möglich! Neuer Versuch: "); Console.Write("Bitte geben Sie an, ob das Smartphone über eine MicroSD-Card Slot verfügt (J / N): "); sdcardslot = Console.ReadLine(); if (sdcardslot != "J" && sdcardslot != "N") { Console.WriteLine("Falsche Eingabe: Nur \"J\" oder \"N\" möglich!"); } } if (sdcardslot == "J") { sdcardslot = "true"; Console.WriteLine("Bitte geben Sie an, wie gross die maximale Speichererweitung sein kann: "); smartphone.MaxSpeichererweiterung = Console.ReadLine(); } else { sdcardslot = "false"; } smartphone.MicroSDCardSlot = Boolean.Parse(sdcardslot); return(smartphone); }
static void Main(string[] args) { Geraet[] geraeteListe = new Geraet[40]; string eingabe; // Autoinitalizer geraeteListe[0] = new Smartphone() { Id = 1, Akkulaufzeit = 5, AnzahlProzessoren = 2, Arbeitsspeicher = "2 GB", Bildschirmgroesse = "6,3'", Farbe = Farbe.grün, Kaufpreis = 599.00, Marke = "Samsung", MaxSpeichererweiterung = "128 KB", MicroSDCardSlot = true, Model = "S12", OS = "Windows", Prozessortyp = "Intel", Speicherkapazitaet = "64 GB" }; geraeteListe[1] = new Smartphone() { Id = 2, Akkulaufzeit = 7, AnzahlProzessoren = 1, Arbeitsspeicher = "4 GB", Bildschirmgroesse = "5,3'", Farbe = Farbe.grau, Kaufpreis = 999.00, Marke = "Apple", MaxSpeichererweiterung = "0", MicroSDCardSlot = false, Model = "IPhone 8", OS = "iOS", Prozessortyp = "AMD", Speicherkapazitaet = "128 GB" }; geraeteListe[2] = new Smartphone() { Id = 3, Akkulaufzeit = 4, AnzahlProzessoren = 1, Arbeitsspeicher = "3 GB", Bildschirmgroesse = "12'", Farbe = Farbe.weiss, Kaufpreis = 350.00, Marke = "Huawei", MaxSpeichererweiterung = "0", MicroSDCardSlot = false, Model = "2", OS = "Android", Prozessortyp = "AMD", Speicherkapazitaet = "256 GB" }; geraeteListe[3] = new Tablet() { Id = 4, Farbe = Farbe.grün, Speicherkapazitaet = "128 GB", Prozessortyp = "Intel", Akkulaufzeit = 12, AnzahlProzessoren = 2, Arbeitsspeicher = "2 GB", Bildschirmgroesse = "9,7'", Kaufpreis = 1299, Marke = "HP", MicroSDCardSlot = true, Model = "1500", OS = "Android", _4G = false }; geraeteListe[4] = new Tablet() { Id = 5, Farbe = Farbe.rot, Speicherkapazitaet = "256 GB", Prozessortyp = "AMD", Akkulaufzeit = 15, AnzahlProzessoren = 3, Arbeitsspeicher = "4 GB", Bildschirmgroesse = "19'", Kaufpreis = 1500, Marke = "Lenovo", MicroSDCardSlot = false, Model = "X220", OS = "Windows", _4G = true }; geraeteListe[5] = new Tablet() { Id = 6, Farbe = Farbe.schwarz, Speicherkapazitaet = "1 TB", Prozessortyp = "AMD", Akkulaufzeit = 12, AnzahlProzessoren = 1, Arbeitsspeicher = "512 MB", Bildschirmgroesse = "15'", Kaufpreis = 800, Marke = "Huawei", MicroSDCardSlot = false, Model = "GS", OS = "Windows", _4G = false }; geraeteListe[6] = new Notebook() { Id = 7, OS = "iOS", Model = "MacBook", Akkulaufzeit = 14, AnzahlProzessoren = 4, Arbeitsspeicher = "16 GB", BeleuchteteTastatur = true, Bildschirmgroesse = "15,6'", Farbe = Farbe.weiss, HDMIAnschluss = true, Kaufpreis = 2697.00, Marke = "Apple", Prozessortyp = "CoreIntel", Speicherkapazitaet = "128 GB", SSDGroesse = "512 GB" }; geraeteListe[7] = new Notebook() { Id = 8, OS = "Windows", Model = "FB120", Akkulaufzeit = 12, AnzahlProzessoren = 4, Arbeitsspeicher = "8 GB", BeleuchteteTastatur = false, Bildschirmgroesse = "12,3'", Farbe = Farbe.rot, HDMIAnschluss = true, Kaufpreis = 1599.00, Marke = "ASUS", Prozessortyp = "CoreIntel", Speicherkapazitaet = "1 TB", SSDGroesse = "0" }; geraeteListe[8] = new Notebook() { Id = 9, OS = "Windows", Model = "VivoBook", Akkulaufzeit = 24, AnzahlProzessoren = 2, Arbeitsspeicher = "16 GB", BeleuchteteTastatur = false, Bildschirmgroesse = "16'", Farbe = Farbe.blau, HDMIAnschluss = true, Kaufpreis = 1899.00, Marke = "OMEN", Prozessortyp = "CoreIntel", Speicherkapazitaet = "768 MB", SSDGroesse = "1 TB" }; anzahlGeraete = 9; GeraeteID = 1; GeraeteID = (Array.FindLastIndex(geraeteListe, n => n != null) + 2); // Menu do { Console.ForegroundColor = ConsoleColor.Magenta; Console.Clear(); Console.WriteLine(""); Console.WriteLine("--- Geräteverwaltung [{0}]---", anzahlGeraete); Console.WriteLine(""); Console.WriteLine("1 - Smartphone erfassen"); Console.WriteLine("2 - Tablet erfassen"); Console.WriteLine("3 - Notebook erfassen"); Console.WriteLine("4 - Geräteliste anzeigen"); Console.WriteLine("5 - Gerät modifizieren"); Console.WriteLine("6 - Gerät löschen"); Console.WriteLine("9 - Beenden"); eingabe = Console.ReadLine(); Console.ResetColor(); switch (eingabe) { case "1": Console.WriteLine(""); geraeteListe[anzahlGeraete] = ErfasseSmartphone(); anzahlGeraete++; break; case "2": Console.WriteLine(""); geraeteListe[anzahlGeraete] = ErfasseTablet(); anzahlGeraete++; break; case "3": Console.WriteLine(""); geraeteListe[anzahlGeraete] = ErfasseNotebook(); anzahlGeraete++; break; case "4": GeraeteListeAusgeben(geraeteListe); Console.ReadLine(); break; case "5": Console.WriteLine(""); ModifiziereGeraet(geraeteListe); Console.ReadLine(); break; case "6": Console.WriteLine(""); LoescheGeraet(geraeteListe); Console.ReadLine(); break; case "9": Console.WriteLine("Programm wird beendet"); Environment.Exit(0); break; default: Console.WriteLine("Kein gültiger Befehl!"); Console.WriteLine("Drücke eine Taste"); Console.ReadLine(); break; } } while (true); }