📄 shijianpian.h
字号:
// RenBinOS.cpp : Defines the entry point for the console application.
//
// Test.cpp : 定义控制台应用程序的入口点。
//
#include <vector>
#ifndef SHIJIANPIAN_H_
#define SHIJIANPIAN_H_
const int QOK=1;
const int QERROR=1;
const int QOVERFLOW=-1;
typedef int Status;
/*时间片轮转算法*/
/* 进程信息 */
typedef struct ElemType
{
char name[10];/*进程名称*/
int arriveTime;/*进程到达时间*/
int cpuTime;/*进程所需时间片数*/
int alreadyTime;/*进程已运行时间片数*/
int needTime;/*进程完成仍需时间*/
char state; /*进程状态:"R"运行;"W"等待;"F"完成*/
ElemType( char* name2, int arrTime, int cpuTime2 )
{
memset( name, 0, 10 );
memcpy( name, name2, 10 );
arriveTime = arrTime;
cpuTime = cpuTime2;
needTime = cpuTime2;
state = 'W';
}
ElemType()
{
memset( name, 0, 10 );
arriveTime = 0;
cpuTime = 0;
alreadyTime = 0;
needTime = 0;
state = 'W';
}
ElemType& operator = ( const ElemType& elem )
{
memset( name, 0, 10 );
memcpy( name, elem.name, 10 );
arriveTime = elem.arriveTime;
cpuTime = elem.cpuTime;
alreadyTime = elem.alreadyTime;
needTime = elem.needTime;
state = elem.state;
return *this;
}
}ElemType;
/*结点类型*/
typedef struct PCB
{
ElemType data;
struct PCB *next;
}PCB,*PCBQueue;
/*链队列类型*/
class LinkQueue {
public:
PCBQueue front; /*队头指针*/
PCBQueue rear; /*队尾指针*/
private:
int totalTime; /* 运行总时间 */
int curTime; /* 现在运行时间 */
std::vector<ElemType> vecElem;
typedef std::vector<ElemType>::const_iterator QCIT;
ElemType lastElem;
bool bLastOver;
int nZhouzhuanTime;
////////////////////////////////////////////
public:
LinkQueue(); //初始化
~LinkQueue(); //销毁
int GetLength() const; //队列长度
int GetTotalTime() const; //队列运行总时间
bool IsEmpty() const; //队列是否为空
ElemType GetLastRun(){ return lastElem; } // 上次运行进程
void SetElemVec( const std::vector<ElemType>& vec ); //加入要运行的进程
Status EnQueue( ElemType elem ); //入队列
Status DeQueue( ElemType& elem ); //删对头
Status RunOnce(); //运行进程
std::vector<ElemType>::const_iterator NewArrive( int iTime, QCIT it ); //判断是否有新进程入
void ShowList();
bool IsLastOver() const { return bLastOver; }
int GetLastZhouZhuan() const { return nZhouzhuanTime; }
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -