|
5 .
Buffer.h
#include <vector>
#include <stdio.h>
#include <string>
using namespace std;
/* , */
struct BufferElement{
int iNumOfSource; //
int iNumOfRequest; //
double fTimeAppear; //
};
class Buffer{
public:
int iNumOfPlaces; //
vector<BufferElement> buf; //
Buffer(int); //,
void add(BufferElement); //
BufferElement* remove(double);//
BufferElement* shift(double);// ( , )
bool hasFreeSpace();//
bool empty(); // ?
string getStatistic(); // .
void clear(); //
};
| Device.h
#include <stdio.h>
#include <string>
using namespace std;
class Device {
public:
int iNumOfServedRequests; //
int iCurrentSourceNum; //
int iCurrentRequestNum; //
int iNumOfDevice; //
double fTimeRelease; //
double fTimeOfSilence; //,
double fTimeOfWorking; //
double fUseFactor; //
double fRate; //
double fT1; //
double fT2; //
bool bWaiting; // ?
Device(double,double,int); //
void service(double*,double,int,int); //
bool free(double fTime); // ?
string getStatistic(); //
void clear(); //
};
| Source.h
#include <stdio.h>
#include <string>
using namespace std;
class Source{
public:
int iTotalRequestsNum; //
int iFailedRequestsNum; //
int iSuccessfulRequestsNum; //
int iNumOfSource; //
int iNumOfWaiting; // ,
int iNumOfDevices; //
double fTimeEntrance; //
double fTimeWaiting; //
double fTimeInSystem; //
double fTimeInDevice; //
double fRejectChance; //
double fLambda; //
double fRate;
bool bStillInSystem; // ?
Source(int,double); //
void genRequest(); //
void clear(); //
string getStatistic(); //
};
| Manager.h
#include "Device.h"
#include "Buffer.h"
#include "Source.h"
/* , */
class Manager{
private:
vector<Device>* pDevice; //
vector<Source>* pSource; //
Buffer* pBuffer; //
public:
int iCurrentNumberOfRequests; //
Manager(vector<Device> &,vector<Source> &, Buffer &,int); //
/* */
Source* getSourceByEnrtanceTime(double);
Device* getPriorityFreeDevice(double);
Device* getDeviceByReleaseTime(double);
Device* getDeviceByNum(int);
Source* getSourceByNum(int);
/**************************/
BufferElement getFromBuffer(double); //
bool freeDeviceExist(double); // ?
void putToDevice(Device*, BufferElement&, double);//
void setToBuffer(BufferElement&, double); //
void printCalendar(); //
void printStat(FILE* file); //
void clear(); //
};
| Model.h
#include "Manager.h"
/* */
class Model{
private:
Manager manager;
int state1;
int state2;
double realTime;
bool exit;
bool needGenerateMore();
void makeNewRequest(int);
double getEarliestEvent();
double getEarliestRequestTime();
double getEarliestDeviceReleaseTime();
double getLastDeviceReleaseTime();
void setStatistic();
BufferElement makeBufFromSrc(Source* src);
public:
int iNumOfSources;
int iNumOfDevices;
int iNumOfPlaceInBuffer;
int iMinNumOfRequests;
int iNumOfIterations;
vector<double> fT1;
vector<double> fT2;
vector<double> fLambda;
double fFirtsTimeEntrance;
double realizationTime;
double probOfRejection;
double useCoef;
double precision;
double devRate;
double srcRate;
double srcTimeInSystem;
bool autoMode;
vector<Source> source;
vector<Device> device;
Buffer buffer;
Model();
void setSameParameters(int,int,int,int,double,double,double);
void setParameters(int,int,int,int,vector<double>,vector<double>,vector<double>);
void init();
void setDefault();
void simulate();
void destroy();
void printStatistic(FILE* file);
void printAllStatistic(FILE* file);
void printFinalStat(FILE* file);
};
|
: 2016-09-03; !; : 332 | :
:
, . ==> ... 1797 - | 1610 -
© 2015-2024 lektsii.org - - |