#include<iostream.h>
struct PCB{
char state;
int request;
int max;
int allocation;
};
void randomallocation(struct PCB p[],int av);
bool safecheck(struct PCB p[],int av);
void bankallocation(struct PCB p[],int av);
void show(struct PCB p[],int av);
void showorder(int order[]);
void main()
{
struct PCB process[3];
int i;
int j;
int k;
int available=10;
for(i=0;i<3;i++)
{
cout<<endl;
cout<<"p"<<i<<"->max: ";
cin>>process[i].max;
if(process[i].max>10)
{
cout<<endl;
cout<<"错误,请重新输入!";
i--;
}
else
{
do{
cout<<endl<<"->allocation: ";
cin>>process[i].allocation;
}while((process[i].allocation>process[i].max)||
(available-process[i].allocation<0));
available=available-process[i].allocation;
process[i].request=0;
process[i].state='R';
}
}
show(process,available);
cout<<endl<<"1--随机分配算法 2--银行家算法";
do{
cout<<endl<<"请选择: ";
cin>>i;
}while(!((i==1)||(i==2)));
if(i==1)
randomallocation(process,available);
else
{
do{
if(safecheck(process,available)==false)
{