Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Statistik in Konsole ausgeben
Mystery
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Statistik in Konsole ausgeben

beantworten | zitieren | melden

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();

        }

    }
}
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16224

beantworten | zitieren | melden

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?
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
M.L.
myCSharp.de - Member



Dabei seit:
Beiträge: 272

beantworten | zitieren | melden

Zitat
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 ;-)
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1919
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

@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.
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2143

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Mystery
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

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

LG Mystery
private Nachricht | Beiträge des Benutzers