2022.04.25. -26. Monitorvásár megoldás, Ismétlés

Kedden eljutottunk az 5. feladatig.

Hétfőn átismételtük a szóbeli témaköröket, házi feladat megtanulni őket. Mostmár komolyan.

Elkezdtük kielemezni a lenti megoldást, a brutto propertyig jutottunk.

Amikor ezen végigmegyünk, számonkérések következnek.


 using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
//Monitor vásár
//Egy hardver cég többféle monitort árul.A monitorokról a következő adatokat tároljuk:
//a monitor gyártója; típusa; mérete; ára;
//illetve amelyik kifejezetten játékra való, ott még megadják azt is, hogy gamer.
//A méret colban van, az ár nettó és forintban értjük.
//Forrásfájl tartalma (a tartalmat használd így, ahogy van, az első sort majd nem kell figyelembe venni beolvasáskor):

//Keszleten levo monitorok
//Samsung;S24D330H;24;33000  
//Acer;V227Qbi;21.5;31000  
//AOC;24G2U;23.8;66000  
//Samsung;Odyssey G9 C49g95TSSU;49;449989;gamer
//LG;25UM58-P;25;56000  
//Samsung;C27JG50QQU;27.5;91000  

//Feladatok:
//Lehetőleg minden kiírást a főprogram végezzen el paramétereken keresztül.
//Próbálj minél több kódot újrahasznosítani.
//1. Hozz létre egy osztályt a monitorok adatai számára. Olvasd be a fájl tartalmát.
//Oldd meg, hogy bármennyi monitort is tudj kezelni.
//2. Írd ki a monitorok összes adatát, soronként egy monitort a képernyőre.
//A kiírás így nézzen ki:
//Gyártó: Samsung; Típus: S24D330H; Méret: 24 col; Nettó ár: 33000 Ft
//2. Tárold az osztálypéldányokban a bruttó árat is (ÁFA: 27%, konkrétan a 27-tel számolj.)
//3. Tételezzük fel, hogy mindegyik monitorból 15 db van készleten, ez a nyitókészlet. Mekkora a nyitó raktárkészlet bruttó (tehát áfával növelt) értéke?
//Írj egy metódust, ami meghívásakor kiszámolja
//a raktárkészlet aktuális bruttó értékét. A főprogram írja ki az értéket.
//4. Írd ki egy új fájlba, és a képernyőre az 50.000 Ft feletti nettó értékű monitorok összes adatát (a darabszámmal együtt) úgy,
//hogy a szöveges adatok nagybetűsek legyenek, illetve az árak ezer forintba legyenek átszámítva.
//Az ezer forintba átszámítást egy külön függvényben valósítsd meg.
//5. Egy vevő keresi a HP EliteDisplay E242 monitort.
//Írd ki neki a képernyőre, hogy hány darab ilyen van a készleten.
//Ha nincs a készleten, ajánlj neki egy olyan monitort, aminek az ára
//az átlaghoz fölülről közelít.
//Ehhez használd az átlagszámító függvényt (később lesz feladat).
//6. Egy újabb vevőt csak az ár érdekli. Írd ki neki a legolcsóbb monitor méretét,
//és árát.
//7. A cég akciót hirdet. A 70.000 Ft fölötti árú Samsung monitorok bruttó árából
// 5%-ot elenged.
//Írd ki, hogy mennyit veszítene a cég az akcióval,
//ha az összes akciós monitort eladná.
//8. Írd ki a képernyőre minden monitor esetén,
//hogy az adott monitor nettó ára a nettó átlag ár alatt van-e, vagy fölötte,
//esetleg pontosan egyenlő az átlag árral. Ezt is a főprogram írja ki.
//9. Modellezzük, hogy megrohamozták a vevők a boltot. 5 és 15 közötti
//random számú vásárló 1 vagy 2 random módon kiválasztott monitort vásárol,
//ezzel csökkentve az eredeti készletet.
//Írd ki, hogy melyik monitorból mennyi maradt a boltban.
//Vigyázz, hogy nulla darab alá ne mehessen a készlet.
//Ha az adott monitor éppen elfogyott, ajánlj neki egy másikat (lásd fent).
//10. Írd ki a képernyőre, hogy a vásárlások után
//van-e olyan monitor, amelyikből mindegyik elfogyott.
//11. Írd ki a gyártókat abc sorrendben a képernyőre. Oldd meg úgy is,
//hogy a metódus írja ki, és úgy is, hogy a főprogram.
//12. Csökkentsd a legdrágább monitor bruttó árát
//10%-kal, írd ki ezt az értéket a képernyőre.

