ProgaOra/20240123/ConsoleApp1/Program.cs
2024-01-23 16:40:02 +01:00

186 lines
5.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
namespace ConsoleApp1
{
public class Jatekos
{
public string nev;
public string kategoria;
public string egyesulet;
public int[] pontok = { };
public int osszpont;
public Jatekos(string Nev, string Kategoria, string Egyesulet, int[] Pontok)
{
nev = Nev;
kategoria = Kategoria;
egyesulet = Egyesulet;
pontok = Pontok;
osszpont = Osszpontszam(Pontok);
}
public static int Osszpontszam(int[] p)
{
int nulldb = 0;
foreach (var item in p)
{
if (item == 0)
{
nulldb++;
}
}
Array.Sort(p);
int x = p.Sum();
int legkisebb = p.Min();
int legkisebb2 = p[1];
if (nulldb == 0)
{
x -= legkisebb;
x -= legkisebb2;
x += 20;
return x;
}
else if (nulldb == 1)
{
x -= legkisebb2;
x += 10;
return x;
}
else
{
return x;
}
}
}
internal class Program
{
static void Main(string[] args)
{
FileStream fs = new FileStream("fob2016.txt", FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs);
List<Jatekos> adatok = new List<Jatekos>();
string sor = sr.ReadLine();
while (sor != null)
{
string[] soradat = sor.Split(';');
int[] temppont = { };
for (int i = 3; i < soradat.Length; i++)
{
int pont = int.Parse(soradat[i]);
temppont = temppont.Append(pont).ToArray();
}
Jatekos jatekos = new Jatekos(soradat[0], soradat[1], soradat[2], temppont);
adatok.Add(jatekos);
sor = sr.ReadLine();
}
double db = 0;
double ndb = 0;
foreach (var item in adatok)
{
db++;
if (item.kategoria == "Noi")
{
ndb++;
}
}
Console.WriteLine($"3. feladat: Versenyzők száma: {db}");
Console.WriteLine($"4. feladat: A női versenyzők aránya: {Math.Round((ndb / db) * 100, 2)}%");
int bajnok = 0;
for (int i = 0; i < adatok.Count; i++)
{
if (adatok[i].osszpont > adatok[bajnok].osszpont)
{
bajnok = i;
}
}
Console.WriteLine($"6. feladat: A bajnok női versenyző");
Console.WriteLine($"\tNév: {adatok[bajnok].nev}");
Console.WriteLine($"\tEgyesület: {adatok[bajnok].egyesulet}");
Console.WriteLine($"\tÖsszpont: {adatok[bajnok].osszpont}");
FileStream fileStream = new FileStream("osszpontFF.txt", FileMode.Create, FileAccess.Write); ;
StreamWriter streamWriter = new StreamWriter(fileStream);
foreach (var jatekos in adatok)
{
if (jatekos.kategoria == "Felnott ferfi")
{
streamWriter.WriteLine($"{jatekos.nev};{jatekos.osszpont}");
}
}
streamWriter.Close();
fileStream.Close();
List<string> egy = new List<string>();
List<int> jatekosok = new List<int>();
foreach (var item in adatok)
{
if (egy.Contains(item.egyesulet))
{
continue;
}
else if (item.egyesulet != "n.a.")
{
egy.Add(item.egyesulet);
}
}
foreach (var egyesulet in egy)
{
int cntr = 0;
foreach (var item in adatok)
{
if (egyesulet == item.egyesulet)
{
cntr++;
}
}
jatekosok.Add(cntr);
}
List<int> removeindex = new List<int>();
for (int i = 0; i < egy.Count; i++)
{
if (jatekosok[i] <= 2)
{
removeindex.Add(i);
}
}
Console.WriteLine($"8. feladat: Egyesület statisztika");
removeindex.Reverse();
for (int i = 0; i < removeindex.Count; i++)
{
egy.RemoveAt(removeindex[i]);
jatekosok.RemoveAt(removeindex[i]);
}
for (int i = 0; i < egy.Count; i++)
{
Console.WriteLine($"\t{egy[i]} - {jatekosok[i]} fő");
}
sr.Close();
fs.Close();
}
}
}