2021. február 10., szerda

2021.02.10. -16. Gyakorlás: Félévi eredmények OOP prg.

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