186 lines
5.4 KiB
C#
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();
|
|
}
|
|
}
|
|
} |