C# :: Aufgabe #218 :: Lösung #1
5 Lösungen

#218
Messwerte mit Array und Methoden
Anfänger - C#
von syneex
- 29.06.2018 um 16:20 Uhr
Hallo Zusammen,
mal angenommen, man arbeitet in einer Fabrik, die Druckflaschen herstellt. Es werden pro Tag beliebig viele Flaschen fertiggestellt (n), da die Mitarbeiter nicht jeden Tag identisch schnell arbeiten. Am Ende des Tages muss der Druck in den Flaschen jedoch geprüft werden.
Aufgabe:
Die Aufgabe besteht hier in der Erstellung einer Konsolenanwendung mit folgendem Menü:
Menüpunkt 1 ruft eine Methode auf, die erst eine Eingabe der produzierten Flaschen erwartet. Danach wird für jede Flasche der zuvor gemessene Wert in ein Array (mit Gleitkommazahlen) eingegeben. Wenn man den letzten Wert eingegeben hat, wird wieder das Menü gezeigt.
Menüpunkt 2 ruft eine Methode auf, die für jede Flasche den Wert ausgibt. Nach der nächsten Eingabe wird wieder das Menü gezeigt.
Menüpunkt 3 errechnet den Mittelwert und gibt diesen aus. Anschließend wird wieder das Menü angezeigt.
Bei Wahl des Menüpunkts 4, schließt sich die Konsole.
Der Name der Konsole soll "Messwertecheck" sein.
Die Werte können frei erfunden werden. Es geht lediglich um die Funktionalität. :)
Grüße und viel Spaß beim Lösen ;)
mal angenommen, man arbeitet in einer Fabrik, die Druckflaschen herstellt. Es werden pro Tag beliebig viele Flaschen fertiggestellt (n), da die Mitarbeiter nicht jeden Tag identisch schnell arbeiten. Am Ende des Tages muss der Druck in den Flaschen jedoch geprüft werden.
Aufgabe:
Die Aufgabe besteht hier in der Erstellung einer Konsolenanwendung mit folgendem Menü:
-----------Messwerte-----------
1 Eingabe der Messwerte
2 Ausgabe der Messwerte
3 Berechnung des Mittelwertes
4 Ende
Menüpunkt 1 ruft eine Methode auf, die erst eine Eingabe der produzierten Flaschen erwartet. Danach wird für jede Flasche der zuvor gemessene Wert in ein Array (mit Gleitkommazahlen) eingegeben. Wenn man den letzten Wert eingegeben hat, wird wieder das Menü gezeigt.
Menüpunkt 2 ruft eine Methode auf, die für jede Flasche den Wert ausgibt. Nach der nächsten Eingabe wird wieder das Menü gezeigt.
Menüpunkt 3 errechnet den Mittelwert und gibt diesen aus. Anschließend wird wieder das Menü angezeigt.
Bei Wahl des Menüpunkts 4, schließt sich die Konsole.
Der Name der Konsole soll "Messwertecheck" sein.
Die Werte können frei erfunden werden. Es geht lediglich um die Funktionalität. :)
Grüße und viel Spaß beim Lösen ;)
#1

von Z3RP (1020 Punkte)
- 09.07.2018 um 13:14 Uhr

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Messwertcheck { class Program { static List<int> Bottles; static void Main(string[] args) { MainMenu(""); } private static void MainMenu(string s) { string input = s; DrawMainMenu(); while (input != "4") { switch (input) { case "1": GetBottlesValues(); break; case "2": DrawBottleValues(); break; case "3": GetBottlesAverage(); break; case "4": break; default: if(input!="") DrawErrorMessage("Gib eine gültige Zahl an!"); break; } input = Console.ReadKey().KeyChar.ToString(); } } private static void GetBottlesAverage() { if (Bottles != null) { Console.Clear(); Console.WriteLine("-----------Berechnung des Mittelwertes-----------"); Console.WriteLine(""); float average = 0; for (int i = 0; i < Bottles.Count; i++) { average += Bottles[i] / Bottles.Count; } Console.WriteLine("Der Mittelwert der Flaschen liegt bei: "+average); Console.ReadKey(); MainMenu(""); } else { DrawErrorMessage("Mach erst die Eingaben!"); } } private static void GetBottlesValues() { Bottles = new List<int>(); Console.Clear(); Console.WriteLine("-----------Eingabe der Messwerte-----------"); Console.Write("Anzahl der Flaschen: "); int count = GetNumberOfConsol(); Console.WriteLine(""); for (int i = 0; i < count; i++) { Console.Write("Flasche " + (i + 1) + ": "); int pressure = GetNumberOfConsol(); Console.WriteLine(); Bottles.Add(pressure); } MainMenu(""); } private static void DrawErrorMessage(string message) { Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(message); Console.ResetColor(); MainMenu(Console.ReadKey().KeyChar.ToString()); } private static void DrawBottleValues() { if (Bottles != null) { Console.Clear(); Console.WriteLine("-----------Ausgabe der Messwerte-----------"); for (int i = 0; i < Bottles.Count; i++) { Console.Write("Flasche " + (i + 1) + ": " + Bottles[i]); Console.WriteLine(); } Console.ReadKey(); MainMenu(""); } else { DrawErrorMessage("Mach erst die Eingaben!"); } } private static void DrawMainMenu() { Console.Clear(); Console.WriteLine("-----------Messwerte-----------"); Console.WriteLine("1 Eingabe der Messwerte"); Console.WriteLine("2 Ausgabe der Messwerte"); Console.WriteLine("3 Berechnung des Mittelwertes"); Console.WriteLine("4 Ende"); } private static int GetNumberOfConsol() { string _val = ""; ConsoleKeyInfo key; do { key = Console.ReadKey(true); if (key.Key != ConsoleKey.Backspace) { double val = 0; bool _x = double.TryParse(key.KeyChar.ToString(), out val); if (_x) { _val += key.KeyChar; Console.Write(key.KeyChar); } } else { if (key.Key == ConsoleKey.Backspace && _val.Length > 0) { _val = _val.Substring(0, (_val.Length - 1)); Console.Write("\b \b"); } } } // Stops Receving Keys Once Enter is Pressed while (key.Key != ConsoleKey.Enter || _val == ""); return Convert.ToInt32(_val); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1