using System;
using System.Collections.Generic;
using System.IO;
namespace OkosSzemuvegHagyomanyos
{
class Program
{
static void Main(string[] args)
{
List<string> Tulajdonsagok = new List<string>();
List<Szemuveg> szemuvegek = new List<Szemuveg>();
using (StreamReader sr = new StreamReader(
path: @"..\..\..\src\okosszemüvegek.txt"))
{
Tulajdonsagok.AddRange(sr.ReadLine().Split(";"));
while (!sr.EndOfStream)
{
szemuvegek.Add(new Szemuveg(sr.ReadLine()));
}
}
foreach (var szemuveg in szemuvegek)
{
Console.WriteLine(szemuveg.ToString());
}
Console.WriteLine("\n7.feladat:");
var hetes = Hetes(szemuvegek);
Console.WriteLine($"Okosszemüvegek száma: {hetes.Count}");
Console.WriteLine("\n8. feladat:");
var atlagUzemido = AtlagUzemido(szemuvegek);
var nyolcas = Nyolcas(szemuvegek, atlagUzemido);
Console.WriteLine($"Okosszemüvegek:");
foreach (var item in nyolcas)
{
Console.WriteLine(item);
}
Console.WriteLine($"Szemüvegek száma: {nyolcas.Count}");
Console.WriteLine($"Átlagos üzemidő: {atlagUzemido}");
Console.WriteLine("\n10. feladat:");
foreach (var item in Tizes(szemuvegek))
{
Console.WriteLine($"Sorszam: {item.Sorszam}; Kijelző méret (cm): {item.MeretCenti()}");
}
Console.WriteLine("\n11. feladat:");
var tizenegyes = Tizenegyes(szemuvegek);
foreach (var item in tizenegyes)
{
Console.WriteLine(item);
}
Console.WriteLine("\n12. feladat:");
var tizenkettes = Tizenkettes(szemuvegek);
if (tizenkettes.Count == 0)
{
Console.WriteLine("Nincs ilyen okosszemüveg.");
}
else
{
foreach (var item in tizenkettes)
{
Console.WriteLine(item);
}
}
Console.WriteLine("\n13. feladat");
var tizenharmas = HaromSzenzoros(szemuvegek);
using (StreamWriter sw = new StreamWriter(@"..\..\..\src\haromSzenzoros.txt"))
{
foreach (var item in tizenharmas)
{
sw.WriteLine(item);
}
}
Console.ReadLine();
}
static List<Szemuveg> Hetes(List<Szemuveg> s)
{
List<Szemuveg> result = new List<Szemuveg>();
foreach (var item in s)
{
if (item.Felbontas >= 12 && item.Teljesitmeny == 2)
{
result.Add(item);
}
}
return result;
}
static List<Szemuveg> Nyolcas(List<Szemuveg> s, double atlagUzemido)
{
List<Szemuveg> result = new List<Szemuveg>();
foreach (var item in s)
{
if (item.Uzemido > atlagUzemido)
{
result.Add(item);
}
}
return result;
}
static double AtlagUzemido(List<Szemuveg> s)
{
double sum = 0;
foreach (var item in s)
{
sum += item.Uzemido;
}
return sum / s.Count;
}
static List<Szemuveg> Tizes(List<Szemuveg> s)
{
List<Szemuveg> result = new List<Szemuveg>();
foreach (var item in s)
{
if (item.TarhelySzamito() < 100)
{
result.Add(item);
}
}
return result;
}
static List<string> Tizenegyes(List<Szemuveg> szemuvegek)
{
List<string> szenzorok = new List<string>();
foreach (var szemuveg in szemuvegek)
{
foreach (var szenzor in szemuveg.Szenzorok)
{
if (szenzor.ToLower() == "gyroscope")
{
szenzorok.Add("giroszkóp");
}
else if (szenzor.ToLower() == "accelerometer")
{
szenzorok.Add("gyorsulásmérő");
}
else
{
szenzorok.Add(szenzor);
}
}
}
List<string> szenzorokKesz = szenzorok.Distinct().ToList();
//ez is jó a Distinct helyett:
//foreach (var item in szenzorok)
//{
// if (!szenzorokKesz.Contains(item))
// {
// szenzorokKesz.Add(item);
// }
//}
szenzorokKesz.Sort();
return szenzorokKesz;
}
static List<Szemuveg> Tizenkettes(List<Szemuveg> szemuvegek)
{
List<Szemuveg> result = new List<Szemuveg>();
foreach (var szemuveg in szemuvegek)
{
if (szemuveg.Tarhely.Contains("TB"))
{
result.Add(szemuveg);
}
}
return result;
}
static List<Szemuveg> HaromSzenzoros(List<Szemuveg> szemuvegek)
{
List<Szemuveg> result = new List<Szemuveg>();
foreach (var szemuveg in szemuvegek)
{
if (szemuveg.Szenzorok.Length >= 3)
{
result.Add(szemuveg);
}
}
return result;
}
}
}