204 lines
5.9 KiB
C#
204 lines
5.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.IO;
|
|
|
|
namespace MaratonValto
|
|
{
|
|
internal class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
string filename = "maratonvalto.csv";
|
|
List<Eredmeny> eredmenyek = LoadFromCsv(filename);
|
|
|
|
Feladat6(eredmenyek);
|
|
Feladat7(eredmenyek);
|
|
Feladat8(eredmenyek);
|
|
|
|
Console.ReadLine();
|
|
}
|
|
|
|
public static void Feladat8(List<Eredmeny> eredmenyek)
|
|
{
|
|
List<int> csapatok = new List<int>();
|
|
List<int> csapatok_ido = new List<int>();
|
|
foreach (var item in eredmenyek)
|
|
{
|
|
if (!csapatok.Contains(item.Versenyzo.Csapat))
|
|
{
|
|
csapatok.Add(item.Versenyzo.Csapat);
|
|
csapatok_ido.Add(item.Ido);
|
|
}
|
|
else
|
|
{
|
|
int index = 0;
|
|
while (item.Versenyzo.Csapat != csapatok[index])
|
|
{
|
|
index++;
|
|
}
|
|
|
|
csapatok_ido[index] += item.Ido;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
int min = csapatok_ido[0];
|
|
int ind = 0; // indexe a csapatnak a csapatoklistában
|
|
for (int i = 1; i < csapatok.Count; i++)
|
|
{
|
|
if (csapatok_ido[i] < min)
|
|
{
|
|
min = csapatok_ido[i];
|
|
ind = i;
|
|
}
|
|
}
|
|
|
|
int ora = csapatok_ido[ind] / 3600;
|
|
int perc = csapatok_ido[ind] / 60 - (ora * 60);
|
|
int masodperc = csapatok_ido[ind] - (perc * 60) - (ora * 3600);
|
|
|
|
Console.WriteLine($"8. feladat: ");
|
|
Console.WriteLine($"A legjobb csapat száma: {csapatok[ind]} ideje: {ora}:{perc}:{masodperc}");
|
|
|
|
|
|
foreach (var item in eredmenyek)
|
|
{
|
|
if (item.Versenyzo.Csapat == csapatok[ind])
|
|
{
|
|
Console.WriteLine($"\t{item.Kor}. Kör: {item.Versenyzo.Fid} {item.Versenyzo.Fnev} {item.Versenyzo.Szulev}");
|
|
}
|
|
}
|
|
|
|
/*
|
|
SELECT * FROM eredmenyek
|
|
GROUP BY versemyzo.csapat
|
|
ORDER BY SUM(versenyzo.ido) DESC LIMIT 1;
|
|
|
|
*/
|
|
|
|
}
|
|
|
|
public static void Feladat7(List<Eredmeny> eredmenyek)
|
|
{
|
|
Console.WriteLine("7. feladat:");
|
|
|
|
IEnumerable<MaratonValto.Eredmeny> gyorsak = from eredmeny in eredmenyek
|
|
where eredmeny.Ido/60 <= 30
|
|
select eredmeny;
|
|
|
|
GyorsakCreate(gyorsak);
|
|
|
|
Console.WriteLine("A gyorsak.txt állomány létrehozva.");
|
|
}
|
|
|
|
public static void GyorsakCreate(IEnumerable<MaratonValto.Eredmeny> gyorsak)
|
|
{
|
|
FileStream fs = new FileStream("gyorsak.txt", FileMode.Create, FileAccess.Write);
|
|
StreamWriter sw = new StreamWriter(fs);
|
|
|
|
foreach (var item in gyorsak)
|
|
{
|
|
string line = $"{item.Versenyzo.Fid} {item.Versenyzo.Fnev} {item.Ido}";
|
|
sw.WriteLine(line);
|
|
}
|
|
|
|
|
|
sw.Close();
|
|
fs.Close();
|
|
|
|
}
|
|
|
|
public static void Feladat6(List<Eredmeny> eredmenyek)
|
|
{
|
|
double atlagoskorido = AtlagosKorIdo(eredmenyek);
|
|
Console.WriteLine($"6.feladat:");
|
|
Console.WriteLine($"\tA versenyzők átlagos körideje: {atlagoskorido} másodperc");
|
|
}
|
|
|
|
public static double AtlagosKorIdo(List<Eredmeny> eredmenyek)
|
|
{
|
|
double result = 0.00;
|
|
foreach (var item in eredmenyek)
|
|
{
|
|
double ido = Convert.ToDouble(item.Ido);
|
|
result += ido;
|
|
}
|
|
|
|
return result / eredmenyek.Count;
|
|
}
|
|
|
|
public static List<Eredmeny> LoadFromCsv(string filename)
|
|
{
|
|
List<Eredmeny> result = new List<Eredmeny>();
|
|
|
|
FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
|
|
StreamReader streamReader = new StreamReader(fileStream);
|
|
|
|
string line = streamReader.ReadLine();
|
|
line = streamReader.ReadLine();
|
|
|
|
while (line != null) {
|
|
string[] adatok = line.Split(';');
|
|
int fid = int.Parse(adatok[0]);
|
|
string fnev = adatok[1];
|
|
int szulev = int.Parse(adatok[2]);
|
|
int szulho = int.Parse(adatok[3]);
|
|
int csapat = int.Parse(adatok[4]);
|
|
int ffi = int.Parse(adatok[5]);
|
|
|
|
int kor = int.Parse(adatok[6]);
|
|
int ido = int.Parse(adatok[7]);
|
|
|
|
|
|
Futo futo = new Futo(fid, fnev, szulev, szulho, csapat, ffi);
|
|
Eredmeny eredmeny = new Eredmeny(futo, kor, ido);
|
|
|
|
result.Add(eredmeny);
|
|
line = streamReader.ReadLine();
|
|
}
|
|
|
|
streamReader.Close();
|
|
fileStream.Close();
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
public class Futo
|
|
{
|
|
public int Fid;
|
|
public string Fnev;
|
|
public int Szulev;
|
|
public int Szulho;
|
|
public int Csapat;
|
|
public int Ffi; //1 - férfi || 0 - nő
|
|
public Futo(int fid, string fnev, int szulev, int szulho, int csapat, int ffi)
|
|
{
|
|
Fid = fid;
|
|
Fnev = fnev;
|
|
Szulev = szulev;
|
|
Szulho = szulho;
|
|
Csapat = csapat;
|
|
Ffi = ffi;
|
|
}
|
|
}
|
|
|
|
public class Eredmeny
|
|
{
|
|
public Futo Versenyzo;
|
|
public int Kor;
|
|
public int Ido;
|
|
public Eredmeny(Futo versenyzo, int kor, int ido) {
|
|
Versenyzo = versenyzo;
|
|
Kor = kor;
|
|
Ido = ido;
|
|
}
|
|
}
|
|
|
|
}
|