Entwickler-Ecke

Sonstiges (.NET) - Wettkampf


interessierter - So 22.04.12 20:47
Titel: Wettkampf
Hallo Zusammen

Ich habe mir eine Aufgabe gestellt und habe nun eine Frage dazu.

Meine Aufgabe:

Disziplin:
10km Lauf

Punkteverteilung:
Zwischen 10 - 20 Minuten für 10km gibts 10 Punkte
Zwischen 20 und 25 Minuten gibt 5 Punkte
mehr als 25 Minuten gibt 0 Punkte

Mein jetziger Code fragt zuerst wiviel Teilnehmer dabei waren. Anschliessend fragt es immer nach dem Namen des Teilnehmers und der benötigten Zeit für die 10km und gibt die Punktzahl richtig aus, bis zur Anzahl der Teilnehmer.

Am Schluss will ich mittels Console.WriteLine alle Namen der Teilnehmer und deren benötigte Zeit ausgeben. Ich weiss aber nicht wie ich die verschiedenen Namen und Zeiten so abspeichern kann damit ich schlussendlich meine gewünschte Ausgabe machen kann. Ich hoffe jemand kann mir einen Denkanstoss geben.

Hier der Code:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
Console.WriteLine("Wieviele Athleten haben teilgenommen?")
string Anzahl = Console.ReadLine();
int a = int.Parse(Anzahl);
int p = 0;

for (int x =1; x <= a; x++)
{
  Console.WriteLine("Name des " + x + ". Atlethen eingeben");
  string Name = Console.ReadLine();
  Console.WriteLine("Gesamtzeit für 10km eingeben");
  string Gesamtzeit = Console.ReadLine();

  if (g < 20)
  {
    p = p + 10;
  }
  if (g > 20 && g < 25)
  {
    p = p + 5;
  }
  if (g > 25)
  {
    p = p + 0;
  }
  Console.WriteLine(Name + " hat " + p + " Punkte erzielt");
  p = p - p;
}


Greets
interessierter

Moderiert von user profile iconTh69: Codeformatierung überarbeitet.


Th69 - Mo 23.04.12 09:37

Hallo,

erstelle dir eine Klasse für deine Daten (Name, Punkte etc.) und packe diese dann in eine List<T>.

P.S. Und bitte gewöhne dir sofort an, sprechende Variablennamen zu verwenden (wir sind nicht mehr bei "obfuscated C", wo a, p, g, ... "schöne" Variablennamen sind ;-)


PantherX - Mo 23.04.12 09:37

Hallo,

schau dir mal das Thema "Arrays" an. Das sind Variablen die mehrere Werte unter Angabe einer IndexID speichern können.

test[1] = Wert 1
test[2] = Wert 2
test[3] = Wert 3
test[n] = Wert n

Damit könntest du jeden Läufer in ein Array-Feld packen und mittels deiner For-Schleife das Array durchlaufen, anstatt die Anzahl der Läufer.

Besten Gruß


/Edit
Ups da war jemand schneller :)


interessierter - Mo 23.04.12 20:10

Reicht ein eindimensionales Array oder brauche ich ein mehrdimensionales, weil es ja zwei Werte sin, Namen und Laufzeit für 10km)?


Ralf Jansen - Mo 23.04.12 20:53

Zitat:
Reicht ein eindimensionales Array oder brauche ich ein mehrdimensionales, weil es ja zwei Werte sin, Namen und Laufzeit für 10km)?


Weder noch. user profile iconTh69 hat dir den richtigen Ansatz schon genannt.


interessierter - Mo 23.04.12 21:03

Ich arbeite aber zur Zeit nur mit Konsolenprogrammen. Meines wissens nach hat man klassen nur im Visual c#???


interessierter - Mo 23.04.12 22:51

Ich lass das jetzt erstmal sein. Bin noch nicht weit genug mit den Grundlagen.

Danke trotzdem

Gruss
interessierter


Kha - Mo 23.04.12 23:38

Der Vollständigkeit halber: Visual C# ist die IDE, nämlich der C#-Teil von Visual Studio, und hat noch nichts mit GUI zu tun. Und Klassen wirst du schon in deinem allerersten Projekt benutzt haben ;) .