Kamionok alap megoldás

  using System;


namespace KamionokAlap
{
    class Kamion
    {
        public string Marka { get; set; }
        public string Tipus { get; set; }
        public int Evjarat { get; set; }
        public int Teljesitmeny { get; set; }
        public double Uzemanyagfogyasztas { get; set; }
        public int KmAllas { get; set; }

        public Kamion(string sor)
        {
            string[] mezok = sor.Split(';');
            Marka = mezok[0];
            Tipus = mezok[1];
            Evjarat = int.Parse(mezok[2]);
            Teljesitmeny = int.Parse(mezok[3]);
            Uzemanyagfogyasztas = double.Parse(mezok[4]);
            KmAllas = int.Parse(mezok[5]);
        }

        public void Kiir()
        {
            Console.WriteLine($"Márka: {Marka}, Típus: {Tipus}, Évjárat: {Evjarat}, Teljesítmény: {Teljesitmeny} lóerő, Üzemanyagfogyasztás: {Uzemanyagfogyasztas} l/100km, Km-óra állás: {KmAllas}");
        }

        public override string ToString()
        {
            return $"Márka: {Marka}, Típus: {Tipus}, Évjárat: {Evjarat}, Teljesítmény: {Teljesitmeny} lóerő, Üzemanyagfogyasztás: {Uzemanyagfogyasztas} l/100km, Km-óra állás: {KmAllas}";
        }

        public double TeljesitmenyKW()
        {
            return Math.Round(Teljesitmeny * 0.7355,2);
        }

    }
}

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

namespace KamionokAlap
{  
    class Program
    {
        static void Main(string[] args)
        {
            List<Kamion> kamionok = BeolvasKamionok(@"..\..\..\src\kamionok.txt");

            Console.WriteLine("\nÖsszes kamion adatai:");
            foreach (var kamion in kamionok)
            {
                Console.WriteLine(kamion);
            }

            Console.WriteLine($"\n1. Feladat: Átlagos évjárat: {AtlagosEvjarat(kamionok)}");

            List<Kamion> manKamionok = new List<Kamion>();
            Console.WriteLine($"\n2. Feladat: {ManKamionok(kamionok, manKamionok)} db MAN kamion van 2018 vagy újabb évjáratú.");

            List<Kamion> legtobbfutott = LegtobbfutottKamion(kamionok);
            Console.WriteLine("\n3. Feladat: Legtöbbet futott kamion(ok):");
            foreach (var kamion in legtobbfutott)
            {
                Console.WriteLine(kamion);
            }

            //ebben a megoldásban az elsőt kapjuk meg
            Kamion iveco = IvecoKamion(kamionok);
            Console.WriteLine("\n4. Feladat: " + (iveco != null ? "Van" : "Nincs") + " olyan Iveco kamion, aminek a fogyasztása kevesebb, mint a legerősebb motorteljesítményű Mercedes modell fogyasztása.");
            iveco.Kiir();

            Console.WriteLine("\n5. Feladat: Üzemanyagfogyasztás 30 l alatt:");
            List<Kamion> alacsonyFogyasztasuKamionok = AlacsonyFogyasztasuKamionok(kamionok);
            foreach (var kamion in alacsonyFogyasztasuKamionok)
            {
                Console.WriteLine(kamion);
            }

            Kamion max;
            Kamion min;
            string eredmeny = LegerosebbLeggyengebbEgyezik(kamionok, out max, out min) ? "igen" : "nem";
            Console.WriteLine($"\n6. Feladat: A legerősebb és leggyengébb kamionnak ugyanaz a gyártója? {eredmeny}");
            Console.WriteLine($"Legerősebb kamion: {max}");
            Console.WriteLine($"Leggyengébb kamion: {min}");

 

            Console.WriteLine("\n7. Feladat: \nFájlba írás: Kamionok átszámolva kW-ra");
            KiirKilowattba(kamionok, @"..\..\..\src\kamionok_kw.txt");

            Console.ReadKey();
        }

