www.pudn.com > Banker_arithmetic.rar > Banker_arithmetic.cpp


#include  
#include  
#include  
#include  
#include  
#include  
 
const int MAX_P=20;  
const int MAXA=10; //定义A类资源的数量  
const int MAXB=5;  
const int MAXC=7;  
 
 
typedef struct node{  
int a;  
int b;  
int c;  
int remain_a;  
int remain_b;  
int remain_c;  
}bank;  
 
typedef struct node1{  
char name[20];  
int a;  
int b;  
int c;  
int need_a;  
int need_b;  
int need_c;  
}process;  
 
bank banker;  
process processes[MAX_P];  
int quantity;  
 
//初始化函数  
void initial()  
{  
int i;  
banker.a=MAXA;  
banker.b=MAXB;  
banker.c=MAXC;  
banker.remain_a=MAXA;  
banker.remain_b=MAXB;  
banker.remain_c=MAXC;  
 
for(i=0;i>name;  
 
for(i=0;i>need_a;  
cout<<"本作业所需B类资源:";  
cin>>need_b;  
cout<<"本作业所需C类资源:";  
cin>>need_c;  
 
t=1;  
cout<banker.remain_a){  
cout<<"错误,所需A类资源大于银行家所剩A类资源"<banker.remain_b){  
cout<<"错误,所需B类资源大于银行家所剩B类资源"<banker.remain_c){  
cout<<"错误,所需C类资源大于银行家所剩C类资源"<>name;  
 
p=-1;  
for(i=0;i>a;  
cout<<"该作业要申请B类资源数量:";  
cin>>b;  
cout<<"该作业要申请C类资源数量:";  
cin>>c;  
 
flag=1;  
if((a>banker.remain_a)||(a>processes[p].need_a-processes[p].a)){  
cout<<"错误,所申请A类资源大于银行家所剩A类资源或该进程还需数量"<banker.remain_b)||(b>processes[p].need_b-processes[p].b)){  
cout<<"错误,所申请B类资源大于银行家所剩B类资源或该进程还需数量"<banker.remain_c)||(c>processes[p].need_c-processes[p].c)){  
cout<<"错误,所申请C类资源大于银行家所剩C类资源或该进程还需数量"<>name;  
 
p=-1;  
for(i=0;i0){  
for(i=0;i>chioce;  
 
switch(chioce){  
case 1:  
add();  
break;  
case 2:  
bid();  
break;  
case 3:  
finished();  
break;  
case 4:  
view();  
break;  
case 0:  
flag=0;  
break;  
default:  
cout<<"选择错误"<