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(); }
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); } }