        static List<Kamion> BeolvasKamionok(string file)
        {
            List<Kamion> kamionok = new List<Kamion>();
            try
            {
                string[] sorok = File.ReadAllLines(file);
                for (int i = 1; i < sorok.Length; i++)
                {
                    kamionok.Add(new Kamion(sorok[i]));
                }
            }
            catch (IOException e)
            {
                Console.WriteLine("Hiba a fájl olvasása közben: " + e.Message);
            }
            return kamionok;
        }
        static double AtlagosEvjarat(List<Kamion> kamionok)
        {
            double osszeg = 0;
            foreach (var kamion in kamionok)
            {
                osszeg += kamion.Evjarat;
            }
            return Math.Round(osszeg / kamionok.Count);
        }

        static int ManKamionok(List<Kamion> k, List<Kamion> man)
        {
            foreach (var item in k)
            {
                if (item.Marka == "MAN" && item.Evjarat >= 2018)
                {
                    man.Add(item);
                }
            }
            return man.Count;
        }

        static List<Kamion> LegtobbfutottKamion(List<Kamion> kamionok)
        {
            Kamion max = kamionok[0];
            List<Kamion> legtobbfutott = new List<Kamion>();

            foreach (var kamion in kamionok)
            {
                if (kamion.KmAllas > max.KmAllas)
                {
                    max = kamion;
                }
            }
            foreach (var item in kamionok)
            {
                if (item.KmAllas == max.KmAllas)
                {
                    legtobbfutott.Add(item);
                }
            }
            return legtobbfutott;
        }

        static Kamion IvecoKamion(List<Kamion> kamionok)
        {
            Kamion maxTeljesitmenyuMercedes = kamionok[0];
            foreach (var item in kamionok)
            {
                if (item.Marka =="Mercedes" && maxTeljesitmenyuMercedes.Teljesitmeny < item.Teljesitmeny)
                {
                    maxTeljesitmenyuMercedes = item;
                }
            }
            //teszt
            //Console.WriteLine("maxTeljesitmenyuMercedes telj. mercedes");
            //maxTeljesitmenyuMercedes.Kiir();
            foreach (var item in kamionok)
            {
                if (item.Marka == "Iveco" && item.Uzemanyagfogyasztas < maxTeljesitmenyuMercedes.Uzemanyagfogyasztas)
                {
                    return item;
                }
            }
            return null;
        }

        static List<Kamion> AlacsonyFogyasztasuKamionok(List<Kamion> kamionok)
        {
            List<Kamion> alacsonyFogyasztasu = new List<Kamion>();

            foreach (var kamion in kamionok)
            {
                if (kamion.Uzemanyagfogyasztas < 30)
                {
                    alacsonyFogyasztasu.Add(kamion);
                }
            }
            return alacsonyFogyasztasu;
        }

        static bool LegerosebbLeggyengebbEgyezik(List<Kamion> kamionok, out Kamion kamionMax, out Kamion kamionMin)
        {
            kamionMax = kamionok[0];
            kamionMin = kamionok[0];

            foreach (var kamion in kamionok)
            {
                if (kamion.Teljesitmeny > kamionMax.Teljesitmeny)
                {
                    kamionMax = kamion;
                }
                if (kamion.Teljesitmeny < kamionMin.Teljesitmeny)
                {
                    kamionMin = kamion;
                }
            }
            return kamionMax.Marka == kamionMin.Marka;
        }


        static void KiirKilowattba(List<Kamion> kamionok, string fajlnev)
        {
            using StreamWriter writer = new StreamWriter(fajlnev);
            foreach (var kamion in kamionok)
            {
                writer.WriteLine($"Márka: {kamion.Marka}, Típus: {kamion.Tipus}, Évjárat: {kamion.Evjarat}, Teljesítmény: {kamion.TeljesitmenyKW()} kW, Üzemanyagfogyasztás: {kamion.Uzemanyagfogyasztas} l/100km, Km-óra állás: {kamion.KmAllas}");
            }
        }
    }
}

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á...