//A feladatsor egy lehetséges megoldása:

namespace monitorAlapOOP
{
    class Monitor
    {
        public string gyarto { get; set; }
        public string tipus { get; set; }
        public double meret { get; set; }
        public double ar { get; set; }
        public bool gamer { get; set; }
        private double bruttoAr; //Ennél az adattagnál kidolgozzuk a propertyt.      
        public int darab;
        public const double afa = 27;

        public string gamerErteke(bool gmr)
        {
            if (gmr) return "játék gép";
            else return "nem játék gép";
        }

        public double brutto
        {
            get { return bruttoAr; }
            set
            {
                if (value > ar)
                {
                    bruttoAr = value;
                }
                else
                {
                    throw new Exception("HIBA! A bruttó érték nem nagyobb a nettónál!");
                }
            }
        }

        public Monitor(string sor) //ez a konstruktor
        {
            List<string> kezelo = sor.Split(';').ToList();
            gyarto = kezelo[0];
            tipus = kezelo[1];
            meret = Convert.ToDouble(kezelo[2].Replace('.', ','));
            ar = Convert.ToDouble(kezelo[3]);
            if (kezelo.Contains("gamer")) //vagy: kezelo.Count == 5
            {
                gamer = true;
            }
            else
            {
                gamer = false;
            }
            brutto = Convert.ToDouble(kezelo[3]) * (afa / 100 + 1);
            darab = 15;
            //itt nem közvetlenül az adattagba írunk, hiszen a <brutto> propertyt használjuk itt,
            //ami a rejtett bruttoAr adattagba ír
            //ha itt rosszul számoljuk a bruttó árat, nem engedi beletenni az adattagba
            //nyilván itt ugyanaz az ember írja mindkettőt, de megeshet, hogy ez nem így van
        }

        public override string ToString() //virtuális metódus
        {
            //így is jó:
            //return "Gyártó: " + gyarto + "; | Típus: " + tipus + "; | Méret: " + meret + " col;" + " | Nettó ár: " + ar +" Ft\n";
            return $"Gyártó: {gyarto}; | Típus: {tipus} | Méret: {meret} col; | Nettó ár: {ar} Ft\n";
        }

        public double ezer(double a)
        {
            return a / 1000;
        }

        public string kiir()
        {
            return $"Gyártó: {gyarto.ToUpper()};\nTípus: {tipus.ToUpper()} ;\nMéret: {meret} col;\nNettó ár (ezer ft): {ezer(ar):0}\nBruttó ár (ezer ft): {ezer(brutto):0}\nRaktárkészlet: {darab} darab\n{gamerErteke(gamer)}";
        }

    }

    class Program
    {
        public static double atlag(List<Monitor> adatok, List<double> arLista)
        {
            for (int i = 0; i < adatok.Count; i++)
            {
                arLista.Add(adatok[i].ar);
            }
            return arLista.Average();
        }

        public static int ajanlo(List<Monitor> adatok, List<double> arLista, double atlag)
        {
            List<double> arakTavolsag = new List<double>();

            for (int i = 0; i < adatok.Count; i++)
            {
                arakTavolsag.Add(arLista[i] - atlag);
            }

            double min = double.MaxValue;
            int monitorIndex = 0;
            for (int i = 0; i < arakTavolsag.Count; i++)
            {
                if (arakTavolsag[i] > 0)
                {
                    if (arakTavolsag[i] < min)
                    {
                        min = arakTavolsag[i];
                        monitorIndex = i;
                    }
                }
            }
            return monitorIndex;
        }

        public static string abcSorrend1(List<Monitor> adatok)
        {
            List<string> gyartok = new List<string>();
            for (int i = 0; i < adatok.Count; i++)
            {
                gyartok.Add(adatok[i].gyarto);
            }
            gyartok.Sort();
            return string.Join("\n", gyartok);
        }

        public static void abcSorrend2(List<Monitor> adatok)
        {
            Console.WriteLine("A gyártók abc sorrendben:");
            List<string> gyartok = new List<string>();
            for (int i = 0; i < adatok.Count; i++)
            {
                gyartok.Add(adatok[i].gyarto);
            }
            gyartok.Sort();
            for (int i = 0; i < adatok.Count; i++)
            {
                Console.WriteLine(gyartok[i]);
            }
        }

