вариант № 26

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 22 22 страницы
  • 5 + 5 источников
  • Добавлена 16.05.2009
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
Содержание
Введение
Постановка задачи.
Терминология.
Алгоритм программы
Инструкция к программе.
Исходный код программы
Результаты моделирования
Выводы
Заключение
Список литературы

Фрагмент для ознакомления

NextEventTime := FModelTime+FRunwayBusyTime;

FPlanes[FCurrentPlane].Status := psFlying; // Статус самолёта - взлетает
inc(Flying); // Увеличиваем число взлетевших самолётов
end
else
begin
FPlanes[FCurrentPlane].NextEventTime := FFreeRunWayTime;
// Если полоса занята - ждём освобождения

end
end;

procedure TAirPort.TryLanding;
begin
if not FIsRunWayBusy then // Если полоса не заянта
begin
FIsRunWayBusy := true; // Занять полосу
FFreeRunWayTime := FModelTime+FRunwayBusyTime; // Время осовбождения полосы текущее + 2 минуты
FPlanes[FCurrentPlane].NextEventTime := FModelTime+FRunwayBusyTime;

FPlanes[FCurrentPlane].Status := psLanding;// Статус самолёта - взлетает
inc(Landing); // Увеличиваем число взлетевших самолётов
end
else
begin
with FPlanes[FCurrentPlane] do
if AttemptCount < 5 then // Если число попыток меньше пяти
begin
// Делаем ещё попытку
NextEventTime := FModelTime+FWaitRoundTime;
Status := psWait;
inc(AttemptCount);
end
else
begin
// Если больше
// отправляем самолёт на другой аеродром
Status := psOther;
inc(Redirected);
end;
end
end;

procedure TfrmMain.btnFileClick(Sender: TObject);
var AirPort:TAirPort;
f:TextFile;
i:integer;
begin
AirPort := TAirPort.Create; // Создаём модель
AirPort.FEndTime := 24*60;
AirPort.LandingPlanesM := StrToFloat(self.edtLandingM.Text);
AirPort.LandingPlanesPM := StrToFloat(self.edtLandingPM.Text);
AirPort.FlyingPlanesM := StrToFloat(self.edtFLyingM.Text);
AirPort.FlyingPlanesPM := StrToFloat(self.edtFLyingPM.Text);;
AirPort.FRunwayBusyTime:=StrToFloat(self.edtBusy.Text);;
AirPort.FWaitRoundTime:=StrToFloat(self.edtWait.Text);;
// заполняем параметры

AssignFile(f,'res.csv');
Rewrite(f);
Writeln(f,'Перенаправлено;Взлетело;Приземлилось;Загрузка взлётной полосы');
// Записываем заголовок в файл

for I := 0 to 499 do
begin

AirPort.Run;
Writeln(f,AirPort.Redirected,';',AirPort.Flying,';',AirPort.Landing,';',(AirPort.Landing+AirPort.Flying)*AirPort.FRunwayBusyTime/AirPort.FEndTime);
end;
// Проводим 500 сеансов моделирования и записываем их в файл

CloseFile(f);
AirPort.Free;

end;

procedure TfrmMain.btnModelingClick(Sender: TObject);
var AirPort:TAirPort;
begin
AirPort := TAirPort.Create; // Создаём модель
AirPort.FEndTime := 24*60;
AirPort.LandingPlanesM := StrToFloat(self.edtLandingM.Text);
AirPort.LandingPlanesPM := StrToFloat(self.edtLandingPM.Text);
AirPort.FlyingPlanesM := StrToFloat(self.edtFLyingM.Text);
AirPort.FlyingPlanesPM := StrToFloat(self.edtFLyingPM.Text);;
AirPort.FRunwayBusyTime:=StrToFloat(self.edtBusy.Text);;
AirPort.FWaitRoundTime:=StrToFloat(self.edtWait.Text);;
AirPort.Run;
// заполняем параметры

edtRedirected.Caption := IntToStr( AirPort.Redirected);
edtFlying.Caption := IntToStr( AirPort.Flying);
edtLanding.Caption := IntToStr( AirPort.Landing);
edtP.Caption := FloatToStr((AirPort.Landing+AirPort.Flying)*AirPort.FRunwayBusyTime/AirPort.FEndTime);
// Загрузку вычисляем как время заянятости полосы к общему времени работы системы

AirPort.Free;
end;
begin
Randomize;
end.

Результаты моделирования
(Время моделирования – 8 часов, среднее за 500 прогонов)
Приземлилось Взлетело Перенаправлено Загрузка взлётной полосы 143,16 142,91 0,04 0,4
Выводы
Из результатов моделирования понятно, что аэропорт обладает определенным запасом пропускной способности, и нагрузка на него может быть увеличена без потерь самолётами времени на ожидание.
Заключение
В данном курсовом проекте была создана программа, реализующая имитационную модель аэропорта, и проведено исследование её характеристик. Имитационное моделирование — удобный способ решить задачу исследования поведения системы в случае, если провести эксперименты на реальной модели затруднительно, дорого или вовсе невозможно.
Список литературы
1.     Шенном Р. Имитационное моделирование систем — искусство и наука; пер с англ. — Москва: Наука, 1985.— 237 с.
2.    Цифровая имитация автоматизированных систем — Москва: Институт проблем передач информации АН СССР, 1983.— 139 с.
3.    Хомоненко А. Гофман В. Мещеряков Е. Никифоров В. Delphi 7 — Санкт-Петербург: БХВ-Санкт-Петербург, 2006.— 1216 с.




Передвинуть модельное время до времени смены статуса выбранного самолёта.
Изменить самолёту статус.
Изменить его время смены статуса в соответствии с новым статусом.

Да

У следующего самолёта время смены статуса меньше?

Поменять местами текущий и следующий
Перейти к следующему

Нет

Да

Да

Выбрать первый не ушедший самолёт


Нет

Да

Обработать результаты

Конец

Модельное время больше времени окончания моделирования (ModelTime > EndTime)?

Создать достаточное количество самолётов

Начало

. Шенном Р. Имитационное моделирование систем — искусство и наука; пер с англ. — Москва: Наука, 1985.— 237 с.
2. Цифровая имитация автоматизированных систем — Москва: Институт проблем передач информации АН СССР, 1983.— 139 с.
3. Хомоненко А. Гофман В. Мещеряков Е. Никифоров В. Delphi 7 — Санкт-Петербург: БХВ-Санкт-Петербург, 2006.— 1216 с.