Ezt elkezdtük átnézni.
Önvezető autók
Napjainkban az önvezető autók egyre gyorsabban fejlődnek, több neves cég is fejleszt ilyeneket. Ebben a feladatban a rájuk vonatkozó adatokat kell feldolgoznia.
Az adatokat a lenti keretben találja. Az állomány soronként tartalmazza az autók következő adatait egymástól pontosvesszővel elválasztva:
- azonosító (gyártó és modellszám)
- teljesítmény (lóerő)
- tömeg (tonna)
- gyorsulás (hány másodperc alatt gyorsul 100 km/h-ra)
- a vezetőnek hányszor kellett beavatkozni a vezetésbe 10.000 km-en
A fájlban 9 autó adatai vannak. Készülj fel arra, hogy több autó adatai is szerepelhetnek.
Tesla Model S P90D;760;2,20;3;3 Volvo XC90;889;2,90;4;14 Volkswagen GO989;1378;3,66;5;6 Audi Q525;772;2,40;2;3 Mercedes Benz898;739;2,20;3;9 Google Drive 18;752;2,55;4;11 Delphi Magic 428B;1194;3,00;3;4 Bosch Doom300;700;2,09;4;6 Nissan Cherry 100;725;3,1;3;7 |
Például a Tesla Model S P90D autó 760 lóerős teljesítményű, 2,2 tonna tömegű, 3 másodperc alatt gyorsul 100 km/órára és a 10.000 km-es tesztvezetésen 3-szor volt szükség humán beavatkozásra.
1. Készítsen programot a következő feladatok megoldására, amelynek a forráskódját onvezeto néven mentse el.
A képernyőre írást igénylő részfeladatok megjelenítése előtt írja a képernyőre a feladat sorszámát!
2. Az adatokat olvassa be fájlból és tárolja el egy struktúra adatszerkezeteket tartalmazó tömbben.
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.)
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.)
6. Írja ki a képernyőre a minta szerint az autók átlag tömegét.
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).
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);
//vagy így:
//Console.WriteLine(i.ToString());
}
//vagy így:
//for (int i = 0; i < autok.Count; i++)
//{
// Console.WriteLine(autok[i].ToString());
//}
//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.ReadLine();
}
}
}
Nincsenek megjegyzések:
Megjegyzés küldése