        static void Main(string[] args)
        {
            //1. Hozz létre egy osztályt a monitorok adatai számára. Olvasd be a fájl tartalmát. Oldd meg, hogy bármennyi monitort is tudj kezelni.
            List<Monitor> monitorok = new List<Monitor>();

            #region 1. Feladat: Beolvasás
            Console.WriteLine("\n1. Feladat");
            foreach (var item in File.ReadAllLines("monitor.txt").Skip(1))
            {
                monitorok.Add(new Monitor(item));
            }
            #endregion

            //2. Tárold az osztálypéldányokban a bruttó árat is (ÁFA: 27%, konkrétan a 27-tel számolj.)
            #region globális változók egy helyen
            List<double> arak = new List<double>();
            double atlagErtek = atlag(monitorok, arak);
            int index;
            bool log;
            #endregion

            #region 2. Feladat: Kiírás
            Console.WriteLine("\n2. Feladat");
            foreach (var i in monitorok)
            {
                Console.WriteLine(i);
            }
            #endregion

            //3. Tételezzük fel, hogy mindegyik monitorból 15 db van készleten, ez a nyitókészlet. Mekkora a nyitó raktárkészlet bruttó (tehát áfával növelt) értéke?
            //Írj egy metódust, ami meghívásakor kiszámolja a raktárkészlet aktuális bruttó értékét. A főprogram írja ki az értéket.
            #region 3. feladat:raktárkészlet
            Console.WriteLine("\n3. Feladat");
            double osszeg = 0;
            for (int i = 0; i < monitorok.Count; i++)
            {
                osszeg += monitorok[i].brutto * monitorok[i].darab;
            }
            Console.WriteLine($"A raktárkészlet összértéke {osszeg:0} Ft");
            #endregion

            //4. Írd ki egy új fájlba, és a képernyőre az 50.000 Ft feletti nettó értékű monitorok összes adatát (a darabszámmal együtt) úgy,
            //hogy a szöveges adatok nagybetűsek legyenek, illetve az árak ezer forintba legyenek átszámítva.
            //Az ezer forintba átszámítást egy külön függvényben valósítsd meg.

            #region 4. Feladat: Mentés
            Console.WriteLine("\n4. Feladat");
            Console.WriteLine("Mentés...");

            StreamWriter sw = new StreamWriter("out.txt");
            string ki = string.Empty;
            for (int i = 0; i < monitorok.Count; i++)
            {
                if (monitorok[i].ar < 50000)
                {
                    ki = monitorok[i].kiir();
                    Console.WriteLine(ki);
                    sw.WriteLine(ki);
                }
            }
            sw.Close();
            Console.WriteLine("Mentve\n");
            #endregion

            #region 4. Feladat: Mentés másképp
            Console.WriteLine("\n4. Feladat másképp");
            Console.WriteLine("Mentés másképp...");
            List<string> toFile = new List<string>();
            for (int i = 0; i < monitorok.Count; i++)
            {
                if (monitorok[i].ar < 50000)
                {
                    ki = monitorok[i].kiir();
                    toFile.Add(ki);
                    Console.WriteLine(ki);
                }
            }
            File.WriteAllLines("out1.txt", toFile);
            Console.WriteLine("Mentve\n");
            #endregion

            //5. Egy vevő keresi a HP EliteDisplay E242 monitort. Írd ki neki a képernyőre, hogy hány darab ilyen van a készleten.
            //Ha nincs a készleten, ajánlj neki egy olyan monitort, aminek az ára az átlaghoz fölülről közelít. Ehhez használd az átlagszámító függvényt (később lesz feladat).
            #region 5. Feladat: Átlag
            Console.WriteLine("\n5. Feladat");

            string kerMonitor = "HP EliteDisplay E242";
            Console.WriteLine("\nAjánlás");
            List<string> adatok = new List<string>();
            index = 0;
            for (int i = 0; i < monitorok.Count; i++)
            {
                adatok.Add(monitorok[i].gyarto + " " + monitorok[i].tipus);
            }
            if (adatok.Contains(kerMonitor))
            {
                Console.WriteLine($"{kerMonitor} monitorból {monitorok[adatok.IndexOf(kerMonitor)].darab} darab van készleten.");
            }
            else
            {
                index = ajanlo(monitorok, arak, atlagErtek);
                Console.WriteLine($"{monitorok[index].gyarto} {monitorok[index].tipus} monitort ajánlom, ennek ára: {monitorok[index].ar} Ft");
            }
            #endregion

            //6. Egy újabb vevőt csak az ár érdekli. Írd ki neki a legolcsóbb monitor méretét, és árát.
            #region 6. Feladat: Legolcsóbb
            Console.WriteLine("\n6. Feladat");
            index = arak.IndexOf(arak.Min());
            Console.WriteLine($"Legolcsóbb monitor {monitorok[index].ar} Ft; {monitorok[index].meret} col");
            #endregion

            //7. A cég akciót hirdet. A 70.000 Ft fölötti árú Samsung monitorok bruttó árából 5%-ot elenged.
            //Írd ki, hogy mennyit veszítene a cég az akcióval, ha az összes akciós monitort eladná.                        
            #region 7. Feladat: Akció
            Console.WriteLine("\n7. Feladat");
            List<double> hetvenPluszArak = new List<double>();
            for (int i = 0; i < monitorok.Count; i++)
            {
                if (monitorok[i].ar >= 70000 && monitorok[i].gyarto == "Samsung")
                {
                    hetvenPluszArak.Add((monitorok[i].ar * 0.05)) * monitorok[i].darab);
                }
            }
            Console.WriteLine($"A cég {hetvenPluszArak.Sum():0} Ft-ot veszítene");
            #endregion

