ProgaOra/20240117/ConsoleApp1/Program.cs
2024-01-19 15:06:27 +01:00

198 lines
6.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Text.RegularExpressions;
namespace ConsoleApp1
{
public class Adat
{
public int helyezes;
public int sportolok_szama;
public string sportag;
public string versenyszam;
public int olimpiaiPont = 0;
public Adat(int hely, int szam, string sport, string vszam)
{
helyezes = hely;
sportolok_szama = szam;
sportag = sport;
versenyszam = vszam;
}
}
class Program
{
static void TobbPont_Kiir(int uszas, int torna)
{
if (uszas > torna)
{
Console.WriteLine("Úszás sportágban szereztek több érmet.");
}
else if (uszas < torna)
{
Console.WriteLine("Torna sportágban szereztek több érmet.");
}
else
{
Console.WriteLine("Egyenlő volt az érmek száma.");
}
}
static void Main(string[] args)
{
FileStream fs = new FileStream("helsinki.txt", FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs);
List<Adat> adatok = new List<Adat>();
string sor = sr.ReadLine();
while (sor != null)
{
string[] xd = sor.Split(' ');
Adat asd = new Adat(Convert.ToInt32(xd[0]), Convert.ToInt32(xd[1]), xd[2], xd[3]);
adatok.Add(asd);
sor = sr.ReadLine();
}
sr.Close();
fs.Close();
int pontszerzok = 0;
int arany = 0;
int ezust = 0;
int bronz = 0;
int pontok = 0;
int uszas = 0;
int torna = 0;
foreach (var item in adatok)
{
switch (item.helyezes)
{
case 1:
arany++;
pontok += 7;
item.olimpiaiPont = 7;
if (item.sportag == "uszas")
{
uszas++;
}
if (item.sportag == "torna")
{
torna++;
}
goto pont;
case 2:
ezust++;
pontok += 5;
item.olimpiaiPont = 5;
if (item.sportag == "uszas")
{
uszas++;
}
if (item.sportag == "torna")
{
torna++;
}
goto pont;
case 3:
bronz++;
pontok += 4;
item.olimpiaiPont = 4;
if (item.sportag == "uszas")
{
uszas++;
}
if (item.sportag == "torna")
{
torna++;
}
goto pont;
case int n when n > 3 && n < 7 && n != 0:
switch (n)
{
case 4:
pontok += 3;
item.olimpiaiPont = 3;
break;
case 5:
pontok += 2;
item.olimpiaiPont = 2;
break;
case 6:
pontok += 1;
item.olimpiaiPont = 1;
break;
default:
break;
}
goto pont;
pont:
pontszerzok++;
break;
default:
break;
}
}
Console.WriteLine("3.feladat:");
Console.WriteLine($"Pontszerző helyezések száma: {pontszerzok}");
Console.WriteLine("4.feladat:");
Console.WriteLine($"Arany: {arany}");
Console.WriteLine($"Ezüst: {ezust}");
Console.WriteLine($"Bronz: {bronz}");
Console.WriteLine($"Összesen: {arany + ezust + bronz}");
Console.WriteLine("5.feladat:");
Console.WriteLine($"Olimpiai pontok száma: {pontok}");
Console.WriteLine("6.feladat:");
TobbPont_Kiir(uszas, torna);
FileStream fileStream = new FileStream("helsinki2.txt", FileMode.Create, FileAccess.Write);
StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.Unicode);
foreach (var item in adatok)
{
string reg = @"kajak.kenu";
Regex re = new Regex(reg);
if (item.sportag == "kajakkenu" || re.IsMatch(item.sportag))
{
streamWriter.WriteLine($"{item.helyezes} {item.sportolok_szama} {item.olimpiaiPont} kajak-kenu {item.versenyszam}");
}
else
{
streamWriter.WriteLine($"{item.helyezes} {item.sportolok_szama} {item.olimpiaiPont} {item.sportag} {item.versenyszam}");
}
}
streamWriter.Close();
fileStream.Close();
int legtobb = 0;
int hely = 0;
for (int i = 0; i < adatok.Count; i++)
{
if (adatok[i].sportolok_szama > legtobb)
{
legtobb = adatok[i].sportolok_szama;
hely = i;
}
}
Console.WriteLine("8.feladat:");
Console.WriteLine($"Helyezés: {adatok[hely].helyezes}");
Console.WriteLine($"Sportág: {adatok[hely].sportag}");
Console.WriteLine($"Versenyszám: {adatok[hely].versenyszam}");
Console.WriteLine($"Sportolók száma: {adatok[hely].sportolok_szama}");
}
}
}