// 银行家算法.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;#define M 5/*进程数*/#define N 3/*资源数*/#define False 0#define True 1int Available[N]={ 3,3,2};//系统可用资源数int Max[M][N]={ { 7,5,3},{ 3,2,2},{ 9,0,2},{ 2,2,2},{ 4,3,3}};//M个进程对N类资源最大资源需求int Allocation[M][N]={ { 0,1,0},{ 2,0,0},{ 3,0,2},{ 2,1,1},{ 0,0,2}};//M个进程已分配到的资源int Need[M][N]={ { 0,0,0},{ 0,0,0},{ 0,0,0},{ 0,0,0},{ 0,0,0}};//M个进程还需要得到的资源情况void Showdata();//打印数组void Applydata();//申请资源int Check();//安全性检测void main(){ int n,i,j; //Need矩阵的计算 //插入代码for ( i = 0; i < M; i++) { for ( j = 0; j < N; j++) { Need[i][j] = Max[i][j] - Allocation[i][j]; if (Need[i][j]<0) { j--; continue; } } } while(1) { cout<<"****************************************************"< >n; switch(n) { case 1: Applydata();//请求资源 break; case 2: Showdata();//显示资源分配情况; break; default: return; } }}void Applydata(){ int i,j,flag=0,a=0,b=0; int temp[N];//定义临时数组,存放申请的资源量。 cout<<"输入进程的编号"< >i; cout<<"输入每个资源的请求"< >temp[j]; }//判断Request≤Available && Need /******** 插入代码 ********/for ( i = 0; i < N; i++) { if(temp[i]<=Need[a][i]){ if(temp[i]<=Available[i]){ flag++; } } } if(flag==N) { for(j=0;j "; } cout<