Exemplo n.º 1
0
        static void Main(string[] args)
        {
            double cost_taks = 0;

            Audi[] allroad_audi = new Audi[4]; // массив марки Ауди модели "Allroad"
            for (int i = 0; i < allroad_audi.Length; i++)
            {
                allroad_audi[i] = new Audi(1000, 20, 40, 4.3, 1.5, 1.9, 130, "Allroad", 7.5);
            }

            Audi[] e_tron_audi = new Audi[4];// массив марки Ауди модели "e-tron"
            for (int i = 0; i < e_tron_audi.Length; i++)
            {
                e_tron_audi[i] = new Audi(2350, 34, 37.8, 4.6, 1.8, 2, 160, "e-tron", 5.4);
            }

            Sedan[] A1_sedan = new Sedan[4]; // массив марки Седан модели "А1"
            for (int i = 0; i < A1_sedan.Length; i++)
            {
                A1_sedan[i] = new Sedan(3120, 43.8, 44.1, 5.1, 1.9, 2.5, 210, "A1", 4.2);
            }

            Suv[] Q1_suv = new Suv[4]; //массив марки Сув модели "Q1"
            for (int i = 0; i < Q1_suv.Length; i++)
            {
                Q1_suv[i] = new Suv(3400, 35.8, 39.7, 5, 3, 4, 250, "Q1", 8.4);
            }

            Coupe[] T1_coupe = new Coupe[4]; // массив марки Коуп модели "T1"
            for (int i = 0; i < T1_coupe.Length; i++)
            {
                T1_coupe[i] = new Coupe(4327, 54.6, 54, 6, 3.4, 2.3, 180, "T1", 7.8);
            }

            ArrayList help_list = new ArrayList();//это просто божественное решение, я аж сам в a*уе

            help_list.AddRange(allroad_audi);
            help_list.AddRange(e_tron_audi);
            help_list.AddRange(A1_sedan);
            help_list.AddRange(Q1_suv);
            help_list.AddRange(T1_coupe);

            Car[] taks_park = new Car[help_list.Count];//а это я вообще когда придумал чуть со стула не упал...
            for (int i = 0; i < help_list.Count; i++)
            {
                taks_park[i] = (Car)help_list[i];//А ИМЕННО ВОТ ЭТА СТРОЧКА
            }
            for (int i = 0; i < taks_park.Length; i++)
            {
                cost_taks += taks_park[i].Cost;
            }

            Array.Sort(taks_park, new CompareGasoline());

            Console.WriteLine("Сортировка по бензину, не стал заморачиваться над красотой вывода");
            for (int i = 0; i < taks_park.Length; i++)
            {
                Console.WriteLine("model = {0}, mark = {1}, gasoline per kilometr = {2}", taks_park[i].Model, taks_park[i].Mark, taks_park[i].GasolinePerKilometer);
            }

            Console.WriteLine("Цена автопарка - {0}", cost_taks);
            Console.WriteLine("Вам еще диапазон надо ввести для скорости, минимальное и максимальное значение скорости:");

            int max_value = 0;

            while (true)
            {
                try
                {
                    Console.WriteLine("Введите максимальное значение:");
                    max_value = Int32.Parse(Console.ReadLine());
                    break;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Сложно ввести число?");
                    continue;
                }
            }

            for (int i = 0; i < taks_park.Length; i++)
            {
                if (taks_park[i].MaxSpeed <= max_value)
                {
                    Console.WriteLine("model - {0}, mark - {1}, maxSpeed - {2}", taks_park[i].Model, taks_park[i].Mark, taks_park[i].MaxSpeed);;
                }
            }
            Console.ReadKey();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Audi[] allroadAudi = new Audi[7]; // массив марки Ауди модели "Allroad"
            for (int i = 0; i < allroadAudi.Length; i++)
            {
                allroadAudi[i] = new Audi(1000, 20, 40, 4.3, 1.5, 1.9, 130, "Allroad", 7.5);
            }

            Audi[] eTronAudi = new Audi[3];// массив марки Ауди модели "e-tron"
            for (int i = 0; i < eTronAudi.Length; i++)
            {
                eTronAudi[i] = new Audi(2350, 34, 37.8, 4.6, 1.8, 2, 160, "e-tron", 5.4);
            }

            Sedan[] A1Sedan = new Sedan[8]; // массив марки Седан модели "А1"
            for (int i = 0; i < A1Sedan.Length; i++)
            {
                A1Sedan[i] = new Sedan(3120, 43.8, 44.1, 5.1, 1.9, 2.5, 210, "A1", 4.2);
            }

            Suv[] Q1Suv = new Suv[5]; //массив марки Сув модели "Q1"
            for (int i = 0; i < Q1Suv.Length; i++)
            {
                Q1Suv[i] = new Suv(3400, 35.8, 39.7, 5, 3, 4, 250, "Q1", 8.4);
            }

            Coupe[] T1Coupe = new Coupe[4]; // массив марки Коуп модели "T1"
            for (int i = 0; i < T1Coupe.Length; i++)
            {
                T1Coupe[i] = new Coupe(4327, 54.6, 54, 6, 3.4, 2.3, 180, "T1", 7.8);
            }

            //Этот способ мне не нравится, но я другого не придумал как их всех заапкастить к базовому классу и добавить всех в один массив
            //Ну там скорее не апкаст, а даункст получился, потому что когда добавляешь в ArrayList, то оно заапкастилось к Обджекту, а потом надо даункастить в Car
            //Ну то есть получилось так, что сначала заапкастил к обджекту, а потом даункаст к Car, но в итоге это можно назвать апкаст
            ArrayList helpList = new ArrayList();

            helpList.AddRange(allroadAudi);
            helpList.AddRange(eTronAudi);
            helpList.AddRange(A1Sedan);
            helpList.AddRange(Q1Suv);
            helpList.AddRange(T1Coupe);

            //Апкаст(а если точнее даункаст)
            Car[] taksPark = new Car[helpList.Count];
            for (int i = 0; i < helpList.Count; i++)
            {
                taksPark[i] = (Car)helpList[i];
            }

            Console.WriteLine("Вам диапазон надо ввести для скорости, минимальное и максимальное значение скорости:");

            int maxValue = 0;

            while (true)
            {
                try
                {
                    Console.WriteLine("Введите максимальное значение:");
                    maxValue = Int32.Parse(Console.ReadLine());
                    break;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Сложно ввести число?");
                    continue;
                }
            }
            double       costTaks     = 0;
            MyCollection myCollection = new MyCollection(taksPark, maxValue);

            costTaks = myCollection.GetCost;
            Console.WriteLine("cost = {0}", costTaks);

            List <Car> desiredCars = myCollection.GetDesiredCars();

            foreach (Car thisCar in desiredCars)
            {
                Console.WriteLine("model - {0}, mark - {1}, maxSpeed - {2}", thisCar.Model, thisCar.Mark, thisCar.MaxSpeed);
            }

            myCollection.SortByGasolinePerKilometr();
            Console.WriteLine("Сортировка по бензину, не стал заморачиваться над красотой вывода");
            foreach (Car thisCar in myCollection)
            {
                Console.WriteLine("model - {0}, mark - {1}, gasoline per kilometr - {2}", thisCar.Model, thisCar.Mark, thisCar.GasolinePerKilometer);
            }

            Console.ReadKey();
        }