예제 #1
0
        static void Request2(Transport[] mas)
        {
            int n = 0;

            Console.WriteLine("Введите n");
            CheckInput(out n);
            bool ok = false;

            foreach (Transport el in mas)
            {
                if (el is Rain)
                {
                    Rain rain = (Rain)el;
                    if (rain.NumberVan > n)
                    {
                        rain.Info();
                        ok = true;
                    }
                }
            }
            if (!ok)
            {
                ShowRed("Таких автомобилей нет!");
            }
        }
예제 #2
0
        static void Script3()
        {
            string[] MasName          = { "Универсал", "Купе", "Лимузин", "Микроавтобус", "Кабиролет" };
            string[] MasNameOfExpress = { "Красная стрела", "Полярная стрела", "Восток", "Арктика", "Белоруссия" };
            int      n = 0;

            Console.WriteLine("На сколько элементов создать массив, в котором выполнять запросы?");
            CheckInput(out n);

            Transport[] mas = new Transport[n];

            for (int i = 0; i < n; i++)
            {
                if (i % 3 == 0)
                {
                    Rain a = new Rain(rand.Next(1, 10), rand.Next(100, 200), rand.Next(50, 2000));
                    mas[i] = a;
                }
                else
                if (i % 2 == 0)
                {
                    Avtomobile a = new Avtomobile(MasName[rand.Next(0, 4)], rand.Next(100, 400), rand.Next(2, 5));
                    mas[i] = a;
                }
                else
                if (i % 1 == 0)
                {
                    Express a = new Express(MasNameOfExpress[rand.Next(0, 4)], rand.Next(1, 10), rand.Next(100, 200), rand.Next(50, 2000));
                    mas[i] = a;
                }
                else
                {
                    Avtomobile a = new Avtomobile(MasName[rand.Next(0, 4)], rand.Next(100, 400), rand.Next(2, 5));
                    mas[i] = a;
                }
            }
            ShowMas(mas);
            ShowGreen("СОРТИРОВКА ПО КОЛИЧЕСТВУ ЧЕЛОВЕК");
            Array.Sort(mas, new Comperrr());
            ShowMas(mas);
            ShowGreen("СОРТИРОВКА ПО СКОРОСТИ");
            Array.Sort(mas);
            ShowMas(mas);

            ShowGreen("Создание объекта с последующим клонированием");
            Rain t1 = new Rain(3, 1, 2);

            t1.Info();
            Transport t2 = (Rain)t1.Clone();

            t2.Info();
            ((Transport)t2).Info();
        }
예제 #3
0
 public override bool Equals(object obj)
 {
     if (!(obj is Rain))
     {
         return(false);
     }
     if (!base.Equals(obj))
     {
         return(false);
     }
     else
     {
         Rain rain = obj as Rain;
         if (this.NumberVan == rain.NumberVan)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }// сравнение объектов
예제 #4
0
        static void ScriptDemo()
        {
            ShowGreen("Создается массив объектов состоящий из объектов Транспорт, Автомобиль, Поезд, Экспресс");
            Transport t1 = new Transport();

            t1.CountMen = 1000;
            t1.Speed    = 1000;

            Avtomobile t2 = new Avtomobile();

            t2.CountMen = 4;
            t2.Speed    = 100;
            t2.BodyType = "Седан";

            Rain t3 = new Rain();

            t3.CountMen  = 800;
            t3.Speed     = 200;
            t3.NumberVan = 23;

            Express e = new Express();

            e.CountMen    = 500;
            e.Speed       = 500;
            e.NumberVan   = 10;
            e.NameExpress = "Ласточка";

            Transport[] mas = new Transport[4];
            mas[0] = t1;
            mas[1] = t2;
            mas[2] = t3;
            mas[3] = e;
            ShowGreen("Вызывается виртуальный метод Info() переопределенный для каждого класса");
            for (int i = 0; i < 4; i++)
            {
                mas[i].Info();
            }

            ShowGreen("Вызывается не виртуальный метод каждого класса Sound()");



            for (int i = 0; i < 4; i++)
            {
                if (mas[i] is Rain)
                {
                    if (mas[i] is Express)
                    {
                        (mas[i] as Express).SoundExpress();
                    }
                    else
                    {
                        (mas[i] as Rain).SoundRain();
                    }
                }
                else if (mas[i] is Avtomobile)
                {
                    (mas[i] as Avtomobile).SoundAvto();
                }
                else
                {
                    mas[i].SoundTransport();
                }
            }
        }
예제 #5
0
        static void ScriptRequest()
        {
            string[] MasName          = { "Универсал", "Купе", "Лимузин", "Микроавтобус", "Кабиролет" };
            string[] MasNameOfExpress = { "Красная стрела", "Полярная стрела", "Восток", "Арктика", "Белоруссия" };
            int      n = 0;

            Console.WriteLine("На сколько элементов создать массив, в котором выполнять запросы?");
            CheckInput(out n);

            Transport[] mas = new Transport[n];

            for (int i = 0; i < n; i++)
            {
                if (i % 3 == 0)
                {
                    Rain a = new Rain(rand.Next(1, 10), rand.Next(100, 200), rand.Next(50, 2000));
                    mas[i] = a;
                }
                else
                if (i % 2 == 0)
                {
                    Avtomobile a = new Avtomobile(MasName[rand.Next(0, 4)], rand.Next(100, 400), rand.Next(2, 5));
                    mas[i] = a;
                }
                else
                if (i % 1 == 0)
                {
                    Express a = new Express(MasNameOfExpress[rand.Next(0, 4)], rand.Next(1, 10), rand.Next(100, 200), rand.Next(50, 2000));
                    mas[i] = a;
                }
                else
                {
                    Avtomobile a = new Avtomobile(MasName[rand.Next(0, 4)], rand.Next(100, 400), rand.Next(2, 5));
                    mas[i] = a;
                }
            }
            ShowMas(mas);
            bool flag = false;

            while (!flag)
            {
                Console.WriteLine(@"1. Показать автомобили, чья скорость выше n.
2. Показать поезда и экспрессы, числа вагонов которых больше n.
3. Показать транспорт, количество пассажиров которого меньше n.
5. Показать массив.
6. Выход");
                CheckInput(out int choise);
                switch (choise)
                {
                case 1:
                    Request1(mas);
                    break;

                case 2:
                    Request2(mas);
                    break;

                case 3:
                    Request3(mas);
                    break;

                case 5:
                    ShowMas(mas);
                    break;

                case 6:
                    flag = !flag;
                    break;

                default:
                    ShowRed("Введено неопрознанное значение!");
                    break;
                }
            }
        }