Laden...

Statistik in Konsole ausgeben

Erstellt von Mystery vor 2 Jahren Letzter Beitrag vor 2 Jahren 412 Views
M
Mystery Themenstarter:in
2 Beiträge seit 2021
vor 2 Jahren
Statistik in Konsole ausgeben

Hallo zusammen.
Ich bin ein absoluter Anfänger im Programmieren und hänge seit Stunden an einem kleinen Problem. Google hat mich nicht wirklich weitergebracht.
Es soll ein Programm erstellt werden, welches eine einfache Statistik ausgeben kann in der Konsole.
Es müssen 3 Artikel sowie 3 Umsätze eingegeben werden.

Das Programm soll anschliessend eine Balkengrafik erstellen. Der Artikel mit dem höchsten Umsatz soll die Hälfte der Bildschirmbreite mit Console.BufferWidth anzeigen.

Nachfolgend mein aktueller Code. Ich weiss, der String könnte sicherlich auch mit einer For-Schleife befüllt werden - aber eben völliger Anfänger 😁

Ich bedanke mich bereits für jegliche Hilfe 🙂


using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Aufgabe_1_2
{
    class Program
    {
        static void Main(string[] args)
        {
            macheStatistik();
        }

        public static void macheStatistik()
        {
            Console.WriteLine("Willkommen beim Statistik-Programm!");
            Console.WriteLine("");

            string[,] statistik = new string[3, 2];

            //X: Anzahl der Zeilen (3 Artikel)
            //Y: Anzahl der Spalten (Artikelname, Umsatz)

            Console.WriteLine("Bitte geben Sie den Namen des 1. Artikels ein:");
            statistik[0, 0] = Console.ReadLine();

            Console.WriteLine("Bitte geben Sie den Umsatz des 1. Artikels ein:");
            statistik[0, 1] = Console.ReadLine();

            Console.WriteLine("Bitte geben Sie den Namen des 2. Artikels ein:");
            statistik[1, 0] = Console.ReadLine();

            Console.WriteLine("Bitte geben Sie den Umsatz des 2. Artikels ein:");
            statistik[1, 1] = Console.ReadLine();

            Console.WriteLine("Bitte geben Sie den Namen des 3. Artikels ein:");
            statistik[2, 0] = Console.ReadLine();

            Console.WriteLine("Bitte geben Sie den Umsatz des 3. Artikels ein:");
            statistik[2, 1] = Console.ReadLine();

            Console.WriteLine(statistik[0, 0]);
            Console.WriteLine("");
            Console.BackgroundColor = ConsoleColor.DarkMagenta;
            int Width = Console.BufferWidth;
            int umsatzWidth = statistik[0, 1].Length;
            Console.CursorLeft = (Width - umsatzWidth) / 2;
            Console.Write(" ");
            Console.WriteLine(statistik[0, 1]);


            Console.ReadKey();

        }

    }
}

16.807 Beiträge seit 2008
vor 2 Jahren

Was ist denn Deine Frage? Wo steckst Du fest? Wo kommst Du nicht weiter?

Wir erwarten hier schon (wie überall), dass man sich zumindest ein paar Stunden mit den Grundlagen beschäftigt und jetzt nicht erwartet, dass wir kostenlosen Quellcode-Generator und/oder Hausaufgabenlöser spielen.
[Hinweis] Wie poste ich richtig?

M
368 Beiträge seit 2006
vor 2 Jahren

höchsten Umsatz

Das Maximum eines Arrays kann man Linq i.V. mit Max (<- keine Anfängervorgehensweise, der zugehörige Algorithmus soll wohl selbst implementiert werden) ermitteln: https://www.dotnetperls.com/max

Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉

T
2.219 Beiträge seit 2008
vor 2 Jahren

@M.L.
Würde aktuell nicht funktionieren, da es ein String Array ist 🙁
Ich würde die Daten des Unternehmen (Name und Umsatz) in einer Klasse kapseln.
Dann Wäre das Array auch einfacher aufgebaut und man braucht keine zwei Dimensionen dafür.

Hier müsstest du den Umsatz für die richtige Ermittlung erst noch von String zu int/float umwandeln.
Sonst wird es schwierig das Maximum zu ermitteln.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

C
2.121 Beiträge seit 2010
vor 2 Jahren

Den running Gag, dass man jemandem der noch so gut wie nichts kann mit LINQ kommt, haben wir jetzt ja auch mal wieder hinter uns. Jetzt etwas tatsächliche Hilfe.

Tip mit der Klasse ist klasse 🙂 Setz das um, dann ist der Code gleich viel sprechender.

Dann mach dir eine for-Schleife die über alle Umsätze läuft und sich den höchsten davon merkt. Der hat die halbe Bildschirmbreite.
Für die anderen Umsätze kannst du dann mit dem Dreisatz ausrechnen wie breit die jeweils sein sollen.

M
Mystery Themenstarter:in
2 Beiträge seit 2021
vor 2 Jahren

Vielen Dank für die Hilfe, ihr habt mir sehr weitergeholfen 🙂

LG Mystery