Автор работы: Пользователь скрыл имя, 01 Февраля 2011 в 22:35, курсовая работа
Целью данной курсовой работы является закрепление теоретических основ и практических аспектов имитационного моделирования систем.
В курсовой работе необходимо выполнить следующие задания:
- анализ предметной области;
- анализ программных средств, которые используются для моделирования систем;
- разработать программу;
- провести тестирование;
- оформить объяснительную записку.
ВВЕДЕНИЕ……………………………………………………………………
РАЗДЕЛ 1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ……………………………
1.1. Основные понятия теории очередей……………………………………
1.2. Моделирование работы порта……………………………………………
1.3. Модельное время…………………………………………………………
1.4. Выводы……………………………………………………………………
РАЗДЕЛ 2 ОБОСНОВАНИЕ ВЫБОРА ПРОГРАММНЫХ СРЕДСТВ……
2.1. Стандартная библиотека STL……………………………………………
2.2. Выводы……………………………………………………………………
РАЗДЕЛ 3 ОПИСАНИЕ РАЗРАБОТАННОГО
ПРОГРАММНОГО ПРОДУКТА……………………………………………
3.1. Классы и объекты…………………………………………………………
3.2. События и методы…………………………………………………………
3.3. Реализация интерфейса……………………………………………………
3.4. Выводы……………………………………………………………………
РАЗДЕЛ 4 РУКОВОДСТВО ПРОГРАММИСТА……………………………
4.1. Назначение и условия применения программы…………………………
4.2. Состав программного продукта…………………………………………
4.3. Входные и исходные данные……………………………………………
РАЗДЕЛ 5 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ……………………………
5.1. Назначение программы…………………………………………………
5.2. Условия выполнения программы…………………………………………
5.3. Сообщение пользователю…………………………………………………
ВЫВОДЫ………………………………………………………………………
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ…………………………
Приложение А Текст программы……………………………………………
6
const static int storm_median=240; //4 часа - средняя длительность шторма
const static int storm_offset=120; //2 часа - максимальное отклонение
// const static float storm_mu=0.021; //1/48, где 48 часов - средняя
int to_arrival; //время до прибытия танкера типов 1,2,3
int to_in;
//время до окончания
int to_out; //время до окончания отчаливания
ListNode<Tanker> *queue_in; //очередь на причаливание
ListNode<Tanker> *queue_out; //очередь на отчаливание
Tanker *serving; //обслуживаемый танкер
int que_inLength; //длина очереди на причаливание
int que_outLength; //длина очереди на отчаливание
int to_sStart; //время до начала шторма
int to_sEnd; //время до окончания шторма
void *p; //указатель на порт
public:
Tug();
void stormStart(); //начало шторма
void stormEnd(); //окончание шторма
void Arrival_Sea(Tanker4 *t); //прибытие танкера четвертого типа
void Arrival_Sea(); //прибытие танкера типов 1,2,3
void Arrival_coast(Tanker *t); //танкер требует отчаливания
void Departure(); //окончание отчаливания
void Arrival(); //окончание причаливания
void run(); //диспетчер
void putPort(Port *a);
void choice();
//выбор танкера для
void Print();
};
//Класс Порт
class Port
{
const static int volume=3;
ListNode<Tanker> *queue; //очередь на погрузку
Tanker **serving; //загружаемые танкеры
int *to_serve; //время до окончания погрузки
int q_length; //длина очереди
void *t; //указатель на буксир
public:
Port();
~Port();
void Arrival(Tanker *a); //прибытие танкера
void Complete(int i); //завершение погрузки
void putTug(Tug *a);
void Print();
int FirstAvail();
int Busy();
void run(); //диспетчер
};
3.3.
Реализация интерфейса
Программа
состоит из формы Form1, на которой
расположены элементы label в количестве
26, 2 элемента textBox, 1 элемент button. Список
элементов и их свойств представлены в
таблице 3.1.
Таблица 3.1
Элементы
и их основные свойства
Объект | Значение поля Text/Caption | Описание |
1 | 2 | 3 |
Label1 | Время моделирования | Надпись |
Label2 | Число танкеров четвертого типа | Надпись |
Label3 | Завершили цикл обслуживания в порту | Надпись |
Label4 | Из них танкеров типов 1,2,3 | Надпись |
Label5 | Из них танкеров 4 типа | Надпись |
Label6 | Средняя длина очереди на причаливание | Надпись |
Label7 | Средняя длина очереди на отчаливание | Надпись |
Label9 | Среднее время пребывания на погрузку | Надпись |
Label10 | Среднее время пребывания на погрузке для танкеров типов 1,2,3 | Надпись |
Label11 | Среднее время пребывания на погрузке для танкеров 4 типа | Надпись |
Label12 | Коэффициент загрузки буксира | Надпись |
Продолжение таблицы 3.1
1 | 2 | 3 |
Label13-22 | Не рассчитано | Расчетные значения |
textBox1 | 10000 | Время моделирования |
textBox2 | 5 | число танкеров 4 типа |
Button1 | Рассчитать | Надпись. Нажать для начала расчета |
GroupBox | Собранные данные | Поле с расчетными данными |
class TForm1 : public TForm
{__published: // IDE-managed Components
TGroupBox *GroupBox1;
TLabel *Label1;
TLabel *Label2;
TEdit *Edit1;
TEdit *Edit2;
TButton *Button1;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TLabel *Label7;
TLabel *Label9;
TLabel *Label10;
TLabel *Label11;
TLabel *Label12;
TLabel *Label13;
TLabel *Label14;
TLabel *Label15;
TLabel *Label16;
TLabel *Label18;
TLabel *Label19;
TLabel *Label20;
TLabel *Label21;
TLabel *Label22;
void __fastcall Button1Click(TObject *Sender);
public: // User declarations
__fastcall TForm1(TComponent* Owner);};
3.4.
Выводы
Созданы четыре класса: Tanker, Tanker4, Tug, Port.
Базовым
классом будет класс
Для Tanker/Tanker4 можно выделить следующие события:
Танкеры выполняют в системе роль заявок, поэтому они не имеют моделирующих методов — все события, происходящие с ними, принимаются и обрабатываются объектами-серверами (Tug).
Для объекта Port событий всего два:
В результате тестирования работы программы было обнаружено, что потенциальным узким местом системы является погрузка в порту, где танкеры проводят все оставшееся время, так как обслуживания танкера буксиром фиксировано и равно 2 ч. При увеличении числа танкеров 4 типа и увеличивается
РАЗДЕЛ 4 руководство
программиста
4.1.
Назначение и условия
применения программы
Программа
создана для моделирования
Программный
продукт может быть запущен на
выполнение при наличии персонального
компьютера под управлением ОС Windows
9x/NT.
4.2.
Состав программного
продукта
Программный продукт состоит из следующих файлов:
4.3.
Входные и выходные
данные
В качестве входных параметров передаются: время моделирования (в минутах), количество танкеров четвертого типа.
Выходными данными являются:
Раздел 5 Руководство
пользователя
5.1.
Назначение программы
Программа
создана для моделирования
5.2.
Условия выполнения
программы
Программный продукт может быть запущен на выполнение при наличии персонального компьютера под управлением ОС Windows9x/NT.
Для
запуска программы необходимо перейти
в каталог, где она хранится, и
запустить файл Project1.exe. В открывшемся
окне установить по необходимости время
моделирования и необходимое число танкеров
четвертого типа, далее нажать кнопку
«Рассчитать». Собранные статистические
данные отображаются на форме ниже.
5.3. Сообщение пользователю.
Результат
выполнения программы выглядит следующим
образом (рис. 5.1).
Рис. 5.1 — Результат выполнения программы.
выводы
В ходе выполнения курсовой работы был выполнен анализ предметной области.
Было принято решение выбрать средой разработки программного продукта Borland C++ Builder.