            //8. Írd ki a képernyőre minden monitor esetén, hogy az adott monitor nettó ára a nettó átlag ár alatt van-e, vagy fölötte,
            //esetleg pontosan egyenlő az átlag árral. Ezt is a főprogram írja ki.
            #region 8. Feladat: Netto
            Console.WriteLine("\n8. Feladat");
            double atlagErteke = arak.Average();
            for (int i = 0; i < monitorok.Count; i++)
            {
                Console.Write($"{monitorok[i].tipus} monitor ára az ");
                if (monitorok[i].ar < atlagErteke)
                {
                    Console.WriteLine("átlag alatt van.");
                }
                else
                    if (monitorok[i].ar > atlagErteke)
                    {
                        Console.WriteLine("átlag fölött van.");
                    }
                    else
                    {
                        Console.WriteLine("átlaggal egyenlő.");
                    }
            }
            #endregion

            //9. Modellezzük, hogy megrohamozták a vevők a boltot. 5 és 15 közötti random számú vásárló 1 vagy 2 random módon kiválasztott monitort vásárol,
            //ezzel csökkentve az eredeti készletet. Írd ki, hogy melyik monitorból mennyi maradt a boltban.
            //Vigyázz, hogy nulla darab alá ne mehessen a készlet. Ha az adott monitor éppen elfogyott, ajánlj neki egy másikat (lásd fent).
            #region 9. Feladat: Roham
            Console.WriteLine("\n9. Feladat");
            Random rnd = new Random();
            int random1 = rnd.Next(5, 16); //Teszteld 100 vásárlóval, akkor biztos lesz olyan monitor, amelyik elfogy.
            int random2;
            int random3;
            index = 0;
            for (int i = 0; i < random1; i++)
            {
                random2 = rnd.Next(1, 3);
                for (int j = 0; j < random2; j++)
                {
                    random3 = rnd.Next(monitorok.Count);
                    if (monitorok[random3].darab > 0)
                    {
                        monitorok[random3].darab--;
                        Console.WriteLine($"{monitorok[random3].gyarto} {monitorok[random3].tipus} monitorból {monitorok[random3].darab} db maradt készleten.");
                    }
                    else
                    {
                        index = ajanlo(monitorok, arak, atlagErtek);
                        Console.WriteLine($"A keresett monitor elfogyott. Ajánlott monitor: {monitorok[index].gyarto} {monitorok[index].tipus}");
                    }
                }
            }
            #endregion

            //10. Írd ki a képernyőre, hogy a vásárlások után van-e olyan monitor, amelyikből mindegyik elfogyott.
            #region 10. Feladat: Elfogyott
            Console.WriteLine("\n10. Feladat");
            log = false;
            for (int i = 0; i < monitorok.Count; i++)
            {
                if (monitorok[i].darab == 0)
                {
                    Console.WriteLine($"{monitorok[i].gyarto} {monitorok[i].tipus} monitor teljesen elfogyott.");
                    log = true;
                }
            }
            if (!log)
            {
                Console.WriteLine("Minden monitorból van még készleten minimum 1 db.");
            }
            #endregion

