Пример #1
0
        static void Beolvas()
        {
            Console.WriteLine("Forrás beolvasása...");
            string forras = @"../../lovesek.txt";

            try
            {
                using (StreamReader sr = new StreamReader(forras))
                {
                    //-- A fájl első sora mindíg a Céltábla középpontjának a koordinátáit tartalmazza
                    string[] sor       = sr.ReadLine().Split(';');
                    double   celtablaX = double.Parse(sor[0]);
                    double   celtablaY = double.Parse(sor[1]);
                    //-- A versenyzők lövéseit is beolvassuk ----------------------------------------
                    int i = 1;      //-- a lövések számozását 1-től indítjuk ------------------------
                    while (!sr.EndOfStream)
                    {
                        sor = sr.ReadLine().Split(';');
                        JatekosLovese uj = new JatekosLovese(i++, sor[0], double.Parse(sor[1]), double.Parse(sor[2]));
                        uj.Tavolsag(celtablaX, celtablaY);  //-- így nem kell majd külön meghívni a tavolság és a pontszám meghatározásához
                        Lovesek.Add(uj);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadKey();
                Environment.Exit(0);    //-- Nincs forrás, akkor kilépa programból!
            }
            Console.WriteLine("Beolvasás vége!");
        }
Пример #2
0
        static void Main(string[] args)
        {
            // 4. feladat
            List <JatekosLovese> lista = new List <JatekosLovese>();
            var beolvasott             = File.ReadAllLines(@"C:\temp\Lezer\lovesek.txt");

            var    tabla  = beolvasott[0].Split(';');
            double tablaX = Convert.ToDouble(tabla[0]);
            double tablaY = Convert.ToDouble(tabla[1]);

            for (int i = 1; i < beolvasott.Length; i++)
            {
                var loves = new JatekosLovese(beolvasott[i], i);
                lista.Add(loves);
            }

            // 5. feladat
            Console.WriteLine($"Összesen {lista.Count} lövést adtak le a játékosok.");

            // 7. feladat
            var legpontosabbLoves = lista.OrderBy(x => x.Tavolsag(tablaX, tablaY)).First();

            Console.WriteLine($"Sorszám: {legpontosabbLoves.Sorszam}, Név: {legpontosabbLoves.Nev}, Távolság: {legpontosabbLoves.Tavolsag(tablaX, tablaY)}");

            // 9. feladat
            var nullapontos = lista.Where(x => x.Pontszam(tablaX, tablaY) == 0).ToList();

            Console.WriteLine(nullapontos.Count);

            // 10. feladat
            var jatekosok = lista.GroupBy(x => x.Nev).ToList();

            Console.WriteLine($"A játékosok száma: {jatekosok.Count()}");

            // 11. feladat
            foreach (var nev in jatekosok)
            {
                Console.WriteLine($"{nev.Key} - {nev.Count()} db");
            }

            // 12. feladat
            var atlagpontok = jatekosok.ToDictionary(x => x.Key, y => y.Average(x => x.Pontszam(tablaX, tablaY)));

            foreach (var item in atlagpontok)
            {
                Console.WriteLine($"{item.Key}: {item.Value}");
            }

            // 13. feladat
            var legmagasabb = atlagpontok.OrderByDescending(x => x.Value).First().Key;

            Console.WriteLine($"A játék nyertese: {legmagasabb}");


            Console.ReadLine();
        }
Пример #3
0
        static void Main(string[] args)
        {
            Beolvas();
            Console.WriteLine($"\n5. feladat: Lövések száma: {Lovesek.Count} db");

            Console.WriteLine($"\n7. feladat: Legpontosabb lövés:");
            JatekosLovese Legpontosabb = Lovesek.Find(a => a.Distance == Lovesek.Min(b => b.Distance));

            Console.WriteLine($"\t{Legpontosabb.Ssz}; {Legpontosabb.Nev}; x={Legpontosabb.X}; y={Legpontosabb.Y}; tavolsag={Legpontosabb.Distance}");

            Console.WriteLine($"\n9. feladat: Nulla pontos lovesek száma: {Lovesek.Where(a => a.Pontszam ==0).Count()} db");

            //-- 10. Számolja meg és írja ki a képernyőre a játékban részvevő játékosok számát a minta szerint! -----
            Console.WriteLine($"\n10. feladat: Játékosok száma: {Lovesek.GroupBy(a => a.Nev).Count()}");

            //-- 11. Határozza meg játékosonként a leadott lövések számát! ------------------------------------------
            Console.WriteLine($"\n11. feladat: Lövések száma");
            foreach (var item in Lovesek.GroupBy(a => a.Nev).Select(b => new { nev = b.Key, db = b.Count() }))
            {
                Console.WriteLine($"\t{item.nev} - {item.db} db");
            }

            //-- 12. Számítsa ki az átlagpontszámokat, majd jelenítse meg a minta szerint! ---------------------------
            Console.WriteLine($"\n12. feladat: Átlag pontszámok");
            var atlagok = Lovesek.GroupBy(a => a.Nev).Select(b => new { nev = b.Key, atlag = b.Average(c => c.Pontszam) });

            foreach (var item in atlagok)
            {
                Console.WriteLine($"\t{item.nev} - {item.atlag}");
            }

            //-- 13. Határozza meg a legmagasabb átlagpontszám alapján a nyertes játékos nevét!  ----------------------
            Console.WriteLine($"\n13. feladat: A jatek nyertese: {atlagok.OrderBy(a => a.atlag).Last().nev}");
            Console.WriteLine("\nProgram vége!");
            Console.ReadKey();
        }