示例#1
0
        static void Main(string[] args)
        {
            var firstClass = new FirstClass(10);
            var busClass = new BusinessClass(20);
            var economClass = new EconomClass(150);

            firstClass.Fill();
            busClass.Fill();
            economClass.Fill();

            var pilots = new List<Pilot> { new Pilot(), new Pilot() };
            var stuards = new List<Stuard>
            {
                new Stuard(),
                new Stuard(),
                new Stuard(),
                new Stuard(),
                new Stuard(),
                new Stuard()
            };

            var plane = new Plane.Plane(pilots, stuards);
            plane.AddUnit(firstClass);
            plane.AddUnit(busClass);
            plane.AddUnit(economClass);

            plane.GetBaggageStatus();

            Console.ReadLine();
        }
示例#2
0
        public void GetBaggageStatus()
        {
            foreach (var unit in GetUnits())
            {
                if (unit is FirstClass)
                    _firstClass = unit as FirstClass;
                if (unit is BusinessClass)
                    _businessClass = unit as BusinessClass;
                if (unit is EconomClass)
                    _economClass = unit as EconomClass;
            }

            if (_pilots == null || _pilots.Count != PilotsRequired || _stuards == null ||
                _stuards.Count != StuardsRequired)
            {
                Console.WriteLine("Недостаточно персонала");
                return;
            }

            if (_firstClass.GetUnits().Count == 0 || _businessClass.GetUnits().Count == 0 ||
                _economClass.GetUnits().Count == 0)
            {
                Console.WriteLine("Самолет без пассажиров");
                return;
            }

            Console.WriteLine("Карта загрузки самолета.");

            int economBaggage     = _economClass.GetUnits().Sum(passenger => passenger.GetBaggage());
            int businessBaggage   = _businessClass.GetUnits().Sum(businessman => businessman.GetBaggage());
            int firstClassBaggage = _firstClass.GetUnits().Sum(firstClassMan => firstClassMan.GetBaggage());

            int summary = economBaggage + businessBaggage + firstClassBaggage;

            Console.WriteLine("Багаж первого класса : {0}", firstClassBaggage);
            Console.WriteLine("Багаж бизнес класса : {0}", businessBaggage);
            Console.WriteLine("Багаж эконом класса : {0}", economBaggage);
            Console.WriteLine("Суммарный вес багажа : {0}", summary);

            if(summary > MaxWeight) Console.WriteLine("Самолет перегружен");
            if (summary - economBaggage > MaxWeight)
            {
                Console.WriteLine("Самолет перегружен без учета багажа эконом класса");
            }
            else
            {
                int passIndex = 0;

                while (summary > MaxWeight)
                {
                    summary -= _economClass.GetUnits()[passIndex].GetBaggage();
                    passIndex++;
                }

                Console.WriteLine("У {0} пассажиров эконом класса снят багаж. Текущий вес багажа {1}. Самолет готов к отправке", passIndex, summary);
            }
        }