            //11. Írd ki a gyártókat abc sorrendben a képernyőre. Oldd meg úgy is, hogy a metódus írja ki, és úgy is, hogy a főprogram.
            #region 11. Feladat: abc sorrend
            Console.WriteLine("\n11. Feladat/1");
            Console.WriteLine("A gyártók abc sorrendben:");
            Console.WriteLine(abcSorrend1(monitorok));

            Console.WriteLine("\n11. Feladat/2");
            abcSorrend2(monitorok);
            #endregion

            //12. Csökkentsd a legdrágább monitor bruttó árát 10%-kal, írd ki ezt az értéket a képernyőre.
            #region 12. Feladat: -10%
            Console.WriteLine("\n12. Feladat");
            index = Array.IndexOf(arak.ToArray(), arak.Max());
            monitorok[index].brutto = monitorok[index].brutto - (monitorok[index].brutto * 0.1);
            Console.WriteLine("Mostantól a legdrágább monitor {0:0} Ft", monitorok[index].brutto);
            #endregion
            Console.ReadLine();
        }
    }
}

2022.04.11.-12. Monitorvásár befejezés

 Hétfőn és kedden folytattuk, házi feladat befejezni, mindenkinek a képességeihez mérten. Minden feladattal foglalkozni kell, a megoldást fel kell tölteni a digifüzetbe. Az otthon lévők is pótoljanak be mindent a szünet utánra, tehát 25-én mindenkinek legyen kész.

A szünet után összefoglalunk, és elméletből, valamint gyakorlatból több számonkérés is várható, köztük elmélet és gyakorlat témazáró.

2022.04.08. Emelt szintű feladat önálló feldolgozásra: Önvezető autók

 Önvezető autók

Napjainkban az önvezető autók egyre gyorsabban fejlődnek, több neves cég is fejleszt ilyeneket. Ebben a feladatban a rájuk vonatkozó adatokat kell feldolgoznia.

 Az adatokat a lenti keretben találja. Az állomány soronként tartalmazza az autók következő adatait egymástól pontosvesszővel elválasztva:

 - azonosító (gyártó és modellszám)

- teljesítmény (lóerő)

- tömeg (tonna)

- gyorsulás (hány másodperc alatt gyorsul 100 km/h-ra)

- a vezetőnek hányszor kellett beavatkozni a vezetésbe 10.000 km-en

 A fájlban 9 autó adatai vannak.

 

Tesla Model S P90D;760;2,20;3;3

Volvo XC90;889;2,90;4;14

Volkswagen GO989;1378;3,66;5;6

Audi Q525;772;2,40;2;3

Mercedes Benz898;739;2,20;3;9

Google Drive 18;752;2,55;4;11

Delphi Magic 428B;1194;3,00;3;4

Bosch Doom300;700;2,09;4;6

Nissan Cherry 100;725;3,1;3;7

 

Például a Tesla Model S P90D autó 760 lóerős teljesítményű, 2,2 tonna tömegű, 3 másodperc alatt gyorsul 100 km/órára és a 10.000 km-es tesztvezetésen 3-szor volt szükség humán beavatkozásra.

 1. Készítsen programot a következő feladatok megoldására, amelynek a forráskódját onvezeto néven mentse el.

A képernyőre írást igénylő részfeladatok megjelenítése előtt írja a képernyőre a feladat sorszámát!

2. Az adatokat olvassa be fájlból és tárolja el 5 tömbben.

3. Írja ki a képernyőre a leggyorsabb autó adatait. (Az a leggyorsabb, ami a legkevesebb idő alatt gyorsul 100-ra.) 

4. Írja ki a képernyőre a legkevésbé önálló autó azonosítóját. (Az a legkevésbé önálló, amelynél a legtöbbet kellett beavatkozni a vezetésbe.) 

6. Írja ki a képernyőre az autók átlag tömegét. 

7. Írja ki a képernyőre, és egy új fájlba autónként a következő adatokat szóközzel elválasztva: sorszám (a feldolgozás sorrendjében automatikusan generált), tömeg kg-ban. (1 tonna = 1000 kg).

