银行家算法源程序

DDDD 大慧。 2024-05-27 03:47:59
最佳回答
-#include<stdio.h>#include<string.h>#include<iostream>#include<stdlib.h>#include<iomanip>#include<conio.h>using namespace std;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<max_p;i++){strcpy(processes[i].name,"");processes[i].a=0;processes[i].b=0;processes[i].c=0;processes[i].need_a=0;processes[i].need_b=0;processes[i].need_c=0;}}//新加作业void add(){char name[20];int flag=0;int t;int need_a,need_b,need_c;int i;cout<<endl;cout<<"新加作业"<<endl;cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━"<<endl;cout<<"请输入新加作业名:";cin>>name;for(i=0;i<quantity;i++){if(!strcmp(processes[i].name,name)){flag=1;break;}}if(flag){cout<<"错误,作业已存在"<<endl;}else{cout<<"本作业所需a类资源:";cin>>need_a;cout<<"本作业所需b类资源:";cin>>need_b;cout<<"本作业所需c类资源:";cin>>need_c;t=1;cout<<need_a<<banker.remain_a;if(need_a>banker.remain_a){cout<<"错误,所需a类资源大于银行家所剩a类资源"<<endl;t=0;}if(need_b>banker.remain_b){cout<<"错误,所需b类资源大于银行家所剩b类资源"<<endl;t=0;}if(need_c>banker.remain_c){cout<<"错误,所需c类资源大于银行家所剩c类资源"<<endl;t=0;}if(t){strcpy(processes[quantity].name,name);processes[quantity].need_a=need_a;processes[quantity].need_b=need_b;processes[quantity].need_c=need_c;quantity++;cout<<"新加作业成功"<<endl;}else{cout<<"新加作业失败"<<endl;}}}//为作业申请资源void bid(){char name[20];int i,p;int a,b,c;int flag;cout<<endl<<"为作业申请资源"<<endl;cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━"<<endl;cout<<"要申请资源的作业名:";cin>>name;p=-1;for(i=0;i<quantity;i++){if(!strcmp(processes[i].name,name)){p=i;break;}}if(p!=-1){cout<<"该作业要申请a类资源数量:";cin>>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类资源或该进程还需数量"<<endl;flag=0;}if((b>banker.remain_b)||(b>processes[p].need_b-processes[p].b)){cout<<"错误,所申请b类资源大于银行家所剩b类资源或该进程还需数量"<<endl;flag=0;}if((c>banker.remain_c)||(c>processes[p].need_c-processes[p].c)){cout<<"错误,所申请c类资源大于银行家所剩c类资源或该进程还需数量"<<endl;flag=0;}if(flag){banker.remain_a-=a;banker.remain_b-=b;banker.remain_c-=c;processes[p].a+=a;processes[p].b+=b;processes[p].c+=c;cout<<"为作业申请资源成功"<<endl;}else{cout<<"为作业申请资源失败"<<endl;}}else{cout<<"该作业不存在"<<endl;}}//撤消作业void fin**hed(){char name[20];int i,p;cout<<endl<<"撤消作业"<<endl;cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━"<<endl;cout<<"要撤消作业名:";cin>>name;p=-1;for(i=0;i<quantity;i++){if(!strcmp(processes[i].name,name)){p=i;break;}}if(p!=-1){banker.remain_a+=processes[p].a;banker.remain_b+=processes[p].b;banker.remain_c+=processes[p].c;for(i=p;i<quantity-1;i++){processes[i]=processes[i+1];}strcpy(processes[quantity-1].name,"");processes[quantity-1].a=0;processes[quantity-1].b=0;processes[quantity-1].c=0;processes[quantity-1].need_a=0;processes[quantity-1].need_b=0;processes[quantity-1].need_c=0;quantity--;cout<<"撤消作业成功"<<endl;}else{cout<<"撤消作业失败"<<endl;}}//查看资源情况void view(){int i;cout<<endl<<"查看资源情况"<<endl;cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━"<<endl;cout<<"银行家所剩资源(剩余资源/总共资源)"<<endl;cout<<"a类:"<<banker.remain_a<<"/"<<banker.a;cout<<" b类:"<<banker.remain_b<<"/"<<banker.b;cout<<" c类:"<<banker.remain_c<<"/"<<banker.c;cout<<endl<<endl<<"作业占用情况(已占用资源/所需资源)"<<endl<<endl;if(quantity>0){for(i=0;i<quantity;i++){cout<<"作业名:"<<processes[i].name<<endl;cout<<"a类:"<<processes[i].a<<"/"<<processes[i].need_a;cout<<" b类:"<<processes[i].b<<"/"<<processes[i].need_b;cout<<" c类:"<<processes[i].c<<"/"<<processes[i].need_c;cout<<endl;}}else{cout<<"当前没有作业"<<endl;}}//显示版权信息函数void version(){cout<<endl<<endl;cout<<" ┏━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<" ┃ 银 行 家 算 法 ┃"<<endl;cout<<" ┠———————————————————————┨"<<endl;cout<<" ┃ (c)all right reserved neo ┃"<<endl;cout<<" ┃ sony006@163.com ┃"<<endl;cout<<" ┃ version 2004 build 1122 ┃"<<endl;cout<<" ┗━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;cout<<endl<<endl;}int main(void){int chioce;int flag=1;initial();version();while(flag){cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━"<<endl;cout<<"1.新加作业 2.为作业申请资源 3.撤消作业"<<endl;cout<<"4.查看资源情况 0.退出系统"<<endl;cout<<"请选择:";cin>>chioce;switch(chioce){case 1:add();break;case 2:bid();break;case 3:fin**hed();break;case 4:view();break;case 0:flag=0;break;default:cout<<"选择错误"<<endl<<endl;}}return 0;} 20210311
汇率兑换计算器

