using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
namespace feleviEredmenyek
{
class Feleves
{
public string nev;
public string azonosito;
public int hal;
public int halgyak;
public int prog;
public int proggyak;
public int angol;
public int irod;
public int matek;
public int tori;
public Feleves(string sor)
{
List<string> atmeneti = sor.Split('\t').ToList();
nev = atmeneti[0];
azonosito = atmeneti[1];
hal = Convert.ToInt32(atmeneti[2]);
halgyak = Convert.ToInt32(atmeneti[3]);
prog = Convert.ToInt32(atmeneti[4]);
proggyak = Convert.ToInt32(atmeneti[5]);
angol = Convert.ToInt32(atmeneti[6]);
irod = Convert.ToInt32(atmeneti[7]);
matek = Convert.ToInt32(atmeneti[8]);
tori = Convert.ToInt32(atmeneti[9]);
}
public string kiir()
{
string kiiras = $"Tanuló neve: {nev}\n Oktatási azonosító: {azonosito}\n Hálózatok I.: {hal}\n Hálózatok I. Gyakorlat: {halgyak}\n Programozás: {prog}\n Programozás Gyakorlat: {proggyak}\n Angol nyelv: {angol}\n Magyar nyelv és irodalom: {irod}\n Matematika: {matek}\n Történelem: {tori}\n";
return kiiras;
}
}
class Program
{
public static double osztalyAtlag(List<Feleves> adatok)
{
double osszesen = 0;
for (int i = 0; i < adatok.Count; i++)
{
osszesen += adatok[i].hal + adatok[i].halgyak + adatok[i].prog + adatok[i].proggyak + adatok[i].angol + adatok[i].irod + adatok[i].matek + adatok[i].tori;
}
return (osszesen / (adatok.Count * 8));
}
public static int legjobbJegy(List<Feleves> adatok, int index)
{
List<int> jegyek = new List<int>();
jegyek.Add(adatok[index].hal);
jegyek.Add(adatok[index].halgyak);
jegyek.Add(adatok[index].prog);
jegyek.Add(adatok[index].proggyak);
jegyek.Add(adatok[index].angol);
jegyek.Add(adatok[index].irod);
jegyek.Add(adatok[index].matek);
jegyek.Add(adatok[index].tori);
return jegyek.Max();
}
static void Main(string[] args)
{
List<Feleves> eredmenyek = new List<Feleves>();
//1. feladat
Console.WriteLine("1. feladat\nBeolvasás");
foreach (var i in File.ReadAllLines("results.txt").Skip(1))
{
eredmenyek.Add(new Feleves(i));
}
//2. feladat
Console.WriteLine("2. feladat\nKiírás");
for (int i = 0; i < eredmenyek.Count; i++)
{
Console.WriteLine(eredmenyek[i].kiir());
}
//3. feladat
Console.WriteLine("3. feladat\nÁtlagszámítás tanulónként");
double atlag = 0;
for (int i = 0; i < eredmenyek.Count; i++)
{
atlag = (eredmenyek[i].hal + eredmenyek[i].halgyak + eredmenyek[i].prog + eredmenyek[i].proggyak + eredmenyek[i].angol + eredmenyek[i].irod + eredmenyek[i].matek + eredmenyek[i].tori) / 8.0;
Console.WriteLine($"{eredmenyek[i].nev} átlaga: {atlag:0.0}");
}
//Szorgalmi: Megoldani average függvénnyel.
Console.WriteLine("4. feladat\nNevek ABC sorrendbe rendezése és kiirása");
List<string> abcsorrend = new List<string>();
for (int i = 0; i < eredmenyek.Count; i++)
{
abcsorrend.Add(eredmenyek[i].nev);
}
abcsorrend.Sort();
foreach (var i in abcsorrend)
{
Console.WriteLine($"Tanuló neve: {i}");
}
//5. feladat: Programozás gyakorlatból megbukottak nevének kiiratása
Console.WriteLine("5. feladat\nProgramozás gyakorlatból megbukottak nevének kiiratása");
for (int i = 0; i < eredmenyek.Count; i++)
{
if (eredmenyek[i].proggyak == 1)
{
Console.WriteLine($"Tanuló neve: {eredmenyek[i].nev}");
}
}
//6. feladat: Keressük meg az első olyan embert akinek hármasa van angol nyelvből.
Console.WriteLine("6. feladat\nKeressük meg az első olyan embert akinek hármasa van angol nyelvből.");
bool van = false;
int k = 0;
while (k < eredmenyek.Count && !van)
{
if (eredmenyek[k].angol == 3)
{
van = true;
}
k++;
}
if (van)
{
Console.WriteLine($"{eredmenyek[k].nev} az első olyan ember akinek hármasa van angol nyelvből.");
}
else
{
Console.WriteLine("Nem találtam olyan embert, aki 3-ast kapott.");
}
//7. feladat: Osztályátlag kiírása paraméteres függvénnyel
Console.WriteLine($"Osztályátlag: {osztalyAtlag(eredmenyek)}");
//8. feladat: Kérjük be a felhasználótól, melyik tanuló legjobb jegyét szeretné megtudni.
//Írjuk ki az adott tanuló legjobb eredményét paraméteres függvénnyel.
Console.Write("Melyik tanuló legjobb jegyét szeretné megtudni? ");
string nev = Console.ReadLine();
int j = 0;
while (j < eredmenyek.Count && !eredmenyek[j].nev.Contains(nev))
{
j++;
}
if (j < eredmenyek.Count)
{
Console.WriteLine($"{eredmenyek[j].nev} legjobb jegye: {legjobbJegy(eredmenyek, j)}");
}
else
{
Console.WriteLine("Nincs ilyen nevű tanuló!");
}
//9. feladat: Egy új fájlba írjuk ki a tanuló nevét, oktatási azonosítóját, és a legjobb jegyét.
Console.WriteLine("9. feladat");
StreamWriter sw = new StreamWriter("tanulok.txt");
for (int i = 0; i < eredmenyek.Count; i++)
{
sw.WriteLine($"{eredmenyek[i].nev}: {eredmenyek[i].azonosito}, legjobb jegye: {legjobbJegy(eredmenyek, i)}");
}
sw.Close();
Console.ReadLine();
}
}
}
Nincsenek megjegyzések:
Megjegyzés küldése