Stránka 1 z 1
Průměry známek z listboxu (C#)
Napsal: 02 pro 2014 17:17
od Toxicity
Ahoj,
mám takový problém, že mám v listboxu několik položek ve tvaru:
Př.:
Karel Novák 1
Petr Novotný 3
Karel Novák 3
Jan Krátký 1
Petr Novotný 5
a chtěl bych, aby mi program do labelu vypsal celkový průměr a zvlášť průměr pro všechny žáky. Mohl by mi někdo pomoci? Předem díky.
Re: Průměry známek z listboxu (C#)
Napsal: 02 pro 2014 19:57
od agil
no, tak v čem je problém ?

normálně vem to číslo a vypočítej to .D pokud nevíš jak, tak vezmeš ten string Karel Novák 1 a vezmeš si z něho ten poslední znak prostě a máš to nebo o co jde?

PS: itemy z listboxu si musíš převíst třeba na pole stringů
Re: Průměry známek z listboxu (C#)
Napsal: 02 pro 2014 21:29
od Toxicity
Můžu se zeptat jak dostanu ten poslední znak?

Zkoušel jsem:
string retezec = listBox1.Items[0].ToString();
int znamka = retezec[retezec.Length - 1];
MessageBox.Show("" + znamka);
a vyhazuje mi to divný čísla
--- Doplnění předchozího příspěvku (02 Pro 2014 21:43) ---
už to jde, mi to vyhazovalo na kolikátym místě to je v ASCII tabulce kvůli tomu int
Takhle to mám teď
string retezec = listBox1.Items[0].ToString();
char cislo = retezec[retezec.Length - 1];
int znamka = Int32.Parse(cislo.ToString());
MessageBox.Show("" + znamka);
Re: Průměry známek z listboxu (C#)
Napsal: 03 pro 2014 14:41
od agil
takže už je to vyřešeno ? :)
Re: Průměry známek z listboxu (C#)
Napsal: 09 pro 2014 23:41
od lubo007
neni lepsie si urobit triedu s premennymi meno,priezvisko,cislo..potom postupne povytvaras objekty s konkretnymi udajmi, takze vsetky cisla budu ulozene rovnako a lahko k nim pristupis cez foreach .
Re: Průměry známek z listboxu (C#)
Napsal: 13 pro 2014 09:22
od Rutherther
Doufám, že ti tímto pomohu, není na tom nic těžkého.
Mně to funguje, tedy doufám, že chceš vždy jen tu 1 známku u každého, pokud ne, tak mi ještě napiš, zkus i příklad a já to ještě předělám.
:)
ABBC3_SPOILER_SHOW
Kód: Vybrat vše
int[] znamky = new int[listBox1.Items.Count];
for (int i = 0; i < listBox1.Items.Count; i++) {
String str = listBox1.Items[i].ToString();
String[] split = str.Split(' ');
int l = int.Parse(split[2]);
znamky[i] = l;
}
int priklad = 0;
for (int i = 0; i < znamky.Count(); i++) {
priklad = priklad + znamky[i];
}
//pro desetinné číslo
decimal vysledek = decimal.Parse(priklad.ToString()) / decimal.Parse(znamky.Count().ToString());
//pro zaoukrouhlené
//int výsledek = priklad / znamky.Count();