Сделай Сам Свою Работу на 5

Основные переменные, константы и типы модуля





int timeAll –количество тактов.

double potokS – плотность прилета самолетов.

double timeOne – среднее время работы над одним самолетом.

double timeWait – среднее время ожидания дозаправки.

int s1,s2,s3,s4 – перменные используемые для проверки занятости дозаправщиков.

int timeWork1,2,3,4 – используются для выражения времени работы дозаправшиков 1,2,3 и 4.

Отладка и тестирование программного продукта

В ходе отладки и тестирования программы осуществлялся ввод входных данных различного диапазона. Правильность выдаваемых данных, их адекватность и соответствие требуемым условиям.

Далее показаны снимки программы на различных этапах, с различными исходными данными.

Исходное состояние окна показано на рисунке 8:

Рис. 8

Результат в течении 8 часов представлен на рисунке 9:

Рис. 9

 

На рисунке 10 показан результат в течении 24 часов:

Рис. 10

Окно программы с предупреждением о невозможности анализа с нулевым начальным средним веременм обслуживания

Руководство пользователю

Разрабатываемая программа предназначена для моделированя работы дозаправщиков в воздухе в течении нескольких часов и нахождение требуемой статистики.



Входными данными программы являются среднее время дозаправки одного самолета, среднее время прилета следующего клиента, среднее время ожидания дозаправки, время работы дозаправщиков.

К выходным данным относятся вычисление различных вероятностей и расчет статистических данных выводимх на экран в виде текста.

После ввода всех значений можно провести моделирования, нажав клавижу «Начать».


ПРИЛОЖЕНИЕ: Листинг программы

//==============

#include <vcl.h>

#include <cstdlib>

#include <iostream>

#include <vector>

#include <math.h>

 

using namespace std;

 

#pragma hdrstop

#include "Unit1.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

 

void __fastcall TForm2::Button2Click(TObject *Sender)

{

Form2->Visible = false;

Form1->Visible = true;

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)

{

srand ( time(NULL) );



vector <int> ocher;

int N;

N = StrToInt(Edit4->Text);

 

int timeAll=( (N*60) ), taktAll=N*60;

int PlaneNew = 0, timeLast = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, i=0, timeNext = 0;

int timeWork1 = 0, timeWork2 = 0, timeWork3 = 0, timeWork4 = 0, planeTime = 0;

double randNext = 0, planeWait = 0, potokS = 0.4, timeOne = 0.17, timeWait = 0.333;

int PlaneIn = 0, PlaneMiss = 0, PlaneApply = 0, vsego=0, statOcher2 = 0, statTime2 = 0;

double statApply = 0, statApply1 = 0, statApply2 = 0, statOcher1 = 0, statOcher4 = 0, statOcher3 = 0, statTime1 = 0, statTime88 = 0;

 

for( ; timeAll > 0; timeAll-- )

{

if ( timeLast == 0 )

{

vsego++;

PlaneIn++;

PlaneNew = 1;

randNext = 1 + rand()%99;

randNext = randNext/100;

timeNext = (-1/potokS)*log(randNext);

if (timeNext==0) timeNext=2;

timeLast = timeNext;

}

 

if(PlaneNew == 1)

{

planeWait = 1 + rand()%99;

planeWait = planeWait/100;

planeTime = (-1/timeWait)*log(planeWait);

if (planeTime==0) planeTime=2;

statTime2 = planeTime + statTime2;

ocher.push_back(planeTime);

 

if ( s1 == 0 || s2 == 0 || s3 == 0 || s4 == 0 )

 

{

 

for(i=0; i<ocher.size(); i++)

{

if (ocher[i]>0)

{

ocher[i]=-2;

break;

}

 

}

 

if( s1==0 )

{

randNext = 1 + rand()%99;

randNext = randNext/100;

timeWork1 = (-1/timeOne)*log(randNext);

s1++;

}

else

if( s2==0 )

{

randNext = 1 + rand()%99;

randNext = randNext/100;

timeWork2 = (-1/timeOne)*log(randNext);

s2++;

}

else

if( s3==0 )

{

randNext = 1 + rand()%99;

randNext = randNext/100;

timeWork3 = (-1/timeOne)*log(randNext);

s3++;

}

else

if( s4==0 )

{

randNext = 1 + rand()%99;

randNext = randNext/100;

timeWork4 = (-1/timeOne)*log(randNext);

s4++;

}

//---------------

}

 

}

if( s1==1&&timeWork1>0 ) timeWork1--;

if( s1==1&&timeWork1==0 )

{

s1--;

PlaneApply++;

PlaneIn--;

}

if( s2==1&&timeWork2>0 ) timeWork2--;

if( s2==1&&timeWork2==0 )

{

s2--;

PlaneApply++;

PlaneIn--;

}

 

if( s3==1&&timeWork3>0) timeWork3--;

if( s3==1&&timeWork3==0 )

{

s3--;

PlaneApply++;

PlaneIn--;

}

if( s4==1&&timeWork4>0) timeWork4--;

if( s4==1&&timeWork4==0 )

{

s4--;

PlaneApply++;

PlaneIn--;

}

 

timeLast--;

for(i=0; i<ocher.size(); i++)

{

if (ocher[i]>=0) ocher[i]--;

if (ocher[i]==(-1))

{

PlaneMiss++;

ocher[i]--;

PlaneIn--;

}

 

}

 

PlaneNew = 0;

for(i=0; i<ocher.size(); i++)

{

if (ocher[i]>=0) statOcher2++;

 

}

 

}

if(PlaneIn != 0) PlaneMiss = PlaneMiss+PlaneIn;



 

 

statApply1 = PlaneApply;

statApply2 = vsego;

statApply = statApply1/statApply2;

statOcher3 = statOcher2;

statOcher4 = taktAll;

statOcher1 = statOcher3/statOcher4;

statTime88 = statTime2;

statTime1 = statTime88/statOcher4;

 

String count;

String count2;

String count3;

String count4;

String count5;

String count6;

 

count=FloatToStr(PlaneApply);

count2=FloatToStr(statApply);

count6=FloatToStr(PlaneMiss);

count4=FloatToStr(statOcher1);

count5=FloatToStr(statTime1);

 

Edit1->Text=count5;

Edit2->Text=count1;

Edit3->Text=count6;

Edit4->Text=count2;

Edit5->Text=count3;

 

}

//---------------------------------------------------------------------------

 


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

 

 

1. И.В.Зотов, Э.И.Ватутин, Д.Б.Борзов “Процедурно – ориентированное программирование на С++”, Курск 2008

2. Г. Шилдт <<C++ Шаг за шагом>> 621 c.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.