当前位置:文档之家› 时间片轮转算法(C++版)

时间片轮转算法(C++版)


//===================qGetNumber============================= int Queue_c::qGetNumber() {int i; i=((rear-front+QueueNum)%QueueNum); return i; } //==================qGetElem============================== ElemType Queue_c::qGetElem(int i) { if(qEmpty()){cout<<"ERROR!"<<endl;return ERROR;} if(i>qGetNumber()-1) { cout<<"ERROR! there is no "<<i<<",or no "<<i<<" in Queue now"<<endl; return ERROR; } return Q[(front+i)%QueueNum]; } //======================qShowQueue========================== int Queue_c::qShowQueue() {int i; if(qEmpty())return ERROR;
} //int qXChange(int); }; //==================Define of Class Queue_c================================= ==== //===================================================================== ========= class Work_c { Queue_c buf; public: int wCPU(); // ElemType wScan(int &t); int wMakeP(); int wShowBUF(){return buf.qShowQueue();} int wInBUF(int i){return buf.qEnQueue(i);} }; //==================Define of Class Work_c================================== === //===================================================================== ========= /*******************************==main==*************************************** ************* ********************************==proc==*************************************** ************/ void main() { Work_c w; int i; //w.wInBUF(5); // w.wInBUF(3); // w.wInBUF(1); clrscr(); char flag='y'; for(i=0;i<10;i++) { //w.buf.qShowQueue(); w.w);
/************************Class Queue_c**********************************/ //================Queue_c================================ Queue_c::Queue_c() { int i; for(i=0;i<QueueNum;i++)Q[i]=QueuePre; rear=0; front=0; } //=====================qFull=========================== int Queue_c::qFull() { if((rear+1)%QueueNum==front) {//cout<<"Queue is full"<<endl; return OK;} else return ERROR; } //================qEmpty================================ int Queue_c::qEmpty() { if(rear==front) {// cout<<"Queue is Empty"<<endl; return OK; } //endif else return ERROR; } //===============qEnQueue=================================
temp=buf.qDeQueue(); if(temp>0)buf.qEnQueue(temp); return OK; } //======================wScan========================= //ElemType Work_c::wScan(int &t) //{ //int i,m=12; //ElemType temp; //for(i=0;i<buf.qGetNumber();i++) // { // temp=buf.qGetElem(i); // if(temp<m){m=temp;t=i;}//endif // }//endfor // if(m<=0||m>buf.qGetFrontElem())return ERROR;// 如果是负数的话在这里就被拦下来了 , 所 以,传出出去的 m 不可能是负数 //return m; //} //======================wMakeP========================= int Work_c::wMakeP() { int t; t=random(200)%2; if(t){buf.qEnQueue(random(10)+1);return OK;} return ERROR; } //======================================================== /**************************End of Class Work_c*********************************/
#include<iostream.h> #include<stdlib.h> #include <conio.h> const int QueueNum=10; const int QueuePre=-1; const int ERROR=0; const int OK=1; const int TimePiece=1; typedef int ElemType; //head define.................... /*************************************************************/ class Queue_c { ElemType Q[QueueNum]; int front,rear; public: //basic information of the class Queue_c: Queue_c(); int qFull(); int qEmpty(); int qEnQueue(ElemType e); ElemType qDeQueue(); int qGetNumber(); int qGetElem(int); int qShowQueue(); //other functions: ElemType qGetFrontElem(){if(qEmpty()){cout<<"ERROR!"<<endl;return ERROR;}return Q[fro nt];} //int qGetFront(){if(qEmpty()){cout<<"ERROR!"<<endl;return ERROR;}return front;} //ElemType qGetRearElem(){if(qEmpty()){cout<<"ERROR!"<<endl;return ERROR;}return Q[(r ear-1+QueueNum)%QueueNum];} //int qGetRear(){if(qEmpty()){cout<<"ERROR!"<<endl;return ERROR;}return (rear-1+QueueNu m)%QueueNum;} //int qShowAll(); int qDec() { if(qEmpty()){cout<<"ERROR!"<<endl;return ERROR;}//endif Q[front]-=TimePiece; return OK;
if(9==i) { cout<<"Are you want to continue?y/n"<<endl; cin>>flag; if('n'==flag)break;else i=0; clrscr(); }//endif }//endfor } /********************************==END==************************************* **************** *********************************==main==************************************* **************/
相关主题