Смекни!
smekni.com

Разработка средств моделирования систем (стр. 9 из 10)

NAK 3 3 0 3 1000 1 1.540 0.513 0 0

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

1001 0 10298.607 1001 0 1


Приложение B

Листинг программы:

#include "stdafx.h"

#include <iostream>

#include <sstream>

#include <string>

#include <fstream>

#include <vector>

using namespace std;

ofstream file("GPSStext.txt");

class FuncStandart

{

public:

string fBETA()

{

float x;

ostringstream S;

cout<<"Stream (целое, большелиборавно 1): ";

cin>>x;

S<<"(BETA("<<x<<",";

cout<<"Min (вещественное, меньше чем Max): ";

cin>>x;

S<<x<<",";

cout<<"Max (вещественное, больше чем Min): ";

cin>>x;

S<<x<<",";

cout<<"Shape1 (положительное вещественное): ";

cin>>x;

S<<x<<",";

cout<<"Shape2 (положительное вещественное): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fBINOMIAL()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<"(BINOMIAL("<<x<<",";

cout<<"TrialCount (положительное целое): ";

cin>>x;

S<<x<<",";

cout<<"Probability (вещественное от 0 до 1): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fDUNIFORM()

{

float x;

ostringstream S;

cout<<"Strea m(целое, больше либо равно 1): ";

cin>>x;

S<<"(DUNIFORM("<<x<<",";

cout<<"Min (целое, меньше либо равно Max): ";

cin>>x;

S<<x<<",";

cout<<"Max (целое, больше либо равно Min): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string f_1()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<x<<",";

cout<<"Locate (вещественное): ";

cin>>x;

S<<x<<",";

cout<<"Scale (положительное вещественное): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string f_2()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<x<<",";

cout<<"Locate (вещественное): ";

cin>>x;

S<<x<<",";

cout<<"Scale (положительное вещественное): ";

cin>>x;

S<<x<<",";

cout<<"Shape (положительное вещественное): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fGEOMETRIC()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<"(GEOMETRIC("<<x<<",";

cout<<"Probability (вещественное от 0 до 1): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fNEGBINOM()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<"(NEGBINOM("<<x<<",";

cout<<"SuccessCount (положительноецелое): ";

cin>>x;

S<<x<<",";

cout<<"Probability (вещественное от 0 до 1): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fNORMAL()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<"(NORMAL("<<x<<",";

cout<<"Mean (вещественное): ";

cin>>x;

S<<x<<",";

cout<<"StdDev (положительное вещественное): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fPARETO()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<x<<",";

cout<<"Locate (положительное вещественное): ";

cin>>x;

S<<x<<",";

cout<<"Scale (положительное вещественное): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fPEARSON6()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<"(PEARSON6("<<x<<",";

cout<<"Locate (вещественное): ";

cin>>x;

S<<x<<",";

cout<<"Scale (положительное вещественное): ";

cin>>x;

S<<x<<",";

cout<<"Shape1 (положительное вещественное): ";

cin>>x;

S<<x<<",";

cout<<"Shape2 (положительное вещественное): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fPOISSON()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<"(POISSON("<<x<<",";

cout<<"Mean (положительное вещественное): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fTRIANGULAR()

{

float x;

ostringstream S;

cout<<"Stream (целое, больше либо равно 1): ";

cin>>x;

S<<"(TRIANGULAR("<<x<<",";

cout<<"Min(вещественное, меньше чем Mode): ";

cin>>x;

S<<x<<",";

cout<<"Max(вещественное, болше чем Mode): ";

cin>>x;

S<<x<<",";

cout<<"Mode(вещественно больше Min и меньше Max): ";

cin>>x;

S<<x<<"))";

return S.str();

}

string fUNIFORM()

{

float x;

ostringstream S;

cout<<"Stream(целое, больше либо равно 1): ";

cin>>x;

S<<"(UNIFORM("<<x<<",";

cout<<"Min(вещественное, меньше чем Max): ";

cin>>x;

S<<x<<",";

cout<<"Max(вещественное, болше чем Min): ";

cin>>x;

S<<x<<"))";

return S.str();

}

};

class GPSSOperatori:public FuncStandart

{

public:

int nF,nST,nFas,nQ;

string GENERATE()

{

int n,k,m,l;

float x,K,M,L;

ostringstream S;

S<<"GENERATE ";

M7:

cout<<"Промежуток времени между появлениями транзактов: &bsol;n";

cout<<"1 - Постоянный;&bsol;n";

cout<<"2 - Случайный;&bsol;n";

cout<<"3 - Задан функцией;&bsol;n";

cout<<"4 - Зависит от функции;&bsol;n";

cout<<"5 - Не задан;&bsol;n";

M1:

cout<<"Ваш выбор:";

cin>>n;

switch (n)

{

case 1:

cout<<"Время между появлениями транзактов: ";

cin>>x;

S<<x;

break;

case 2:

cout<<"Среднее время между появлениями транзактов: ";

cin>>x;

S<<x<<",";

cout<<"+/-: ";

cin>>x;

S<<x;

break;

case 3:

cout<<"1 - Стандартная функция;&bsol;n";

cout<<"2 - Пользовательская функция;&bsol;n";

M2:

cout<<"Ваш выбор: ";

cin>>k;

switch (k)

{

case 1:

S<<FStand();

break;

case 2:

FUNCTION();

S<<"FN$F_"<<nF;

break;

default:

cout<<"ВВеденоневерно!!!&bsol;n";

goto M2;

break;

}

break;

case 4:

cout<<"Постоянное значение, зависящее от функции: ";

cin>>x;

S<<x<<",";

cout<<"Функция:&bsol;n";

cout<<"1 - Стандартная функция;&bsol;n";

cout<<"2 - Пользовательская функция;&bsol;n";

M3:

cout<<"Ваш выбор: ";

cin>>k;

switch (k)

{

case 1:

S<<FStand();

break;

case 2:

FUNCTION();

S<<"FN$F_"<<nF;

break;

default:

cout<<"ВВеденоневерно!!!&bsol;n";

goto M3;

break;

}

break;

case 5:

break;

default:

cout<<"ВВедено неверно!!!&bsol;n";

goto M1;

break;

}

cout<<"Время задержки появления первого транзакта:&bsol;n";

cout<<"1 - задано;&bsol;n";

cout<<"2 - не задано;&bsol;n";

M4:

cout<<"Ваш выбор: ";

cin>>k;

switch(k)

{

case 1:

cout<<"Время: ";

cin>>K;

break;

case 2: break;

default:

cout<<"ВВедено неверно!!!&bsol;n";

goto M4;

break;

}

cout<<"Предельное число таранзактов:&bsol;n";

cout<<"1 - задано;&bsol;n";

cout<<"2 - не задано;&bsol;n";

M5:

cout<<"Ваш выбор: ";

cin>>m;

switch(m)

{

case 1:

cout<<"Количество транзактов: ";

cin>>M;

break;

case 2: break;

default:

cout<<"ВВедено неверно!!!&bsol;n";

goto M5;

break;

}

cout<<"Приоритет транзактов:&bsol;n";

cout<<"1 - задан;&bsol;n";

cout<<"2 - не задан;&bsol;n";

M6:

cout<<"Ваш выбор: ";

cin>>l;

switch(l)

{

case 1:

cout<<"Приоритет: ";

cin>>L;

break;

case 2: break;

default:

cout<<"ВВедено неверно!!!&bsol;n";

goto M6;

break;

}

if((k==1)||(m==1)||(l==1))

{

if(n%2==1) S<<",,";

else S<<",";

if((m==1)||(l==1))

{

if(k==1) S<<K<<",";

else S<<",";

if(l==1)

if(m==1) S<<M<<","<<L;

else S<<","<<L;

else S<<M;

}

else S<<K;

}

else

if(n==5)

{

cout<<"ВВеденоневерно!!!&bsol;n";

goto M7;

}

S<<endl;

system("cls");

return S.str();

}

string ADVANCE()

{

int n,k;

float x;

ostringstream S;

S<<"ADVANCE ";

cout<<"Время задержки транзакта: &bsol;n";

cout<<"1 - Постоянное;&bsol;n";

cout<<"2 - Случайное;&bsol;n";

cout<<"3 - Задано функцией;&bsol;n";

cout<<"4 - Зависит от функции;&bsol;n";

M1:

cout<<"Ваш выбор:";

cin>>n;

switch (n)

{

case 1:

cout<<"Времязадержки: ";

cin>>x;

S<<x<<endl;

break;

case 2:

cout<<"Среднее время задержки: ";

cin>>x;

S<<x<<",";

cout<<"+/-: ";

cin>>x;

S<<x<<endl;

break;

case 3:

cout<<"1 - Стандартная функция;&bsol;n";

cout<<"2 - Пользовательская функция;&bsol;n";

M2:

cout<<"Ваш выбор: ";

cin>>k;

switch (k)

{

case 1:

S<<FStand()<<endl;

break;

case 2:

FUNCTION();

S<<"FN$F_"<<nF<<endl;

break;

default:

cout<<"ВВеденоневерно!!!&bsol;n";

goto M2;

break;

}

break;

case 4:

cout<<"Постоянное значение, зависящее от функции: ";

cin>>x;

S<<x<<",";

cout<<"Функция:&bsol;n";

cout<<"1 - Стандартная функция;&bsol;n";

cout<<"2 - Пользовательская функция;&bsol;n";

M3:

cout<<"Ваш выбор: ";

cin>>k;

switch (k)

{

case 1:

S<<FStand()<<endl;

break;

case 2:

FUNCTION();

S<<"FN$F_"<<nF<<endl;

break;

default:

cout<<"ВВеденоневерно!!!&bsol;n";

goto M3;

break;

}

break;

default:

cout<<"ВВеденоневерно!!!&bsol;n";

goto M1;

break;

}

return S.str();

}

string ENTER(int ukaz)

{

nST++;

int n,x;

ostringstream S,Enter,Advance,Buf;

if(ukaz!=0) S<<"U_"<<ukaz<<" ";

cout<<"Число каналов: ";

cin>>x;

file<<"St_"<<nST<<" STORAGE "<<x<<endl;

cout<<"Число захвачиваемых каналов: ";

cin>>x;

Enter<<"ENTER St_"<<nST<<","<<x<<endl;

Advance<<ADVANCE();

M2:

cout<<"Сборстатистики:&bsol;n";

cout<<"1 - нахождение в очереди перед ОУ;&bsol;n";

cout<<"2 - нахождение в ОУ;&bsol;n";

cout<<"3 - общее время обработки транзакта (1+2);&bsol;n";

cout<<"4 - не требуется;&bsol;n";

M1:

cout<<"Ваш выбор: ";

cin>>n;

switch(n)

{

case 1:

nQ++;

Buf<<Enter.str();

Enter.str("");

Enter<<"QUEUE Q_"<<nQ<<endl<<Buf.str()<<"DEPART Q_"<<nQ<<endl;