1、
#include
2、
int Request[100]={0};//请求资源向量
int temp[100]={0};//存放安全序列
int Work[100]={0};//存放系统可提供资源
int M=100;//作业的最大数为100
int N=100;//资源的最大数为100
void showdata()//显示资源矩阵
{
int i,j;
cout<<"系统目前可用的资源[Avaliable]:"< 3、r (j=0;j 4、){
cout<<" "< 5、进行资源分配
{
int j;
for (j=0;j 6、valiable[0];
Work[1]=Avaliable[1];
Work[2]=Avaliable[2];
for(i=0;i 7、sh[i]=True;
temp[k]=i;
i=-1;
k++;
flag++;
}
}
}
}
for(i=0;i 8、{//输出运行进程数组
cout< 9、
{
cout< 10、 if(Request[j]>Avaliable[j])//判断申请是否大于当前资源,若大于则
{ //出错
cout<<"进程"< 11、//根据进程需求量显示变换后的资源
safe();//根据进程需求量进行银行家算法判断
}
}
void addresources(){//添加资源
int n,flag;
cout<<"请输入需要添加资源种类的数量:";
cin>>n;
flag=N;
N=N+n;
for(int i=0;i 12、afe();
}
void delresources(){//删除资源
char ming;
int i,flag=1;
cout<<"请输入需要删除的资源名称:";
do{
cin>>ming;
for(i=0;i 13、[j+1];
Avaliable[j]=Avaliable[j+1];
}
N=N-1;
showdata();
safe();
}
void changeresources(){//修改资源函数
cout<<"系统目前可用的资源[Avaliable]:"< 14、ble[1]>>Avaliable[2];
cout<<"经修改后的系统可用资源为"< 15、x[flag][i];
Need[flag][i]=Max[flag][i]-Allocation[flag][i];
}
showdata();
safe();
}
int main()//主函数
{
int i,j,number,choice,m,n,flag;
char ming;
cout<<"*****************资源管理系统的设计与实现*****************"< 16、)
{
cout<<"资源"<>ming;
name[i]=ming;
cout<<"资源的数量:";
cin>>number;
Avaliable[i]=number;
}
cout< 17、ax[i][j];
do{
flag=0;
cout<<"请输入各进程已经申请的资源量("< 18、
cout<<"申请的资源大于最大需求量,请重新输入!\n";
}
while(flag);
showdata();//显示各种资源
safe();//用银行家算法判定系统是否安全
while(choice)
{
cout<<"**************银行家算法演示***************"< 19、t<<" 3:修改资源 "< 20、choice)
{
case 1: addresources();break;
case 2: delresources();break;
case 3: changeresources();break;
case 4: share();break;
case 5: addprocess();break;
case 0: choice=0;break;
default: cout<<"请正确选择功能号(0-5)!"<






