Metódusokban oldd meg a feladatokat. Figyelj arra, hogy amit lehet, lokális változóként definiálj. A megoldás előtt, ha szükséges, nézd át a fájlkezelős, metódusos alapokat, és lehetőleg közben ne használj segítséget.
Ö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.
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 5 tömbben.
3. Írja ki a képernyőre a leggyorsabb autó adatait. (Az a leggyorsabb, ami a legkevesebb idő alatt gyorsul 100‑ra.)
4. Írja ki a képernyőre 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 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).
Varsó megoldása, a részleteket megbeszéltük:
using System;
using System.IO;
namespace _20201122Hazi
{
class Program
{
static int feldolgozandoAdatMennyiseg = 9;
static string[] azonosito = new string[feldolgozandoAdatMennyiseg];
static int[] loero = new int[feldolgozandoAdatMennyiseg];
static double[] tomeg = new double[feldolgozandoAdatMennyiseg];
static int[] gyorsulas = new int[feldolgozandoAdatMennyiseg];
static int[] beavatkozas = new int[feldolgozandoAdatMennyiseg];
static int kiIndex = 0;
static void AdatokBeolvasasa()
{
StreamReader sr = new StreamReader("adatok.txt");
string[] atmeneti;
int k = 0;
while (!sr.EndOfStream)
{
atmeneti = sr.ReadLine().Split(";");
azonosito[k] = atmeneti[0];
loero[k] = Convert.ToInt32(atmeneti[1]);
tomeg[k] =
Convert.ToDouble(atmeneti[2].Replace(".", ","));
ITT NEM KELL A REPLACE-T HASZNÁLNI, HA A FÁJLBAN ÁTÍRTAD A PONTOT VESSZŐRE.
gyorsulas[k] =
Convert.ToInt32(atmeneti[3]);
beavatkozas[k] =
Convert.ToInt32(atmeneti[4]);
k++;
}
sr.Close();
}
static void LeggyorsabbAutoKereses()
{
int l = 0;
kiIndex = 0;
int min = gyorsulas[0];
while (l < gyorsulas[l])
{
if (min < gyorsulas[l])
{
min = gyorsulas[l];
kiIndex = l;
}
l++;
}
Console.WriteLine("A leggyorsabb
autó adatai\n---------------------------");
AutoTipusKiiratasa();
ITT NEM KELL METÓDUST HÍVNI, HA KIÍROD A TÖMBELEMET, ÉS A kiIndexET.
}
static void AutoTipusKiiratasa()
{
Console.WriteLine("Típus: " +
azonosito[kiIndex]);
Console.WriteLine("Lóerő: " + loero[kiIndex]);
Console.WriteLine("Tömeg (t):
" +
tomeg[kiIndex]);
Console.WriteLine("Gyorsulás
(sec): " + gyorsulas[kiIndex]);
Console.WriteLine("Emberi
beavatkozás (10 000 km-en): " + beavatkozas[kiIndex]);
Console.WriteLine();
}
static void LegkevesbeOnalloKereses()
{
int f = 0;
kiIndex = 0;
int max = beavatkozas[0];
while (f < beavatkozas[f])
{
if (max > beavatkozas[f])
{
max = beavatkozas[f];
kiIndex = f;
}
f++;
}
Console.WriteLine("A legkevésbé önálló
autó adatai\n---------------------------");
AutoTipusKiiratasa();
ITT NEM KELL METÓDUST HÍVNI, HA KIÍROD A TÖMBELEMET, ÉS A kiIndexET.
}
static void AutokAtlagTomege()
{
double osszTomeg = 0;
for (int i = 0; i < tomeg.Length; i++)
{
osszTomeg += tomeg[i];
}
osszTomeg = osszTomeg /
tomeg.Length;
Console.WriteLine("Az autók átlag
tömege (t): " + osszTomeg);
}
static void TomegKiiratasFajlba()
{
StreamWriter sw = new StreamWriter("tomeg.txt");
for (int i = 0; i < tomeg.Length; i++)
{
sw.WriteLine((i + 1) + " " + tomeg[i] * 1000);
Console.WriteLine((i + 1) + " " + tomeg[i] * 1000);
}
sw.Close();
}
static void Main(string[] args)
{
//2.Az adatokat olvassa be fájlból és tárolja
el 5 tömbben.
AdatokBeolvasasa();
//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.)
LeggyorsabbAutoKereses();
//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.)
LegkevesbeOnalloKereses();
//6.Írja ki a képernyőre a minta szerint az
autók átlag tömegét.
AutokAtlagTomege();
//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).
TomegKiiratasFajlba();
Console.Write("\nA program
bezárásahoz nyomjon meg egy billentyűt...");
Console.ReadKey();
}
}
}
Nincsenek megjegyzések:
Megjegyzés küldése