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();
}
}
}
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 - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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 😉
@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.
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.
Vielen Dank für die Hilfe, ihr habt mir sehr weitergeholfen 🙂
LG Mystery