public CFlight(string id, CAirport new_start, CAirport new_end, DateTime new_takeoff, DateTime new_landing) { //создание рейса name = id; start = new_start; end = new_end; takeoff = new_takeoff; landing = new_landing; }
public CPlane(CAirport airport, int seats) { //создание самолёта landed = true; landed_in = airport; num_engaged = 0; flight = null; passengers = new CPassenger[seats]; }
public void Takeoff() { //взлёт if (landed) { //самолёт не в воздухе landed_in = null; landed = false; } else { //самолёт в воздухе _Exception exc = new _Exception("Самолет уже летит, а ты его запустить хочешь"); throw (exc); } }
public void Land(CAirport airport) { //приземление if (!landed) { //самолёт в воздухе landed = true; landed_in = airport; for (int i = 0; i < 100; i++) { this.kick_passenger(i); //высаживаем i-го пассажира } airport.busy = false; flight = null; //задание выполнено } else { //самолёт не в воздухе _Exception exc = new _Exception("Только Чаке может сажать самолёт два раза подряд"); throw (exc); } }
private void Init() { Thread thr_model = new Thread(new ThreadStart(Modelling)); thr_model.IsBackground = true; Thread thr_time = new Thread(new ThreadStart(Timing)); thr_time.IsBackground = true; airports = new CAirport[planescount]; planes = new CPlane[planescount]; for (int i = 0; i < planescount; i++) { //создаём аэропорты и самолёты airports[i] = new CAirport(i.ToString()); planes[i] = new CPlane(airports[i], seats); Invoke(new OutputDelegate(Output), new object[] { String.Format("Работа... {0}", globaltime.ToString("f")) }); } thr_model.Start(); thr_time.Start(); button1.Text = "Остановить"; }