using System;
using System.Collections.Generic;
using System.IO;
namespace MotorokAlap
{
class Program
{
static void Main()
{
List<Motor> motorok = new();
using (StreamReader sr = new StreamReader(@"..\..\..\src\motorok.txt"))
{
while (!sr.EndOfStream)
{
motorok.Add(new Motor(sr.ReadLine()));
}
}
for (int i = 0; i < 5; i++)
{
Console.WriteLine(motorok[i]);
}
Console.WriteLine("9.\n");
Console.WriteLine($"Átlagos sebesség: {Math.Round(AtlagSebesseg(motorok))} km/h");
Console.WriteLine("10.\n");
List<Motor> yamahaLista = new();
foreach (var motor in motorok)
{
if (motor.Gyarto == "Yamaha" && motor.Hengerurtartalom > 1000)
{
yamahaLista.Add(motor);
}
}
Console.WriteLine($"{Yamaha1000felett(yamahaLista)} 1000 cc fölötti Yamaha motor van.");
Console.WriteLine("11.Legkisebb fogyasztású motorok:\n");
var kicsi = LegkisebbFogyasztasuMotor(motorok);
foreach (var motor in kicsi)
{
Console.WriteLine(motor);
}
Console.WriteLine("12.Honda motorok, melyeknek fogyasztása kisebb, mint a legnagyobb Suzuki modellé:\n");
List<Motor> hondaSuzuki = HondaSuzuki(motorok);
if (hondaSuzuki.Count == 0)
{
Console.WriteLine("Nincs olyan Honda motor, aminek a fogyasztása kisebb, mint a legnagyobb Suzuki modellé.");
}
else
{
Console.WriteLine(hondaSuzuki[0]);
}
Console.WriteLine("13.BMW márkájú motorok vagy 300 km/h feletti maximális sebességű motorok:\n");
foreach (var item in KivalogatoBMW(motorok))
{
Console.WriteLine(item);
}
Console.WriteLine("15.Fájlba írás\n");
using (StreamWriter writer = new StreamWriter(@"..\..\..\src\motorok_gallon.txt"))
{
foreach (var motor in motorok)
{
writer.WriteLine($"{motor.Gyarto};{motor.Modell};{motor.LiterbolGallonba()} gallon/100 km");
}
}
}
static double AtlagSebesseg(List<Motor> motorok)
{
double osszeg = 0;
foreach (var motor in motorok)
{
osszeg += motor.MaximalisSebesseg;
}
return osszeg / motorok.Count;
}
static int Yamaha1000felett(List<Motor> yamaha)
{
return yamaha.Count;
}
static List<Motor> LegkisebbFogyasztasuMotor(List<Motor> motorok)
{
double minFogyasztas = motorok[0].UzemanyagFogyasztas;
foreach (var motor in motorok)
{
if (motor.UzemanyagFogyasztas < minFogyasztas)
{
minFogyasztas = motor.UzemanyagFogyasztas;
}
}
List<Motor> kisFogyasztasuMotorok = new();
foreach (var motor in motorok)
{
if (motor.UzemanyagFogyasztas == minFogyasztas)
{
kisFogyasztasuMotorok.Add(motor);
}
}
return kisFogyasztasuMotorok;
}
static List<Motor> HondaSuzuki(List<Motor> motorok)
{
Motor legnagyobbSuzuki = motorok[0];
foreach (var motor in motorok)
{
if (motor.Gyarto == "Suzuki" && motor.Hengerurtartalom > legnagyobbSuzuki.Hengerurtartalom)
{
legnagyobbSuzuki = motor;
}
}
List<Motor> honda = new();
foreach (var motor in motorok)
{
if (motor.Gyarto == "Honda" && motor.UzemanyagFogyasztas < legnagyobbSuzuki.UzemanyagFogyasztas)
{
honda.Add(motor);
}
}
return honda;
}
static List<Motor> KivalogatoBMW(List<Motor> motorok)
{
List<Motor> bmw = new();
foreach (var motor in motorok)
{
if (motor.Gyarto == "BMW" || (motor.Gyarto != "BMW" && motor.MaximalisSebesseg > 300))
{
bmw.Add(motor);
}
}
return bmw;
}
}
}