Házi feladat megoldani a Szoftverek feladatsort (hiányzóknak is).
A NMSZC Szent-Györgyi Albert Technikum 11b2 (2022-23) csoportjá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. Versenymotorok alap szintű megoldás
namespace MotorokAlap
{
class Motor
{
public string Gyarto { get; set; }
public string Modell { get; set; }
public int MaximalisSebesseg { get; set; }
public double UzemanyagFogyasztas { get; set; }
public int Hengerurtartalom { get; set; }
public string KerekfelfuggesztésTipus { get; set; }
public Motor(string sor)
{
string[] adatok = sor.Split(';');
Gyarto = adatok[0];
Modell = adatok[1];
MaximalisSebesseg = int.Parse(adatok[2]);
UzemanyagFogyasztas = double.Parse(adatok[3]);
Hengerurtartalom = int.Parse(adatok[4]);
KerekfelfuggesztésTipus = adatok[5];
}
public override string ToString()
{
return $"Gyártó: {Gyarto}\nModell: {Modell}\nMaximális Sebesség: {MaximalisSebesseg} km/h\nÜzemanyagfogyasztás: {UzemanyagFogyasztas} liter/100 km\nHengerűrtartalom: {Hengerurtartalom} cc\nKerékfelfüggesztés típusa: {KerekfelfuggesztésTipus}\n";
}
public double LiterbolGallonba()
{
return UzemanyagFogyasztas * 0.264172;
}
}
}
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;
}
}
}
2023.10.27. Terepjárók LINQ megoldás
K. Levi megoldása alapján
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TZ
{
class Terepjaro
{
public string MarkaEsModell { get; set; }
public int Evjarat { get; set; }
public string UzemanyagTipus { get; set; }
public double Tomeg { get; set; }
public string HajtasTipus { get; set; }
public string Kepesseg { get; set; }
public double KgAtvaltFont {
get => Tomeg * 2.20462;
}
public Terepjaro(string sor)
{
var adat = sor.Split(";");
MarkaEsModell = adat[0];
Evjarat = int.Parse(adat[1]);
UzemanyagTipus = adat[2];
Tomeg = double.Parse(adat[3]);
HajtasTipus = adat[4];
Kepesseg = adat[5];
}
public override string ToString()
{
return $"Márka és Modell: {MarkaEsModell}, " +
$"Évjárat: {Evjarat}, " +
$"Uzemanyag típus: {UzemanyagTipus}, " +
$"Tömeg: {Tomeg}, " +
$"Hajtás típus: {HajtasTipus}, " +
$"Képesség: {Kepesseg}";
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace Kozma_Levente_TZ_20231016
{
class Program
{
private static readonly List<Terepjaro> terepjarok = new();
private static List<Terepjaro> osszkereskesTerepjarok = new();
static void Main(string[] args)
{ //src mappában legyenek a fájlok
using (StreamReader r = new(path: "terepjarok.txt"))
{
while (!r.EndOfStream)
terepjarok.Add(new Terepjaro(r.ReadLine()));
}
// 7. Feladat
Console.WriteLine("7. Feladat");
for (int i = 0; i < 3; i++)
Console.WriteLine(terepjarok[i]);
// 9. Feladat
Console.WriteLine("9. Feladat");
Console.WriteLine($"A Toyota terepjárók átlagos tömege: {TerepjaroTomegAtlag("Toyota")}");
// 10. Feladat
Console.WriteLine("10. Feladat");
osszkereskesTerepjarok = terepjarok.Where(t => t.Evjarat > 2019 && t.HajtasTipus.Equals("Összkerékhajtás")).ToList();
Console.WriteLine($"Összesen {OsszkerekesTerepjarokSzama()}db összkerekes terepjáró van 2019 után.");
// 11. Feladat
foreach (var i in LegkonyebbTerepjaro())
Console.WriteLine(i);
// 12. Feladat
Console.WriteLine("12. Feladat");
Console.WriteLine(HibridDizel());
// 13. Feladat
Console.WriteLine("13. Feladat");
HajtasKereso("Összkerékhajtás").ForEach(t => Console.WriteLine(t)); //szép!
// 15. Feladat
using (StreamWriter w = new(path: "ujTerepjarok.txt"))
{
terepjarok.ForEach(t => w.WriteLine($"{t.MarkaEsModell};{t.Evjarat};{t.KgAtvaltFont}"));
}
// 16. Feladat
var min = 0;
var max = 0;
LegkonyebbEsnehezebb(ref min, ref max);
Console.WriteLine($"Legkönyebb terepjáró indexe: {min}, Legnehezebb {max}");
}
private static double TerepjaroTomegAtlag(string markaNev)
{
return Math.Round(terepjarok.Where(t => t.MarkaEsModell.Contains(markaNev)).Average(t => t.Tomeg));
}
private static int OsszkerekesTerepjarokSzama()
{
return osszkereskesTerepjarok.Count;
}
private static Terepjaro[] LegkonyebbTerepjaro()
{
return terepjarok
.Where(t1 => t1.Tomeg.Equals(terepjarok.Min(t2 => t2.Tomeg)))
.ToArray();
}
private static string HibridDizel()
{
var hibrid = terepjarok.Where(t1 => t1.UzemanyagTipus.Equals("Hibrid")).ToArray();
var dizel = terepjarok.Where(t2 => t2.UzemanyagTipus.Equals("Dízel")).ToArray();
var auto = hibrid.Where(h => h.Evjarat < dizel.Max(d => d.Evjarat)).FirstOrDefault();
return auto == null ? "Nincs ilyen" : auto.ToString();
}
private static List<Terepjaro> HajtasKereso(string hajtas)
{
return terepjarok.Where(t => t.HajtasTipus.Equals(hajtas)).ToList();
//vagy
//return terepjarok.Where(t => t.HajtasTipus == hajtas).ToList();
}
private static void LegkonyebbEsnehezebb(ref int minS, ref int maxS)
{
var min = terepjarok.Min(t => t.Tomeg);
var max = terepjarok.Max(t => t.Tomeg);
for (int i = 0; i < terepjarok.Count; i++)
{
if (min == terepjarok[i].Tomeg) minS = i + 1;
if (max == terepjarok[i].Tomeg) maxS = i + 1;
}
}
}
}
Feliratkozás:
Bejegyzések (Atom)
2024.04.25. Időjárás app
Feladat: Időjárás app - OOP módszerekkel, haladóknak adatkötéssel Az alkalmazás célja, hogy a felhasználók hozzáadjanak és eltávolítsanak v...
-
A következő órán ellenőrizzük mindkét feladatsort.
-
Adatbázis tervező eszköz Elkezdtük megtervezni az első, kisebb adatbázisunkat.
-
1. Be kell fejezni a monitorvásáros feladatsort. 2. Ez egy hosszú feladatsor, jussatok el minél messzebbre. Segítsetek egymásnak. Feladatlap...