Beispiel #1
0
 public void AddTransportPlane(PlaneTransport plane)
 {
     if (GetAllPlanes().Count == parkCapacity)
     {
         throw new ParkLimitCapacityException();
     }
     else
     {
         TransportPark.Add(plane);
     }
 }
Beispiel #2
0
        private static void Main(string[] args)
        {
            //БД

            var dbNorth = new DbNorth();

            dbNorth.dbSelect();
            dbNorth.dbInsert();
            dbNorth.dbUpdate("Pasta/Tapas");
            dbNorth.dbDelete("Pasta/Tapas");

            dbNorth.callProcedure("Produce", 1996);
            dbNorth.callMyProcedure();


            //объявляем переменные с именами моделей самолетов
            string boeing737 = "Boeing 737";

            string boeing747 = "Boeing 747";

            string boeing777 = "Boeing 777";

            string il76 = "IL-76";

            string an124 = "AN-124";

            var aviaPark = new AviaPark();             //вызываем конструктор авиапарка с пустыми коллекциями самолетов

            //создаем экземпляры самолетов, задаем параметры
            string[] id;

            try
            {
                id = File.ReadAllLines("d:\\CNet\\PlanesID.txt");                 //читаем данные ID из файла на диске
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine("Создайте файл PlanesID.txt в каталоге d:\\CNet\\");
                Console.ReadKey();
                return;
            }
            catch (DirectoryNotFoundException ex1)
            {
                Console.WriteLine("Неправильное имя папки. Создайте каталог на диске d:\\CNet\\");
                Console.ReadKey();
                return;
            }

            PlanePassengers boeing1;
            PlanePassengers boeing2;
            PlanePassengers boeing3;
            PlanePassengers boeing4;
            PlanePassengers boeing5;
            PlanePassengers ty134;
            PlaneTransport  an1;
            PlaneTransport  il1;
            PlaneTransport  il2;

            try
            {
                boeing1 = new PlanePassengers()
                {
                    CapacityPassengers = 159,
                    ID        = id[0],
                    ModelName = boeing737,
                    Distance  = 7900
                };

                boeing2 = new PlanePassengers()
                {
                    CapacityPassengers = 279,
                    ID        = id[1],
                    ModelName = boeing747,
                    Distance  = 9000
                };

                boeing3 = new PlanePassengers()
                {
                    CapacityPassengers = 299,
                    ID        = id[2],
                    ModelName = boeing777,
                    Distance  = 15000
                };

                boeing4 = new PlanePassengers()
                {
                    CapacityPassengers = 159,
                    ID        = id[3],
                    ModelName = boeing737,
                    Distance  = 7900
                };
                boeing5 = new PlanePassengers()
                {
                    CapacityPassengers = 299,
                    ID        = id[4],
                    ModelName = boeing777,
                    Distance  = 15000
                };

                il1 = new PlaneTransport()
                {
                    CapacityCarrying = 127000,
                    ID        = id[5],
                    ModelName = il76,
                    Distance  = 6700
                };

                il2 = new PlaneTransport()
                {
                    CapacityCarrying = 127000,
                    ID        = id[6],
                    ModelName = il76,
                    Distance  = 6700
                };

                an1 = new PlaneTransport()
                {
                    CapacityCarrying = 222000,
                    ID        = id[7],
                    ModelName = an124,
                    Distance  = 7500
                };

                ty134                    = new PlanePassengers();
                ty134.Distance           = 5670;
                ty134.ID                 = id[8];
                ty134.CapacityPassengers = 130;
                ty134.ModelName          = "Ту-134";
            }

            catch (IndexOutOfRangeException ex)
            {
                Console.WriteLine("Создайте .txt файл содержащий ID самолетов парка");
                Console.ReadKey();
                return;
            }

            //JSON de\serialization

            string          serializedPlane       = JsonConvert.SerializeObject(boeing1);
            string          serializedTransport   = JsonConvert.SerializeObject(an1);
            PlaneTransport  desirializedTransport = JsonConvert.DeserializeObject <PlaneTransport>(serializedTransport);
            PlanePassengers deserializedPlane     = JsonConvert.DeserializeObject <PlanePassengers>(serializedPlane);

            try
            {
                aviaPark.AddPassengersPlane(deserializedPlane);
                aviaPark.AddPassengersPlane(boeing2);
                aviaPark.AddPassengersPlane(boeing3);
                aviaPark.AddPassengersPlane(boeing4);
                aviaPark.AddPassengersPlane(boeing5);
                aviaPark.AddPassengersPlane(ty134);

                aviaPark.AddTransportPlane(il1);
                aviaPark.AddTransportPlane(il2);
                aviaPark.AddTransportPlane(desirializedTransport);
            }
            catch (ParkLimitCapacityException ex)
            {
                Console.WriteLine(ex.Message);
            }


            var passengersCapacity = aviaPark.GetCommomPassengersCapacity();

            Console.WriteLine("Общая вместимость парка " + passengersCapacity + "чел");

            var carryingCapacity = aviaPark.GetCommonCarryingCapacity();

            Console.WriteLine("Общая грузоподъемность парка " + carryingCapacity + "кг");

            //сортировка по дальности полета

            var sortedPlanes = new List <PlaneBase>();

            aviaPark.SortPlanesByDistance(aviaPark.GetAllPlanes());

            Console.WriteLine("Доступные самолеты компании:");

            BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream fs = new FileStream("d:\\CNet\\Collection.dat", FileMode.OpenOrCreate))
            {
                List <PlaneBase> dePlanes = (List <PlaneBase>)formatter.Deserialize(fs);
                sortedPlanes = dePlanes;
                sortedPlanes.Reverse();
            }


            foreach (PlaneBase sortedPlane in sortedPlanes)
            {
                Console.WriteLine(sortedPlane.ID + " " + sortedPlane.ModelName + " " + sortedPlane.Distance + "км");
            }
            Console.WriteLine("Задайте параметры поиска. Введите дальность полета в км");
            double minDistance = 0;

            try
            {
                minDistance = GetMinDistance(Console.ReadLine());
            }
            catch (WrongArgumentException ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadKey();
                return;
            }
            catch (ArgumentNullException ex1)
            {
                Console.WriteLine("Необходимо ввести значение для поиска");
                Console.ReadKey();
                return;
            }
            Console.WriteLine("Введите массу груза в кг");
            var minCarryingCapacity = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Введите количество пассажиров");
            var minPassengersCapacity = Convert.ToInt16(Console.ReadLine());
            var planes = new List <PlaneBase>();

            try
            {
                planes = aviaPark.SearchPlane(minDistance, minCarryingCapacity, minPassengersCapacity);                 //результаты поиска
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine("Введены отрицательные значения. Поиск невозможен.");
                Console.ReadKey();
                return;
            }

            catch (PlanesNotFoundException ex1)
            {
                Console.WriteLine(ex1.Message);
                Console.ReadKey();
                return;
            }
            Console.WriteLine("Результаты поиска:\r\n");
            foreach (PlaneBase searchPlane in planes)
            {
                var SearchResultsLine = searchPlane.ID + " " + searchPlane.ModelName + " " + searchPlane.Distance + "км " + searchPlane.GetCapacityCarrying() + "кг " + searchPlane.GetCapacityPassengers() + "чел\r\n";
                File.AppendAllText("d:\\CNet\\PlanesSearchResults.txt", SearchResultsLine);                 //записываем результаты поиска в файл на диске
                Console.WriteLine(SearchResultsLine);
            }

            Console.WriteLine("Спасибо, что воспользовались услугами нашей авиакомпании! Удачи!");
            Console.ReadKey();
        }