2022.04.05. -08. Monitorvásár folytatás

 Folytattuk együtt a feladatsort. Házi feladat: befejezni az 5. feladatot, és megírni a 6-7-es feladatot péntekre.

Az eddigi megoldásaink:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp40
{
    class Monitor
    {
        public string nev;
        public string tipus;
        public double col;
        public double ar;
        public bool gamer;
        public int afa;
        public double bruttoar;
        public int db;
        public Monitor(string sor)
        {
            List<string> atmeneti = sor.Split(";").ToList();
            nev = atmeneti[0];
            tipus = atmeneti[1];
            col = Convert.ToDouble(atmeneti[2]);
            ar = Convert.ToInt32(atmeneti[3]);
            if (atmeneti.Count == 4)
            {
                gamer = false;
            }
            else
            {
                if (atmeneti.Count == 5)
                {
                    gamer = true;
                }
            }
            afa = 27;
            bruttoar = ar / 100 * afa + ar;
            db = 15;
        }
        public void kiir()
        {
            Console.Write("Gyártó: {0}; Típus: {1}; Méret: {2} col; Nettó ár: {3} Ft; A bruttoára: {4} Ft; ", nev, tipus, col, ar, bruttoar);
            if (gamer)
            {
                Console.WriteLine("Ez egy játékra alkalmasabb monitor");
            }
            else
            {
                Console.WriteLine("Ez nem egy játékra specializált monitor");
            }
        }
    }
    class Program
    {
        static double nyitokeszlet(List<Monitor> m)
        {
            double keszletar = 0;
            for (int i = 0; i < m.Count; i++)
            {
                keszletar = keszletar + m[i].bruttoar * m[i].db;
            }
            return keszletar;
        }
        static void fajlbairas(List<Monitor> m)
        {
            int i = 0;

            StreamWriter sw = new StreamWriter("Drágább monitorok.txt");
            while (m.Count > i)
            {
                if (m[i].ar > 50000)
                {
                    sw.WriteLine("Monitor: {0}, típusa: {1}, méret: {2} col, ára: {3} ezer Ft, készleten: {4} db.", m[i].nev.ToUpper(), m[i].tipus, m[i].col, ezerrelosztas(m[i].ar), m[i].db);
                    Console.WriteLine("Monitor: {0}, típusa: {1}, méret: {2} col, ára: {3} ezer Ft, készleten: 15 db.", m[i].nev.ToUpper(), m[i].tipus, m[i].col, ezerrelosztas(m[i].ar), m[i].db);
                }
                i++;
            }
            sw.Close();
        }
        static double ezerrelosztas(double a)
        {
            return a / 1000;
        }
        static void vane(List<Monitor> m)
        {
            int i = 0;
            bool igen = false;
            while (i < m.Count)
            {
                if (m[i].tipus == "EliteDisplay E242")
                {
                    Console.WriteLine("{0} ilyen monitor van!", m[i].db);
                    igen = true;
                }

                i++;
            }
            if (!igen)
            {
                Console.WriteLine("Nincs ilyen monitor!");
                double atl = atlagSzamitas(m);
                Console.WriteLine("Ezt javasoljuk:");
                for ( i = 0; i < m.Count; i++)
                {
                    if ( m[i].ar > atl)
                    {
                        m[i].kiir();
                    }                  
                }
            }

        }
        static double atlagSzamitas(List<Monitor> m)
        {
            int i = 0;
            double atlag = 0;
            while (i < m.Count)
            {
                atlag += m[i].ar;
                i++;
            }
            atlag = atlag / m.Count;
            return atlag;
        }
       
       
        static void Main(string[] args)
        {
            List<Monitor> monitorok = new List<Monitor>();
            Console.WriteLine("1. feladat");
            Console.WriteLine("Fájlok beolvasása...");
            foreach (var item in File.ReadAllLines("monitorok.txt"))
            {
                monitorok.Add(new Monitor(item));
            }
            Console.WriteLine("2a. feladat");
            for (int i = 0; i < monitorok.Count; i++)
            {
                monitorok[i].kiir();
            }
            Console.WriteLine("2b. feladat");
            Console.WriteLine("Bruttó árak kiszámolva...");
            Console.WriteLine("3. feladat");
            Console.WriteLine("A készlet értéke: {0} Ft", nyitokeszlet(monitorok));
            Console.WriteLine("4. feladat");
            fajlbairas(monitorok);
            Console.WriteLine("5. feladat");
            vane(monitorok);
         
         
            // Monitor vásár

            //Egy hardver cég többféle monitort árul.A monitorokról a következő adatokat tároljuk:

            //a monitor gyártója; típusa; mérete; ára;

            //illetve amelyik kifejezetten játékra való, ott még megadják azt is, hogy gamer.

            //A méret colban van, az ár nettó és forintban értjük.

            //Forrásfájl tartalma (a tartalmat használd így, ahogy van, az első sort majd nem kell figyelembe venni beolvasáskor):

            //Feladatok:

            //Lehetőleg minden kiírást a főprogram végezzen el paramétereken keresztül.

            //1. Hozz létre egy osztályt a monitorok adatai számára. Olvasd be a fájl tartalmát.

            //2a. Írd ki a monitorok összes adatát, soronként egy monitort a képernyőre.

            //A kiírás így nézzen ki:

            //Gyártó: Samsung; Típus: S24D330H; Méret: 24 col; Nettó ár: 33000 Ft



            //2b. Tárold az osztálypéldányokban a bruttó árat is (ÁFA: 27%, konkrétan a 27-tel számolj.)

            //3. Tételezzük fel, hogy mindegyik monitorból 15 db van készleten, ez a nyitókészlet. Mekkora a nyitó raktárkészlet bruttó (tehát áfával növelt) értéke?

            //Írj egy metódust, ami meghívásakor kiszámolja

            //a raktárkészlet aktuális bruttó értékét. A főprogram írja ki az értéket.



            //4. Írd ki egy új fájlba, és a képernyőre az 50.000 Ft feletti nettó értékű monitorok összes adatát (a darabszámmal együtt) úgy,

            //hogy a szöveges adatok nagybetűsek legyenek, illetve az árak ezer forintba legyenek átszámítva.

            //Az ezer forintba átszámítást egy külön függvényben valósítsd meg.



            //5. Egy vevő keresi a HP EliteDisplay E242 monitort.

            //Írd ki neki a képernyőre, hogy hány darab ilyen van a készleten.

            //Ha nincs a készleten, ajánlj neki egy olyan monitort, aminek az ára

            //az átlaghoz fölülről közelít.

            //Ehhez használd az átlagszámító függvényt (később lesz feladat).



            //6. Egy újabb vevőt csak az ár érdekli. Írd ki neki a legolcsóbb monitor méretét,

            //és árát.



            //7. A cég akciót hirdet. A 70.000 Ft fölötti árú Samsung monitorok bruttó árából

            // 5%-ot elenged.

            //Írd ki, hogy mennyit veszítene a cég az akcióval,

            //ha az összes akciós monitort eladná.



            //8. Írd ki a képernyőre minden monitor esetén,

            //hogy az adott monitor nettó ára a nettó átlag ár alatt van-e, vagy fölötte,

            //esetleg pontosan egyenlő az átlag árral. Ezt is a főprogram írja ki.



            //9. Modellezzük, hogy megrohamozták a vevők a boltot. 5 és 15 közötti

            //random számú vásárló 1 vagy 2 random módon kiválasztott monitort vásárol,

            //ezzel csökkentve az eredeti készletet.

            //Írd ki, hogy melyik monitorból mennyi maradt a boltban.

            //Vigyázz, hogy nulla darab alá ne mehessen a készlet.

            //Ha az adott monitor éppen elfogyott, ajánlj neki egy másikat (lásd fent).



            //10. Írd ki a képernyőre, hogy a vásárlások után

            //van-e olyan monitor, amelyikből mindegyik elfogyott.



            //11. Írd ki a gyártókat abc sorrendben a képernyőre. Oldd meg úgy is,

            //hogy a metódus írja ki, és úgy is, hogy a főprogram.



            //12. Csökkentsd a legdrágább monitor bruttó árát

            //10%-kal, írd ki ezt az értéket a képernyőre.
            Console.ReadLine();
        }
    }
}

2022.04.04. Monitorvásár

 Folytattuk a monitorvásárt. Házi feladat befejezni az 5. feladatot, ehhez szükséges az átlagszámító függvényt is megírni.

2024.02.15.-16. Helyettesítés

 Adatbázis: vizsgaremek adatbázisának befejezése teljesen készre, dokumentáció kiegészítése, befejezése. Vizsgaremek felületének megvalósítá...