类似问答
  • **挂失程序
    • 2024-05-27 04:07:32
    • 提问者: 未知
    **挂失程序 华律网根据你的法律疑问精选多位律师优质答案。
  • 银行家算法安全序列怎么判断
    • 2024-05-27 03:34:55
    • 提问者: 未知
    先说一下银行家的算设进程cusneed提出请求request [i],行家算法按如下规则判断。(1)如果request [cusneed] [i]<= need[cusneed][i],则2);否则,出错。(2)如果request [cusneed] [i]<= **ailable[i],则转(3);否则,等待。(3)系统试探分配兹源,修改相关数据:**ailable[i]-=requ...
  • 关于银行家算法
    • 2024-05-27 13:07:26
    • 提问者: 未知
    银行家算法=-- - 1. 安全状态: 在某时刻系统中所有进程可以排列一个安全序列:{p1,p2,`````pn},刚称此时,系统是安全的. 所谓安全序列{p1,p2,`````pn}是指对于p2,都有它所需要剩余资源数量不大于系统掌握的剩余的空间资源与所有pi(j<i)所占的资源之和. 2.不安全状态可能产生死锁. 目前状态 最大需...
  • 简述银行家算法。
    • 2024-05-27 20:25:49
    • 提问者: 未知
    参**:解析:操作系统按银行家制定的规则为进程分配兹源,可以使系统保持在安全状态,具体方法如下:①进程首次申请资源的分配。如果系统现存资源可以满足该进程的最大...
  • 民生银行欠款**司法程序
    • 2024-05-27 19:23:10
    • 提问者: 未知
    **欠款后,银行会发催款信息,**欠款逾期3个月以上,e79fa5e98193e78988e69d8331333431373165银行评估后就会报案。报案后当地**机关会要求本人去说明情况,如果不去说明,可以传讯或者转到**按**恶意透支走司法程序。根据中华人民共和国民法通则第一百零八条,债务应当清偿。...
  • **执行银行划扣程序
    • 2024-05-27 03:48:19
    • 提问者: 未知
    人民**采取冻结措施时,**执行银行划扣程序不得冻结被申请执行人银行账户内**指明用途的专项资金。...第二百二十七条 执行过程中,案外人对执行标的提出书面异议的,...
  • **采购法对单一来源采购程序有何规定
    • 2024-05-27 01:48:01
    • 提问者: 未知
    单一来源采购是指只能从唯一供应商处采购、不可预见的紧急情况、为了保证一致或配套服务从原供应商添购原合同金额10%以内的情形的**采购项目,采购人向特定的一个供应商采购的一种**采购方式。程序流程(1)采购预算与申请:采购人编制采购预算,填写采购申请表并提出采用单一来源采购方式的理由,经上级主管部门审核后提交财政管理部门。其中,属于因货物或者服务使用不可替代的专利、专有技术,或者公共服务项目具有特殊...
  • me31型**刷机方法(3:**程序写入)
    • 2024-05-27 20:59:27
    • 提问者: 未知
    1接上节(2:公钥写入)公钥写入完成后,首先点选下载列表中的文件名,然后点击“清空”按钮,将其清空,见下图。2点选”打开配置“按钮,如图所示。3选择相应文件夹下的l**t**程序后,点击打开,界面如下图所示:4将**的下载接口选好后,点击确定等待pc机对**程序的更新。5将本节3步所示界面的下载模式改为“u**”,选中“下载前清空“的选项后点击”应用下载“按钮。对**进行**程序的刷新。6刷新完成...
  • 银行放款程序
    • 2024-05-27 21:38:51
    • 提问者: 未知
    银行的要求没有法律依据,你们可以拒绝,要求按照合同履行。
  • 银行贷款程序
    • 2024-05-27 11:04:18
    • 提问者: 未知
    您好,如果您准备在招行申请贷款,银行这边审核贷款是根据您提供的资金用途证明以及您的个人综合信息审核确定能否办理的。一般需提供**明、婚姻证明、用途证明、担保证明和还款能力证明资料,若您的这笔贷款还需要提供其它资料,经办行这边也会及时通知您,您在申请贷款的时候也可以通过经办行详细确认此信息。  若您仍有疑问和意见,欢迎登录在线客服进行咨询,我们将竭诚为您服务!感谢您对招商银行的关注与支持!
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。