2021. február 24., szerda

2021.02.24. Gyakorlás - Foci

Ellenőriztük a városos program teljes megoldását. Aki nem írt házit mára, van lehetősége pótolni. 

A focis program eddigi forrását a meeting alatt csatolmányként megkaptad.

Abban a 6-7-8. feladatot kell megoldani.

Adatállomány:

//foci.txt

//Ferencvárosi TC; 1899; 32; 31,25; Sergiy Rebrov

//FC Barcelona; 1899; 26; 805; Ronald Koeman

//Real Madrid; 1902; 34; 742; Zinédine Zidane

//Manchester United; 1878; 20; 738; Ole Gunnar Solskjaer

//Manchester City; 1880; 6; 1006; Pep Guardiola


//foci.csv (az adatok között tabulátort nyomtunk, excelben táblázatszerűen megnyílik


//Ferencvárosi TC 1899 32 31,25 Sergiy Rebrov

//FC Barcelona 1899 26 805 Ronald Koeman

//Real Madrid 1902 34 742 Zinédine Zidane

//Manchester United 1878 20 738 Ole Gunnar Solskjaer

//Manchester City 1880 6 1006 Pep Guardiola

Egy lehetséges megoldás (L.Adrián):
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace foci
{
    class Focicsapat
    {
        public string nev;
        public int alapitas;
        public int bajnok;
        public double ertek;
        public string edzo;
        public Focicsapat(string sor)
        {
            List<stringatmeneti = sor.Split(';').ToList();
            nev = atmeneti[0];
            alapitas = Convert.ToInt32(atmeneti[1]);
            bajnok = Convert.ToInt32(atmeneti[2]);
            ertek = Convert.ToDouble(atmeneti[3]);
            edzo = atmeneti[4];
        }
        public string atalakitas()
        {
            return $"A csapat neve {nev},alapítási év: {alapitas},bajnoki címek száma: {bajnok},edző neve: {edzo},csapat értéke: {ertek}";
        }
        public string nagybetu()
        {
            return $"{nev.ToUpper()}";
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            List<Focicsapatfocicsapatok = new List<Focicsapat>();
            Console.WriteLine("1. feladat");
            foreach (var i in File.ReadAllLines("foci.txt"))
            {
                focicsapatok.Add(new Focicsapat(i));
            }
            Console.WriteLine("2. feladat");
            for (int i = 0; i < focicsapatok.Counti++)
            {
                Console.WriteLine("A csapat neve {0},alapítási év: {1},bajnoki címek száma: {2},edző neve: {3},csapat értéke: {4}"focicsapatok[i].nevfocicsapatok[i].alapitasfocicsapatok[i].bajnokfocicsapatok[i].edzofocicsapatok[i].ertek);
            }
            //3. feladat: 
            //Írjuk ki annak a csapatnak a nevét, akinek a legtöbb bajnoki címe van. 
            Console.WriteLine("3. feladat");
            int max = focicsapatok[0].bajnok;
            int index = 0;
            for (int i = 0; i < focicsapatok.Counti++)
            {
                if (max < focicsapatok[i].bajnok)
                {
                    max = focicsapatok[i].bajnok;
                    index = i;
                }
            }
            Console.WriteLine("A legtöbb címet szerző csapat neve: {0}"focicsapatok[index].nev);
            //4. feladat 
            Console.WriteLine("4. feladat");
            double min = focicsapatok[0].ertek;
            index = 0;
            for (int i = 0; i < focicsapatok.Counti++)
            {
                if (min > focicsapatok[i].ertek)
                {
                    min = focicsapatok[i].ertek;
                    index = i;
                }
            }
            Console.WriteLine("A legkevesebb címet szerző csapat és az edző neve: {0}, {1}"focicsapatok[index].nevfocicsapatok[index].edzo);
            //5. feladat 
            Console.WriteLine("5. feladat");
            for (int i = 0; i < focicsapatok.Counti++)
            {
                if (focicsapatok[i].alapitas > 1899 && focicsapatok[i].alapitas < 2000)
                {
                    Console.WriteLine(focicsapatok[i].nev);
                }
            }
            //6. feladat 
            string[] nev2 = new string[focicsapatok.Count];
            for (int i = 0; i < focicsapatok.Counti++)
            {
                nev2[i] = focicsapatok[i].nev;
            }
            Array.Sort(nev2); for (int i = 0; i < nev2.Lengthi++)
            {
                Console.WriteLine($"Név: {nev2[i]}");
            }
            //7. feladat 
            Console.Write("Kérem egy csapat nevét: ");
            string keres = Console.ReadLine();
            for (int i = 0; i < focicsapatok.Counti++)
            {
                if (keres == focicsapatok[i].nev)
                {
                    Console.WriteLine($"A csapat neve {focicsapatok[i].nev},alapítási év: {focicsapatok[i].alapitas},bajnoki címek száma: {focicsapatok[i].bajnok},edző neve: {focicsapatok[i].edzo},csapat értéke: {focicsapatok[i].ertek}");
                }
            }
            //8. feladat 
            Console.WriteLine("8. feladat");
            Console.Write("Kérem egy csapat nevét: ");
            keres = Console.ReadLine();
            string atalakit = string.Empty;
            for (int i = 0; i < focicsapatok.Counti++)
            {
                if (keres == focicsapatok[i].nev)
                {
                    atalakit = focicsapatok[i].atalakitas();
                    Console.WriteLine(atalakit);
                }
            }
            //9. feladat 
            Console.WriteLine("9. feladat");
            Random rnd = new Random();
            index = rnd.Next(focicsapatok.Count);
            Console.WriteLine($"A csapat neve {focicsapatok[index].nev},alapítási év: {focicsapatok[index].alapitas},bajnoki címek száma: {focicsapatok[index].bajnok},edző neve: {focicsapatok[index].edzo},csapat értéke: {focicsapatok[index].ertek}");
            Console.WriteLine($"Sorszáma: {index + 1}");
            string ki = String.Empty;
            for (int i = 0; i < focicsapatok.Counti++)
            {
                if (i == index)
                {
                    ki = focicsapatok[i].nagybetu();
                    Console.WriteLine(ki);
                }
            }
            //10. feladat 
            string ki2 = String.Empty;
            StreamWriter sw = new StreamWriter("nevek.txt");
            for (int i = 0; i < focicsapatok.Counti++)
            {
                ki2 = focicsapatok[i].nagybetu();
                sw.WriteLine(ki2);
            }
            sw.Close();
            Console.ReadLine();
        }
    }
}

Varsó:
Varsó foci


using System
  
using System.Collections.Generic
  
using System.Linq
  
using System.Text
  
using System.IO
  
  
  
//foci.txt  
  
//Ferencvárosi TC; 1899; 32; 31,25; Sergiy Rebrov  
  
//FC Barcelona; 1899; 26; 805; Ronald Koeman  
  
//Real Madrid; 1902; 34; 742; Zinédine Zidane  
  
//Manchester United; 1878; 20; 738; Ole Gunnar Solskjaer  
  
//Manchester City; 1880; 6; 1006; Pep Guardiola  
  
  
  
//foci.csv (az adatok között tabulátort nyomtunk, excelben táblázatszerűen megnyílik  
  
  
  
//Ferencvárosi TC 1899 32 31,25 Sergiy Rebrov  
  
//FC Barcelona 1899 26 805 Ronald Koeman  
  
//Real Madrid 1902 34 742 Zinédine Zidane  
  
//Manchester United 1878 20 738 Ole Gunnar Solskjaer  
  
//Manchester City 1880 6 1006 Pep Guardiola  
  
  
  
namespace _20210215 
  
  
    class Focicsapat 
  
    { 
  
        public string nev
  
        public int alapitas
  
        public int bajnok
  
        public double ertek
  
        public string edzo
  
  
  
  
  
        public Focicsapat(string sor
  
        { 
  
            List<stringatmeneti = sor.Split(';').ToList(); 
  
            nev = atmeneti[0]; 
  
            alapitas = Convert.ToInt32(atmeneti[1]); 
  
            bajnok = Convert.ToInt32(atmeneti[2]); 
  
            ertek = Convert.ToDouble(atmeneti[3]); 
  
            edzo = atmeneti[4]; 
  
        } 
         
        public string kiir() 
        { 
            string ki = $"\nCsapat neve: {nev}\n---------------------\nAlapítási ideje: {alapitas}\nBajnoki címek száma: {bajnok}\nCsapat értéke: {ertek}\nEdző neve: {edzo}\n"
            return ki
        } 
  
  
    } 
  
    class Program 
  
    { 
        static void adatle(string beNevList<Focicsapata
        { 
            bool talalt = false
            for (int i = 0; i < a.Counti++) 
            { 
                if (a[i].nev.ToUpper() == beNev.ToUpper()) 
                { 
                    talalt = true
                    Console.WriteLine(a[i].kiir()); 
                } 
            } 
            if (!talalt
            { 
                Console.WriteLine("Hiba történt az alkalmazás futtatása közben! A lista nem tartalmazza a lekérdezni kívánt csapatot."); 
            } 
        } 
  
        static int csapatsorsolas(int lng
        { 
            Random rnd = new Random(); 
            return rnd.Next(0, lng); //index 
        } 
        static string csapatkereses(int sorszamList<Focicsapata
        { 
            string ki = ""
            for (int i = 0; i < a.Counti++) 
            { 
                if (i == (sorszam - 1)) 
                { 
                    ki = a[i].nev;  
                } 
            } 
            return ki
        } 
        static string csapatsorsolaski(int csapatsorszamList<Focicsapata
        { 
            return $"A {csapatsorszam}. sorszámmal ellátott csapat a(z) {nagybetus(csapatkereses(csapatsorszama))}!"
        } 
        static string nagybetus(string a
        { 
            return a.ToUpper(); 
        } 
         
  
  
        static void Main(string[] args
  
        { 
  
            List<Focicsapatfocicsapatok = new List<Focicsapat>(); 
  
            Console.WriteLine("1. feladat: Beolvasás"); 
  
            foreach (var i in File.ReadAllLines("foci.csv")) 
  
            { 
  
                focicsapatok.Add(new Focicsapat(i)); 
  
            } 
            Console.WriteLine("\n2. feladat: Adatok kiírása"); 
  
            for (int i = 0; i < focicsapatok.Counti++) 
  
            { 
  
                //Console.WriteLine("\nA csapat neve {0}, alapítási év: {1},bajnoki címek száma: {2}, edző neve: {3}, csapat értéke: {4}", focicsapatok[i].nev, focicsapatok[i].alapitas, focicsapatok[i].bajnok, focicsapatok[i].edzo, focicsapatok[i].ertek); 
                Console.WriteLine(focicsapatok[i].kiir()); 
            } 
  
            //3. feladat: Írjuk ki annak a csapatnak a nevét, akinek a legtöbb bajnoki címe van.(bajnok)  
  
            Console.WriteLine("\n3. feladat"); 
  
            int max = focicsapatok[0].bajnok
  
            int index = 0; 
  
            for (int i = 0; i < focicsapatok.Counti++) 
  
            { 
  
                if (max < focicsapatok[i].bajnok
  
                { 
  
                    max = focicsapatok[i].bajnok
  
                    index = i
  
                } 
  
            } 
  
            Console.WriteLine($"A(z) {focicsapatok[index].nev} szerezte a legtöbb címet."); 
  
  
  
            //4.feladat: Keressük meg a legkevésbé eredményes csapatot, írjuk ki a nevét és az edző nevét. (ertek)   
  
  
  
            Console.WriteLine("4.feladat"); 
  
            double min = focicsapatok[0].ertek
  
            int index2 = 0; 
  
            for (int i = 1; i < focicsapatok.Counti++) 
  
            { 
  
                if (min > focicsapatok[i].ertek
  
                { 
  
                    min = focicsapatok[i].ertek
  
                    index2 = i
  
                } 
  
            } 
  
            Console.WriteLine("A legkevésbé eredményes csapat neve nem más, mint:{0}, edzője:{1}"focicsapatok[index2].nevfocicsapatok[index2].edzo); 
  
  
  
  
  
            //5. feladat: Melyik csapatot alapították a 20. században? (1900-1999) (alapitas)   
  
  
  
            Console.WriteLine("5. feladat"); 
  
  
  
            for (int i = 0; i < focicsapatok.Counti++) 
  
            { 
  
                if (focicsapatok[i].alapitas > 1899 && focicsapatok[i].alapitas < 2000) 
  
                { 
  
                    Console.WriteLine($"A(z) {focicsapatok[i].nev} csapatot a 20. században alapították."); 
  
                } 
  
            } 
  
  
  
  
  
  
  
            //6. feladat: Tegyük növekvő abc sorrendbe a csapatok neveit. (nev)  
            Console.WriteLine("6. feladat\nCsapatok nevei ABC sorrendben"); 
            List<stringfociABCnev = new List<string>(); 
            for (int i = 0; i < focicsapatok.Counti++) 
            { 
                fociABCnev.Add(focicsapatok[i].nev); 
            } 
            fociABCnev.Sort(); 
            foreach (var x in fociABCnev
            { 
                Console.Write($"{x}, "); 
            } 
            Console.WriteLine(); 
            //7. feladat: Kérjük be a felhasználótól, hogy melyik csapat adatait szeretné látni. 
            Console.WriteLine("7. feladat\nKívánt focicsapat adatainak kiírása"); 
            Console.Write("Kérem a csapat nevét: "); 
            string be1 = Console.ReadLine(); 
            //Írjuk ki ennek a csapatnak az összes adatát a képernyőre. 
            adatle(be1focicsapatok); 
            //8. feladat: Oldjuk meg az előző feladatot úgy, hogy a 2. feladatot újrahasznosítjuk függvényként. 
            Console.WriteLine("8. feladat"); 
            //9. feladat: A főprogramban sorsoljunk ki véletlenszerűen egy csapatot (az indexét).  
            Console.WriteLine("9. feladat\nCsapatsorsolás"); 
            //Írjuk ki a csapat sorszámát a képernyőre (a sorszám 1-től kezdődik). 
            int randomcsapat = csapatsorsolas(focicsapatok.Count()) + 1; //ssz 
            Console.WriteLine($"Sorsolás eredménye: {randomcsapat}. sorszámú csapat.\n"); 
            //Írjunk egy függvényt, ami megkeresi a kisorsolt indexhez tartozó nevet és nagybetűsen visszaadja a főprogramnak. 
            //Írjuk ki a kisorsolt csapat nagybetűs nevét a függvény segítségével a főprogramban.  
            Console.WriteLine(csapatsorsolaski(randomcsapatfocicsapatok)); 
            //10. feladat:   
            //Egy új fájlba írjuk ki az összes csapat nevét nagybetűsen a 9. feladatban megadott függvény segítségével. 
            StreamWriter sw = new StreamWriter("CsapatnevNagySzoveg.csv"); //Itt kiírásra kerül a sorszám is egy másik fv segítségével. 
            for (int i = 0; i < focicsapatok.Counti++) 
            { 
                sw.WriteLine(csapatsorsolaski(i + 1, focicsapatok)); 
            } 
            sw.Close(); 
            Console.ReadLine(); 
  
        } 
  
    } 
  
  
  
 
 


 

Nincsenek megjegyzések:

Megjegyzés küldése