Átismételtük majdnem az egész okosszemüveges feladatsort.
Hétfőn befejezzük az elemzést. Mindkettő feladatsor saját megoldását (okosszemüveg, VR szemüveg) be kell fejezni péntekre. Itt az okosszemüveges minta, ez alapján kell a saját megoldásaidat "megtuningolni".
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace okosSzemuveg
{
class Szemuveg
{
public string Sorszam { get; set; }
public double Meret { get; set; }
public double Teljesitmeny { get; set; }
public int Felbontas { get; set; }
public string[] Szenzorok { get; set; }
public string Tarhely { get; set; }
public int Uzemido { get; set; }
public double MeretCenti() => Meret * 2.54;
public double TarhelySzamito()
{
var tar = Tarhely.Split(" ");
if (tar[1] == "GB")
{
return double.Parse(tar[0]);
}
else
{
return double.Parse(tar[0]) * 1024;
}
}
public Szemuveg(string sor)
{
var v = sor.Split(';');
Sorszam = v[0];
Meret = double.Parse(v[1]);
Teljesitmeny = double.Parse(v[2]);
Felbontas = int.Parse(v[3]);
Szenzorok = v[4].Split(',');
Tarhely = v[5];
Uzemido = int.Parse(v[6]);
}
public override string ToString()
{
string szenzorok = "";
for (int i = 0; i < Szenzorok.Length; i++)
{
szenzorok += $"{Szenzorok[i]},";
}
return $"Sorszam: {Sorszam}; Meret: {Meret}; Teljesítmény: {Teljesitmeny}; Felbontás: {Felbontas}, Szenzorok: {szenzorok}; Tárhely: {Tarhely}; Üzemidő: {Uzemido}";
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace okosSzemuveg
{
class Program
{
static void Main(string[] args)
{
List<string> Tulajdonsagok = new();
List<Szemuveg> szemuvegek = new();
using StreamReader sr = new(
path: @"..\..\..\src\okosszemüvegek.txt",
encoding: Encoding.UTF8);
Tulajdonsagok = sr.ReadLine().Split(";").ToList();
while (!sr.EndOfStream) szemuvegek.Add(new Szemuveg(sr.ReadLine()));
foreach (var szemuveg in szemuvegek)
{
Console.WriteLine(szemuveg);
}
Console.WriteLine("\n7.feladat:");
var hetes = Hetes(szemuvegek);
Console.WriteLine($"Okosszemüvegek száma: {hetes.Count}");
Console.WriteLine("\n8. feladat:");
var atlagUzemido = szemuvegek.Average(s => s.Uzemido);
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 = szemuvegek.Where(s => s.Szenzorok.Length >= 3).ToList();
using (StreamWriter sw = new StreamWriter(@"..\..\..\src\haromSzenzoros.txt"))
{
foreach (var item in tizenharmas)
{
sw.WriteLine(item);
}
}
Console.ReadLine();
}
static List<Szemuveg> Hetes(List<Szemuveg> szemuvegek)
{
return szemuvegek.Where(s => s.Felbontas >= 12 && s.Teljesitmeny == 2).ToList();
}
static List<Szemuveg> Nyolcas(List<Szemuveg> szemuvegek, double atlag)
{
return szemuvegek.Where(s => s.Uzemido > atlag).ToList();
}
static List<Szemuveg> Tizes(List<Szemuveg> szemuvegek)
{
return szemuvegek.Where(s => s.TarhelySzamito() < 100).ToList();
}
static List<string> Tizenegyes(List<Szemuveg> szemuvegek)
{
return szemuvegek
.SelectMany(s => s.Szenzorok)
.Select(s => s == "gyroscope" ? "giroszkóp" : s)
.Select(s => s == "accelerometer" ? "gyorsulásmérő" : s)
.Distinct()
.OrderBy(s => s)
.ToList();
}
static List<Szemuveg> Tizenkettes(List<Szemuveg> szemuvegek)
{
return szemuvegek.Where(s => s.Tarhely.Contains("TB")).ToList();
}
}
}
------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OkosSzemuvegHagyomanyos
{
class Szemuveg
{
public string Sorszam { get; set; }
public double Meret { get; set; }
public double Teljesitmeny { get; set; }
public int Felbontas { get; set; }
public string[] Szenzorok { get; set; }
public string Tarhely { get; set; }
public int Uzemido { get; set; }
public double MeretCenti() => Meret * 2.54;
public double TarhelySzamito()
{
var tar = Tarhely.Split(" ");
if (tar[1] == "GB")
{
return double.Parse(tar[0]);
}
else
{
return double.Parse(tar[0]) * 1024;
}
}
public Szemuveg(string sor)
{
var v = sor.Split(';');
Sorszam = v[0];
Meret = double.Parse(v[1]);
Teljesitmeny = double.Parse(v[2]);
Felbontas = int.Parse(v[3]);
Szenzorok = v[4].Split(',');
Tarhely = v[5];
Uzemido = int.Parse(v[6]);
}
public override string ToString()
{
string szenzorok = "";
for (int i = 0; i < Szenzorok.Length; i++)
{
szenzorok += $"{Szenzorok[i]},";
}
return $"Sorszam: {Sorszam}; Meret: {Meret}; Teljesítmény: {Teljesitmeny}; Felbontás: {Felbontas}, Szenzorok: {szenzorok}; Tárhely: {Tarhely}; Üzemidő: {Uzemido}";
}
}
}
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;
}
}
}