Kevin megoldása alapján
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace arpaskTZ
{
class Repulogep
{
public string GyartoModell { get; set; }
public int Evjarat { get; set; }
public string MotorTipus { get; set; }
public int UtasSzam { get; set; }
public int HatoTav { get; set; }
public int UtazasiMagassag { get; set; }
public double UtazasiMagassagKmben
{
get
{
return (double)UtazasiMagassag / 1000;
}
}
public Repulogep(string sor)
{
var r = sor.Split(";");
GyartoModell = r[0];
Evjarat = int.Parse(r[1]);
MotorTipus = r[2];
UtasSzam = int.Parse(r[3]);
HatoTav = int.Parse(r[4]);
UtazasiMagassag = int.Parse(r[5]);
}
public override string ToString() => $"{GyartoModell}, {Evjarat}, {MotorTipus}, {UtasSzam}, {HatoTav}, {UtazasiMagassag}";
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace arpaskTZ
{
class Fuggvenyek
{
public static double AtlagEvjarat(List<Repulogep> repulogepek)
{
return repulogepek
.Average(r => r.Evjarat);
}
public static double MaxUtasSzam500(List<Repulogep> repulogepek)
{
return repulogepek.Count;
}
public static List<Repulogep> LegnagyobbHatotav(List<Repulogep> repulogepek)
{
int legnagyobbHatotavolsag = repulogepek
.OrderByDescending(r => r.HatoTav)
.Select(r => r.HatoTav)
.First();
return repulogepek
.Where(r => r.HatoTav == legnagyobbHatotavolsag)
.ToList();
}
public static List<Repulogep> KicsiBoeing(List<Repulogep> repulogepek)
{
var legregebbiAirBus = repulogepek
.Where(r => r.GyartoModell.StartsWith("Airbus"))
.OrderBy(r => r.Evjarat)
.First();
return repulogepek
.Where(r => r.UtasSzam < legregebbiAirBus.UtasSzam && r.GyartoModell.StartsWith("Boeing"))
.ToList();
}
public static List<Repulogep> AlcsonyanSzall(List<Repulogep> repulogepek)
{
return repulogepek
.Where(r => r.UtazasiMagassag < 6000)
.ToList();
}
public static (Repulogep legkisebb, Repulogep legnagyobb, bool ugyanazE) LegnagyobbLegkisebb(List<Repulogep> repulogepek)
{
var legkisebbHatotavu = repulogepek
.OrderBy(r => r.HatoTav)
.First();
var legnagyobbHatotavu = repulogepek
.OrderByDescending(r => r.HatoTav)
.First();
bool vanE = legkisebbHatotavu.GyartoModell == legnagyobbHatotavu.GyartoModell;
return (legkisebbHatotavu, legnagyobbHatotavu, vanE);
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace arpaskTZ
{
class Program
{
static void Main(string[] args)
{
var repulogepek = new List<Repulogep>();
try
{
using var sr = new StreamReader(@"..\..\..\src\repulogepek.txt", Encoding.UTF8);
while (!sr.EndOfStream)
{
repulogepek.Add(new Repulogep(sr.ReadLine()));
}
}
catch (Exception)
{
Console.WriteLine("Nem található a file");
}
foreach (var r in repulogepek)
{
Console.WriteLine(r);
}
Console.WriteLine("9. feladat");
Console.WriteLine($"A repülők átlagos évjárata: {Math.Round(Fuggvenyek.AtlagEvjarat(repulogepek))}");
Console.WriteLine("10. feladat");
var f10 = repulogepek
.Where(r => r.UtasSzam > 500)
.ToList();
Console.WriteLine($"{Fuggvenyek.MaxUtasSzam500(f10)} olyan repülőgép van, aminek utasszáma meghaladja az 500-at");
Console.WriteLine("11. feladat");
var f11Lista = Fuggvenyek.LegnagyobbHatotav(repulogepek);
foreach (var f in f11Lista)
{
Console.WriteLine(f);
}
Console.WriteLine("12. feladat");
var kicsiBoeingek = Fuggvenyek.KicsiBoeing(repulogepek);
if (kicsiBoeingek.Count != 0)
{
Console.WriteLine(kicsiBoeingek[0]);
}
else
{
Console.WriteLine("Nincs ilyen Boeing");
}
Console.WriteLine("13. feladat");
var alacsonyanSzallnak = Fuggvenyek.AlcsonyanSzall(repulogepek);
foreach (var a in alacsonyanSzallnak)
{
Console.WriteLine(a);
}
Console.WriteLine("15. feladat");
using var sw = new StreamWriter(@"..\..\..\src\valami.txt", false, Encoding.UTF8);
{
foreach (var r in repulogepek)
{
sw.WriteLine($"{r.GyartoModell}, {r.UtazasiMagassagKmben}");
}
}
Console.WriteLine("Fájlba írás kész.");
Console.WriteLine("16. feladat");
var (legkisebb, legnagyobb, vanE) = Fuggvenyek.LegnagyobbLegkisebb(repulogepek);
Console.WriteLine(legkisebb);
Console.WriteLine(legnagyobb);
Console.WriteLine($"{(vanE ? "Ugyanaz" : "Nem ugyanaz")} a legkisebb és a legnagyobb hatótávú repülő gyártója");
Console.ReadKey();
}
}
}