C# :: Aufgabe #218 :: Lösung #2

5 Lösungen Lösungen öffentlich
#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ü:

-----------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 ;)
#2
vote_ok
von Exception (7090 Punkte) - 03.07.2018 um 20:16 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Linq;

namespace Messwerte_mit_Array_und_Methoden_218
{
    class Program
    {
        private static double[] Measurements;

        static void Main(string[] args)
        {
            int selection = -1;

            Console.Title = "#218 Messwertecheck";

            do
            {
                printMenue();
                if (int.TryParse(Console.ReadLine(), out selection))
                {
                    selectAction(selection);
                }
            }
            while (selection != 4);

            Console.ReadKey();
        }

        private static void selectAction(int selection)
        {
            switch (selection)
            {
                case 1:
                    Console.Clear();
                    Console.WriteLine("1 Eingabe der Messwerte");
                    inputValues();
                    break;
                case 2:
                    Console.Clear();
                    Console.WriteLine("2 Ausgabe der Messwerte");
                    printMeasurements();
                    break;
                case 3:
                    Console.Clear();
                    Console.WriteLine("3 Berechnung des Mittelwertes");
                    Console.WriteLine("Mittelwert der {0} Messwerte: {1}", Measurements.Length, calcAverage());
                    Console.ReadKey();
                    break;
                case 4:
                    Console.Clear();
                    Console.WriteLine("Bis bald...");
                    break;
            }
        }

        private static double calcAverage()
        {
            return Measurements.Average();
        }

        private static void printMeasurements()
        {
            if(Measurements == null)
            {
                return;
            }

            for (int index = 0; index < Measurements.Length; index++)
            {
                Console.WriteLine("Messwert der {0}. Flasche: {1}", (index + 1), Measurements[index]);
            }

            Console.WriteLine("...");
            Console.ReadKey();
        }

        private static void inputValues()
        {
            double temp;
            bool acceptedInput  =  false;
            int currentAmount   =  0;
            int totalAmount     =  0;
            Measurements        =  null;
             
            do
            {
                Console.Clear();
                Console.Write("Anzahl der Messwerte: ");

                if(int.TryParse(Console.ReadLine(), out totalAmount))
                {
                    if(totalAmount > 0)
                    {
                        acceptedInput = true;
                    }
                }

            } while (!acceptedInput);


            Measurements = new double[totalAmount];

            do
            {
                Console.Clear();
                Console.Write("Eingabe Messwert ({0} / {1}): ", (currentAmount + 1), totalAmount);
                if(double.TryParse(Console.ReadLine(), out temp))
                {
                    Measurements[currentAmount] = temp;
                    currentAmount++;
                }
            } while (currentAmount < totalAmount);

            Console.WriteLine("...");
        }

        private static void printMenue()
        {
            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");
            Console.Write("\n> ");
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben