2020.12.16. Objektum-orientált (OOP) megoldás az autók feladatsorhoz
using System;
using System.Collections.Generic; //a lista miatt kell
using System.IO;//a fájlkezelés miatt kell
namespace autokOOP
{
class auto
{
public string azonosito { get; set; } //property (tulajdonság/jellemző)
public int loero { get; set; }
public double tomeg { get; set; }
public int gyorsulas { get; set; }
public int beavatkozas { get; set; }
public auto(string sor) //konstruktor, példányosításkor automatikusan végrehajtódik
{
string[] atmeneti = sor.Split(';');
azonosito = atmeneti[0];
loero = Convert.ToInt32(atmeneti[1]);
tomeg = Convert.ToDouble(atmeneti[2]);
gyorsulas = Convert.ToInt32(atmeneti[3]);
beavatkozas = Convert.ToInt32(atmeneti[4]);
}
public override string ToString() //virtuális metódus
{
return $"{azonosito,-18} | {loero,4} lóerő | {tomeg,4} t | {gyorsulas,2} mp | {beavatkozas,2}* kellett beavatkozni";
//Console.WriteLine("{0,-18} | {1,4} lóerő | {2,4} t | {3,2} mp | {4,2}* kellett beavatkozni", azonosito, loero, tomeg, gyorsulas, beavatkozas);
}
}
class Program
{
static void Main(string[] args)
{
List<auto> autok = new List<auto>(); //példányosítás
//2.Az adatokat olvassa be fájlból és tárolja el egy listában.
foreach (var i in File.ReadAllLines("adatok.txt"))
{
autok.Add(new auto(i));
}
//Összes kiírása:
foreach (var i in autok)
{
Console.WriteLine(i);
}
//3.Írja ki a képernyőre a minta szerint a leggyorsabb autó adatait. (Az a leggyorsabb, ami a legkevesebb idő alatt gyorsul 100 ra.)
int kiIndex = 0;
int min = autok[0].gyorsulas;
for (int i = 0; i < autok.Count; i++)
{
if (min > autok[i].gyorsulas)
{
min = autok[i].gyorsulas;
kiIndex = i;
}
}
Console.WriteLine($"\nLeggyorsabb autó:\n{autok[kiIndex]}");
//Console.WriteLine("\nLeggyorsabb autó:\n{0}", autok[kiIndex]);
//4.Írja ki a képernyőre a minta szerint a legkevésbé önálló autó azonosítóját. (Az a legkevésbé önálló, amelynél a legtöbbet kellett beavatkozni a vezetésbe.)
kiIndex = 0;
int max = autok[0].beavatkozas;
for (int i = 0; i < autok.Count; i++)
{
if (max < autok[i].beavatkozas)
{
max = autok[i].beavatkozas;
kiIndex = i;
}
}
Console.WriteLine($"\nA legkevésbé önálló autó:\n{autok[kiIndex]}");
//6.Írja ki a képernyőre az autók átlag tömegét.
double osszTomeg = 0;
for (int i = 0; i < autok.Count; i++)
{
osszTomeg += autok[i].tomeg;
}
Console.WriteLine($"\nAz autók átlag tömege (t): {osszTomeg / autok.Count:0.00}");
//7.Írja ki a képernyőre, és egy új fájlba autónként a következő adatokat szóközzel elválasztva: sorszám(a feldolgozás sorrendjében automatikusan generált), tömeg kg-ban. (1 tonna = 1000 kg).
List<string> ki = new List<string>();
for (int i = 0; i < autok.Count; i++)
{
ki.Add($"{i+1}. {autok[i].tomeg * 1000} kg");
Console.WriteLine(ki[i]);
}
File.WriteAllLines("tomeg.txt", ki);
Console.Write($"\nA program bezárásához nyomjon meg egy billentyűt...");
Console.ReadKey();
}
}
}
Megjegyzések
Megjegyzés küldése