2023. október 27., péntek

2023.10.27. Versenymotorok alap szintű megoldás

 namespace MotorokAlap

{
    class Motor
    {
        public string Gyarto { get; set; }
        public string Modell { get; set; }
        public int MaximalisSebesseg { get; set; }
        public double UzemanyagFogyasztas { get; set; }
        public int Hengerurtartalom { get; set; }
        public string KerekfelfuggesztésTipus { get; set; }

        public Motor(string sor)
        {
            string[] adatok = sor.Split(';');
            Gyarto = adatok[0];
            Modell = adatok[1];
            MaximalisSebesseg = int.Parse(adatok[2]);
            UzemanyagFogyasztas = double.Parse(adatok[3]);
            Hengerurtartalom = int.Parse(adatok[4]);
            KerekfelfuggesztésTipus = adatok[5];
        }

        public override string ToString()
        {
            return $"Gyártó: {Gyarto}\nModell: {Modell}\nMaximális Sebesség: {MaximalisSebesseg} km/h\nÜzemanyagfogyasztás: {UzemanyagFogyasztas} liter/100 km\nHengerűrtartalom: {Hengerurtartalom} cc\nKerékfelfüggesztés típusa: {KerekfelfuggesztésTipus}\n";
        }

        public double LiterbolGallonba()
        {
            return UzemanyagFogyasztas * 0.264172;
        }
    }
}


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

namespace MotorokAlap
{
    class Program
    {
        static void Main()
        {
            List<Motor> motorok = new();
            using (StreamReader sr = new StreamReader(@"..\..\..\src\motorok.txt"))
            {
                while (!sr.EndOfStream)
                {
                    motorok.Add(new Motor(sr.ReadLine()));
                }
            }

            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(motorok[i]);
            }

            Console.WriteLine("9.\n");
            Console.WriteLine($"Átlagos sebesség: {Math.Round(AtlagSebesseg(motorok))} km/h");            

            Console.WriteLine("10.\n");
            List<Motor> yamahaLista = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Yamaha" && motor.Hengerurtartalom > 1000)
                {
                    yamahaLista.Add(motor);
                }
            }
            Console.WriteLine($"{Yamaha1000felett(yamahaLista)} 1000 cc fölötti Yamaha motor van.");
           

            Console.WriteLine("11.Legkisebb fogyasztású motorok:\n");
            var kicsi = LegkisebbFogyasztasuMotor(motorok);
            foreach (var motor in kicsi)
            {
                Console.WriteLine(motor);
            }

            Console.WriteLine("12.Honda motorok, melyeknek fogyasztása kisebb, mint a legnagyobb Suzuki modellé:\n");
            List<Motor> hondaSuzuki = HondaSuzuki(motorok);
            if (hondaSuzuki.Count == 0)
            {
                Console.WriteLine("Nincs olyan Honda motor, aminek a fogyasztása kisebb, mint a legnagyobb Suzuki modellé.");
            }
            else
            {
                Console.WriteLine(hondaSuzuki[0]);
            }

            Console.WriteLine("13.BMW márkájú motorok vagy 300 km/h feletti maximális sebességű motorok:\n");
            foreach (var item in KivalogatoBMW(motorok))
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("15.Fájlba írás\n");

            using (StreamWriter writer = new StreamWriter(@"..\..\..\src\motorok_gallon.txt"))
            {
                foreach (var motor in motorok)
                {
                    writer.WriteLine($"{motor.Gyarto};{motor.Modell};{motor.LiterbolGallonba()} gallon/100 km");
                }
            }
        }

        static double AtlagSebesseg(List<Motor> motorok)
        {
            double osszeg = 0;
            foreach (var motor in motorok)
            {
                osszeg += motor.MaximalisSebesseg;
            }
            return osszeg / motorok.Count;
        }

        static int Yamaha1000felett(List<Motor> yamaha)
        {
            return yamaha.Count;
        }

        static List<Motor> LegkisebbFogyasztasuMotor(List<Motor> motorok)
        {
            double minFogyasztas = motorok[0].UzemanyagFogyasztas;
            foreach (var motor in motorok)
            {
                if (motor.UzemanyagFogyasztas < minFogyasztas)
                {
                    minFogyasztas = motor.UzemanyagFogyasztas;
                }
            }

            List<Motor> kisFogyasztasuMotorok = new();
            foreach (var motor in motorok)
            {
                if (motor.UzemanyagFogyasztas == minFogyasztas)
                {
                    kisFogyasztasuMotorok.Add(motor);
                }
            }
            return kisFogyasztasuMotorok;
        }

        static List<Motor> HondaSuzuki(List<Motor> motorok)
        {
            Motor legnagyobbSuzuki = motorok[0];
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Suzuki" && motor.Hengerurtartalom > legnagyobbSuzuki.Hengerurtartalom)
                {
                    legnagyobbSuzuki = motor;
                }
            }

            List<Motor> honda = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Honda" && motor.UzemanyagFogyasztas < legnagyobbSuzuki.UzemanyagFogyasztas)
                {
                    honda.Add(motor);
                }
            }
            return honda;
        }

        static List<Motor> KivalogatoBMW(List<Motor> motorok)
        {
            List<Motor> bmw = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "BMW" || (motor.Gyarto != "BMW" && motor.MaximalisSebesseg > 300))
                {
                    bmw.Add(motor);
                }
            }
            return bmw;
        }        
    }
}

Nincsenek megjegyzések:

Megjegyzés küldése

2024.04.25., 29., 05.02. Időjárás app

 Feladat: Időjárás app - OOP módszerekkel, haladóknak adatkötéssel Az alkalmazás célja, hogy a felhasználók hozzáadjanak és eltávolítsanak v...