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<<"Промежуток времени между появлениями транзактов: \n";
cout<<"1 - Постоянный;\n";
cout<<"2 - Случайный;\n";
cout<<"3 - Задан функцией;\n";
cout<<"4 - Зависит от функции;\n";
cout<<"5 - Не задан;\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 - Стандартная функция;\n";
cout<<"2 - Пользовательская функция;\n";
M2:
cout<<"Ваш выбор: ";
cin>>k;
switch (k)
{
case 1:
S<<FStand();
break;
case 2:
FUNCTION();
S<<"FN$F_"<<nF;
break;
default:
cout<<"ВВеденоневерно!!!\n";
goto M2;
break;
}
break;
case 4:
cout<<"Постоянное значение, зависящее от функции: ";
cin>>x;
S<<x<<",";
cout<<"Функция:\n";
cout<<"1 - Стандартная функция;\n";
cout<<"2 - Пользовательская функция;\n";
M3:
cout<<"Ваш выбор: ";
cin>>k;
switch (k)
{
case 1:
S<<FStand();
break;
case 2:
FUNCTION();
S<<"FN$F_"<<nF;
break;
default:
cout<<"ВВеденоневерно!!!\n";
goto M3;
break;
}
break;
case 5:
break;
default:
cout<<"ВВедено неверно!!!\n";
goto M1;
break;
}
cout<<"Время задержки появления первого транзакта:\n";
cout<<"1 - задано;\n";
cout<<"2 - не задано;\n";
M4:
cout<<"Ваш выбор: ";
cin>>k;
switch(k)
{
case 1:
cout<<"Время: ";
cin>>K;
break;
case 2: break;
default:
cout<<"ВВедено неверно!!!\n";
goto M4;
break;
}
cout<<"Предельное число таранзактов:\n";
cout<<"1 - задано;\n";
cout<<"2 - не задано;\n";
M5:
cout<<"Ваш выбор: ";
cin>>m;
switch(m)
{
case 1:
cout<<"Количество транзактов: ";
cin>>M;
break;
case 2: break;
default:
cout<<"ВВедено неверно!!!\n";
goto M5;
break;
}
cout<<"Приоритет транзактов:\n";
cout<<"1 - задан;\n";
cout<<"2 - не задан;\n";
M6:
cout<<"Ваш выбор: ";
cin>>l;
switch(l)
{
case 1:
cout<<"Приоритет: ";
cin>>L;
break;
case 2: break;
default:
cout<<"ВВедено неверно!!!\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<<"ВВеденоневерно!!!\n";
goto M7;
}
S<<endl;
system("cls");
return S.str();
}
string ADVANCE()
{
int n,k;
float x;
ostringstream S;
S<<"ADVANCE ";
cout<<"Время задержки транзакта: \n";
cout<<"1 - Постоянное;\n";
cout<<"2 - Случайное;\n";
cout<<"3 - Задано функцией;\n";
cout<<"4 - Зависит от функции;\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 - Стандартная функция;\n";
cout<<"2 - Пользовательская функция;\n";
M2:
cout<<"Ваш выбор: ";
cin>>k;
switch (k)
{
case 1:
S<<FStand()<<endl;
break;
case 2:
FUNCTION();
S<<"FN$F_"<<nF<<endl;
break;
default:
cout<<"ВВеденоневерно!!!\n";
goto M2;
break;
}
break;
case 4:
cout<<"Постоянное значение, зависящее от функции: ";
cin>>x;
S<<x<<",";
cout<<"Функция:\n";
cout<<"1 - Стандартная функция;\n";
cout<<"2 - Пользовательская функция;\n";
M3:
cout<<"Ваш выбор: ";
cin>>k;
switch (k)
{
case 1:
S<<FStand()<<endl;
break;
case 2:
FUNCTION();
S<<"FN$F_"<<nF<<endl;
break;
default:
cout<<"ВВеденоневерно!!!\n";
goto M3;
break;
}
break;
default:
cout<<"ВВеденоневерно!!!\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<<"Сборстатистики:\n";
cout<<"1 - нахождение в очереди перед ОУ;\n";
cout<<"2 - нахождение в ОУ;\n";
cout<<"3 - общее время обработки транзакта (1+2);\n";
cout<<"4 - не требуется;\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;