Érdemjegy átlag számítás

Érdemjegy átlag számítás
2013-01-10T10:20:31+01:00
2013-01-10T22:46:39+01:00
2022-11-27T21:41:56+01:00
SpyDog
Az alábbi programmal van gondom, mégpedig az, hogy a pontok átlagszámítása megvan, viszont a jegyekhez is kellene ugyanez. Esetleg valakinek ötlete hozzá?

Programkód:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Vizsga { class Program { static string fnev = "vizsgaeredmeny.txt"; static void Main(string[] args) { List<Tanulo> tanul = Beolvas(fnev); Listaz(tanul); Console.ReadKey(); } static List<Tanulo> Beolvas(string fnev) { List<Tanulo> tt = new List<Tanulo> { }; fejlec(); using (FileStream fs = new FileStream(fnev, FileMode.Open, FileAccess.Read)) { using (StreamReader sr = new StreamReader(fs)) { while (!sr.EndOfStream) { string sor = sr.ReadLine(); string nev = sor.Substring(0, 26); int pontok = int.Parse(sor.Substring(26)); Tanulo t = new Tanulo(nev, pontok); tt.Add(t); } } } return tt; } static void Listaz(List<Tanulo> t) { double atlag = 0; t.Sort(); for (int i = 0; i < t.Count; i++) { Console.WriteLine(t[i].ToString()); atlag += t[i].Pontszam / t.Count; } Console.WriteLine("átlag pontszám= {0,11:0.00} ", atlag); } static void fejlec() { Console.WriteLine(" Név Pontszám Osztályzat"); } } class Tanulo : IComparable<Tanulo> { public string ertek; private string nev; private int pontszam; public Tanulo(string nev, int pontszam) { this.nev = nev; this.pontszam = pontszam; } public override string ToString() { ertekeles(); return string.Format("{0,-7} {1,-14} {2,-5}", nev, pontszam, ertek); } public void ertekeles() { if (Pontszam < 50) { ertek = "Elégtelen(1)"; } else if (Pontszam < 65) { ertek = "Elégséges(2)"; } else if (Pontszam < 80) { ertek = "Közepes(3)"; } else if (Pontszam < 90) { ertek = "Jó(4)"; } else { ertek = "Jeles(5)"; } } public int CompareTo(Tanulo t) { return this.nev.CompareTo(t.nev); } public double Pontszam { get { return pontszam; } } } }
Mutasd a teljes hozzászólást!
vagy csak veszi a Convert.ToInt32(ertek[ertek.Length-2])-t, mert ugyebár mindenhol a vége (5) így csak az utolsó előtti karaktert kell vennie és számmá konvertálni. És igen, hozz létre egy összeg változót és minden lefutásnál add hozzá az illető jegyét az átlaghoz meg a végén elosztod a tanulók számával és voálá megvagy. :)
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd