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<string> atmeneti = 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 beNev, List<Focicsapat> a)
{
bool talalt = false;
for (int i = 0; i < a.Count; i++)
{
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 sorszam, List<Focicsapat> a)
{
string ki = "";
for (int i = 0; i < a.Count; i++)
{
if (i == (sorszam - 1))
{
ki = a[i].nev;
}
}
return ki;
}
static string csapatsorsolaski(int csapatsorszam, List<Focicsapat> a)
{
return $"A {csapatsorszam}. sorszámmal ellátott csapat a(z) {nagybetus(csapatkereses(csapatsorszam, a))}!";
}
static string nagybetus(string a)
{
return a.ToUpper();
}
static void Main(string[] args)
{
List<Focicsapat> focicsapatok = 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.Count; i++)
{
//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.Count; i++)
{
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.Count; i++)
{
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].nev, focicsapatok[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.Count; i++)
{
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<string> fociABCnev = new List<string>();
for (int i = 0; i < focicsapatok.Count; i++)
{
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(be1, focicsapatok);
//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(randomcsapat, focicsapatok));
//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.Count; i++)
{
sw.WriteLine(csapatsorsolaski(i + 1, focicsapatok));
}
sw.Close();
Console.ReadLine();
}
}
}