📄 进程管理.cpp
字号:
#include<iostream.h>
#include<conio.h>
#include<assert.h>
class queue;
class node{
friend class queue;
private:
int data;
char px;
node *link;
node(int d=0,int p=0,node *l=NULL):data(d),px(p),link(l){}
};
class queue{
public:
queue():rear(NULL),front(NULL){}
~queue();
void create(int a,char b);
int dequeue();
void view();
void infront(int a,char b);
int isempty()const{return front==NULL;}
private:
node *front;node *rear;
};
queue::~queue(){
node* p;
while(front!=NULL){
p=front;front=front->link;delete p;
}
}
void queue::create(int a,char b){
if(front==NULL)front=rear=new node(a,b,NULL);
else rear=rear->link=new node(a,b,NULL);
}
int queue::dequeue(){
assert(!isempty());
node *p=front;
int value=p->data;
front=front->link;
delete p;return value;
}
void queue::view(){
node *p;p=front;
while(p!=NULL){cout<<"进程"<<p->data<<",进程状态"<<p->px<<" ";p=p->link;}
}
void queue::infront(int a,char b){
node*p=front;p->link=front->link;front=new node(a,b,p);}
void main(){
queue A;
queue B;
queue C;
cout<<"************************进程程序演示***********************************"<<endl;
do{
cout<<"请选择1:create() 2:delete() 3:diaodu() 4:block() 5:wakeup() 6:view()"<<endl;
int n;cin>>n;
switch(n)
{
case 1:
{ int j;int m;int g;
cout<<"请输入你需要建立e-excute结点的个数"<<endl;cin>>j;
for(int i=1;i<=j;i++){A.create(i,'e');}
cout<<"请输入你需要建立r-ready结点的个数"<<endl;cin>>m;
for( i=j+1;i<=j+m;i++){B.create(i,'r');}
cout<<"请输入你需要建立b-block结点的个数"<<endl;cin>>g;
for( i=j+m+1;i<=j+m+g;i++){C.create(i,'b');};}
break;
case 2:
{C.dequeue();}break;
case 3:
{int a=A.dequeue();B.create(a,'r'); int b=B.dequeue();A.create(b,'e');}break;
case 4:
{int a=A.dequeue();C.create(a,'b'); int b=B.dequeue();A.create(b,'e');}break;
case 5:
{int a=C.dequeue();B.infront(a,'b');}break;
case 6:
{cout<<"3条进程队列显示"<<endl;
A.view();cout<<endl;B.view();cout<<endl;C.view();cout<<endl;}
}
}while(1);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -