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;i 0){ 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<<"选择错误"<