2020. november 18., szerda

2020.11.18. 6/4. feladatsor: Önvezető autók

  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