Házi feladat megoldani a Szoftverek feladatsort (hiányzóknak is).
A NMSZC Szent-Györgyi Albert Technikum 11c (2022-23) osztályának blogja asztali alkalmazás fejlesztés és adatbázis-kezelés I. tantárgyakból
2023. október 27., péntek
2023.10.27. Kamionok alap megoldás
using System;
namespace KamionokAlap
{
class Kamion
{
public string Marka { get; set; }
public string Tipus { get; set; }
public int Evjarat { get; set; }
public int Teljesitmeny { get; set; }
public double Uzemanyagfogyasztas { get; set; }
public int KmAllas { get; set; }
public Kamion(string sor)
{
string[] mezok = sor.Split(';');
Marka = mezok[0];
Tipus = mezok[1];
Evjarat = int.Parse(mezok[2]);
Teljesitmeny = int.Parse(mezok[3]);
Uzemanyagfogyasztas = double.Parse(mezok[4]);
KmAllas = int.Parse(mezok[5]);
}
public void Kiir()
{
Console.WriteLine($"Márka: {Marka}, Típus: {Tipus}, Évjárat: {Evjarat}, Teljesítmény: {Teljesitmeny} lóerő, Üzemanyagfogyasztás: {Uzemanyagfogyasztas} l/100km, Km-óra állás: {KmAllas}");
}
public override string ToString()
{
return $"Márka: {Marka}, Típus: {Tipus}, Évjárat: {Evjarat}, Teljesítmény: {Teljesitmeny} lóerő, Üzemanyagfogyasztás: {Uzemanyagfogyasztas} l/100km, Km-óra állás: {KmAllas}";
}
public double TeljesitmenyKW()
{
return Math.Round(Teljesitmeny * 0.7355,2);
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
namespace KamionokAlap
{
class Program
{
static void Main(string[] args)
{
List<Kamion> kamionok = BeolvasKamionok(@"..\..\..\src\kamionok.txt");
Console.WriteLine("\nÖsszes kamion adatai:");
foreach (var kamion in kamionok)
{
Console.WriteLine(kamion);
}
Console.WriteLine($"\n1. Feladat: Átlagos évjárat: {AtlagosEvjarat(kamionok)}");
List<Kamion> manKamionok = new List<Kamion>();
Console.WriteLine($"\n2. Feladat: {ManKamionok(kamionok, manKamionok)} db MAN kamion van 2018 vagy újabb évjáratú.");
List<Kamion> legtobbfutott = LegtobbfutottKamion(kamionok);
Console.WriteLine("\n3. Feladat: Legtöbbet futott kamion(ok):");
foreach (var kamion in legtobbfutott)
{
Console.WriteLine(kamion);
}
//ebben a megoldásban az elsőt kapjuk meg
Kamion iveco = IvecoKamion(kamionok);
Console.WriteLine("\n4. Feladat: " + (iveco != null ? "Van" : "Nincs") + " olyan Iveco kamion, aminek a fogyasztása kevesebb, mint a legerősebb motorteljesítményű Mercedes modell fogyasztása.");
iveco.Kiir();
Console.WriteLine("\n5. Feladat: Üzemanyagfogyasztás 30 l alatt:");
List<Kamion> alacsonyFogyasztasuKamionok = AlacsonyFogyasztasuKamionok(kamionok);
foreach (var kamion in alacsonyFogyasztasuKamionok)
{
Console.WriteLine(kamion);
}
Kamion max;
Kamion min;
string eredmeny = LegerosebbLeggyengebbEgyezik(kamionok, out max, out min) ? "igen" : "nem";
Console.WriteLine($"\n6. Feladat: A legerősebb és leggyengébb kamionnak ugyanaz a gyártója? {eredmeny}");
Console.WriteLine($"Legerősebb kamion: {max}");
Console.WriteLine($"Leggyengébb kamion: {min}");
Console.WriteLine("\n7. Feladat: \nFájlba írás: Kamionok átszámolva kW-ra");
KiirKilowattba(kamionok, @"..\..\..\src\kamionok_kw.txt");
Console.ReadKey();
}
static List<Kamion> BeolvasKamionok(string file)
{
List<Kamion> kamionok = new List<Kamion>();
try
{
string[] sorok = File.ReadAllLines(file);
for (int i = 1; i < sorok.Length; i++)
{
kamionok.Add(new Kamion(sorok[i]));
}
}
catch (IOException e)
{
Console.WriteLine("Hiba a fájl olvasása közben: " + e.Message);
}
return kamionok;
}
static double AtlagosEvjarat(List<Kamion> kamionok)
{
double osszeg = 0;
foreach (var kamion in kamionok)
{
osszeg += kamion.Evjarat;
}
return Math.Round(osszeg / kamionok.Count);
}
static int ManKamionok(List<Kamion> k, List<Kamion> man)
{
foreach (var item in k)
{
if (item.Marka == "MAN" && item.Evjarat >= 2018)
{
man.Add(item);
}
}
return man.Count;
}
static List<Kamion> LegtobbfutottKamion(List<Kamion> kamionok)
{
Kamion max = kamionok[0];
List<Kamion> legtobbfutott = new List<Kamion>();
foreach (var kamion in kamionok)
{
if (kamion.KmAllas > max.KmAllas)
{
max = kamion;
}
}
foreach (var item in kamionok)
{
if (item.KmAllas == max.KmAllas)
{
legtobbfutott.Add(item);
}
}
return legtobbfutott;
}
static Kamion IvecoKamion(List<Kamion> kamionok)
{
Kamion maxTeljesitmenyuMercedes = kamionok[0];
foreach (var item in kamionok)
{
if (item.Marka =="Mercedes" && maxTeljesitmenyuMercedes.Teljesitmeny < item.Teljesitmeny)
{
maxTeljesitmenyuMercedes = item;
}
}
//teszt
//Console.WriteLine("maxTeljesitmenyuMercedes telj. mercedes");
//maxTeljesitmenyuMercedes.Kiir();
foreach (var item in kamionok)
{
if (item.Marka == "Iveco" && item.Uzemanyagfogyasztas < maxTeljesitmenyuMercedes.Uzemanyagfogyasztas)
{
return item;
}
}
return null;
}
static List<Kamion> AlacsonyFogyasztasuKamionok(List<Kamion> kamionok)
{
List<Kamion> alacsonyFogyasztasu = new List<Kamion>();
foreach (var kamion in kamionok)
{
if (kamion.Uzemanyagfogyasztas < 30)
{
alacsonyFogyasztasu.Add(kamion);
}
}
return alacsonyFogyasztasu;
}
static bool LegerosebbLeggyengebbEgyezik(List<Kamion> kamionok, out Kamion kamionMax, out Kamion kamionMin)
{
kamionMax = kamionok[0];
kamionMin = kamionok[0];
foreach (var kamion in kamionok)
{
if (kamion.Teljesitmeny > kamionMax.Teljesitmeny)
{
kamionMax = kamion;
}
if (kamion.Teljesitmeny < kamionMin.Teljesitmeny)
{
kamionMin = kamion;
}
}
return kamionMax.Marka == kamionMin.Marka;
}
static void KiirKilowattba(List<Kamion> kamionok, string fajlnev)
{
using StreamWriter writer = new StreamWriter(fajlnev);
foreach (var kamion in kamionok)
{
writer.WriteLine($"Márka: {kamion.Marka}, Típus: {kamion.Tipus}, Évjárat: {kamion.Evjarat}, Teljesítmény: {kamion.TeljesitmenyKW()} kW, Üzemanyagfogyasztás: {kamion.Uzemanyagfogyasztas} l/100km, Km-óra állás: {kamion.KmAllas}");
}
}
}
}
2023.10.26. Repülők LINQ megoldás
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();
}
}
}
Feliratkozás:
Bejegyzések (Atom)
-
1. Be kell fejezni a monitorvásáros feladatsort. 2. Ez egy hosszú feladatsor, jussatok el minél messzebbre. Segítsetek egymásnak. Feladatlap...
-
Ne feledjük, hogy pénteken TZ. using System; using System.Collections.Generic; using System.Linq; namespace monitorAlapOOP { class ...
-
Nézzetek utána, hogy mi az a tesztpiramis. Javaslom innen elindulni. Nyiss egy tesztelési digifüzetet (oszd meg velem). Írj bele egy rész...