2023. szeptember 8., péntek

2023.09.08., 11. Objektum-orientált programszerkezet

Elkezdtük a pékárus feladatot, majd áttértünk erre, átvettük az OOP gyakorlati alapjait, majd ez alapján folytattuk az előzőt.

Minta az osztály használatához.

 Ö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.

using System;
using System.Collections.Generic;
using System.IO;

namespace autokOOP
{
    class Auto
    {
        public string Azonosito { get; set; } //property (tulajdonság/jellemző)
        //a fentit a prop tab-tab módszerrel könnyen elő lehet hívni
        //de így is lehetne egyszerűbben:
        //public string azonosito;
        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 void kiir()
        {
            Console.WriteLine($"{Azonosito,-18} | {Loero,4} lóerő | {Tomeg,4} t | {Gyorsulas,2} mp | {Beavatkozas,2}* kellett beavatkozni");
        }
    }
    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 item in File.ReadAllLines("autok.txt"))
            {
                autok.Add(new Auto(item));
            }

         
            Console.WriteLine("\n4. kiírás");
            for (int i = 0; i < autok.Count; i++)
            {
                autok[i].kiir();
            }

  ...