示例#1
0
 public void AllPlaces(ref Train tr, out int places)
 {
     places = tr.PlacesCommon + tr.PlacesCoupe + tr.PlacesLuxury + tr.PlacesReserved;
 }
示例#2
0
        static void Main(string[] args)
        {
            int places, Size;

            Console.WriteLine("Введите размер массива классов Train: ");
            Size = Convert.ToInt32(Console.ReadLine());
            Train[] Trains = new Train[Size];

            //Простой конструктор (без параметров)
            Trains[0] = new Train();
            Trains[0].Output();


            //Конструктор с параметрами
            Trains[1] = new Train("Минск", 706, "6:33", 60, 45, 30, 40);
            Trains[1].Output();

            //Конструктор с параметрами по умолчанию
            Trains[2] = new Train("Минск", 60, 45, 30, places4: 30);
            Trains[2].Output();
            Trains[2].AllPlaces(ref Trains[2], out places);
            Console.WriteLine("Количество мест в поезде: {0}", places);

            //Trains[0].CounterOutput();

            Console.WriteLine($"Строка представляющая объект Trains: {Trains[0].ToString()}");

            Console.WriteLine($"Экземпляры Trains[0] и Trains[1] равны: {Trains[0].Equals(Trains[1])}");

            Console.WriteLine($"Хеш-код экземпляра Trains[0]: {Trains[0].GetHashCode()}");

            Console.WriteLine($"Тип экземпляра Trains[0]: {Trains[0].GetType()}");

            string dest;

            Console.WriteLine("Поезд с каким направлением вы хотите найти?");
            dest = Convert.ToString(Console.ReadLine());

            //Поиск поездов по месту прибытия
            for (int i = 0; i < Size; i++)
            {
                if (Trains[i].Destination == dest)
                {
                    Trains[i].Output();
                    break;
                }
            }

            Console.WriteLine("Поезд с каким направлением вы хотите найти?");
            dest = Convert.ToString(Console.ReadLine());
            string time;

            Console.WriteLine("После какого времени должен отправляться поезд?");
            time = Convert.ToString(Console.ReadLine());

            //Поиск поездов по месту прибытия и следующих после определенного времени
            for (int i = 0; i < Size; i++)
            {
                if (Trains[i].Destination == dest)
                {
                    int  hour1, hour2, minute1, minute2;
                    char ch;
                    //hour1 =
                    ch    = Trains[0].Time[0];
                    hour1 = (int)Char.GetNumericValue(Trains[0].Time[0]) * 10 + (int)Char.GetNumericValue(Trains[0].Time[1]);
                    //Console.WriteLine(hour1);
                    minute1 = (int)Char.GetNumericValue(Trains[0].Time[3]) * 10 + (int)Char.GetNumericValue(Trains[0].Time[4]);
                    hour2   = (int)Char.GetNumericValue(time[0]) * 10 + (int)Char.GetNumericValue(time[1]);
                    minute2 = (int)Char.GetNumericValue(time[3]) * 10 + (int)Char.GetNumericValue(time[4]);

                    if (((hour1 == hour2) && minute1 > minute2) || hour1 > hour2)
                    {
                        Trains[i].Output();
                        break;
                    }

                    Trains[i].Output();
                    break;
                }
            }


            var t = new { Destination = "Брест", Number = 702, Time = "11:10", PlacesCoupe = 60, PlacesCommon = 42, PlacesLuxury = 30, PlacesReserved = 20 };
        }