银行家算法c++描述

凉 薄? 2024-06-26 13:22:38
最佳回答
#include <iostream> #include <string> #define m 3 //资源的种类数 #define n 5 //进程的个数 void output(int imax[n][m],int iallocation[n][m],int ineed[n][m],int i**ailable[m],char cname[n]); //统一的输出格式 bool safety(int iallocation[n][m],int ineed[n][m],int i**ailable[m],char cname[n]); bool banker(int iallocation[n][m],int ineed[n][m],int i**ailable[m],char cname[n]); int main() { int i,j; //当前可用每类资源的资源数 int i**ailable[m]={3,3,2}; //系统中n个进程中的每一个进程对m类资源的最大需求 int imax[n][m]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}}; //ineed[n][m]每一个进程尚需的各类资源数 //iallocation[n][m]为系统中每一类资源当前已分配给每一进程的资源数 int ineed[n][m],iallocation[n][m]={{0,1,1},{2,0,0},{3,0,2},{2,1,1},{0,0,2}}; //进程名 char cname[n]={'a','b','c','d','e'}; bool bexitflag=true; //退出标记 char ch; //接收选择是否继续提出申请时传进来的值 bool bsafe; //存放安全与否的标志 //计算ineed[n][m]的值 for(i=0;i<n;i++) for(j=0;j<m;j++) ineed[i][j]=imax[i][j]-iallocation[i][j]; //输出初始值 output(imax,iallocation,ineed,i**ailable,cname); //判断当前状态是否安全 bsafe=safety(iallocation,ineed,i**ailable,cname); //是否继续提出申请 while(bexitflag) { cout<<"\n"<<"继续提出申请?\ny为是;n为否。\n"; cin>>ch; switch(ch) { case 'y': //cout<<"调用银行家算法"; bsafe=banker(iallocation,ineed,i**ailable,cname); if (bsafe) //安全,则输出变化后的数据 output(imax,iallocation,ineed,i**ailable,cname); break; case 'n': cout<<"退出。\n"; bexitflag=false; break; default: cout<<"输入有误,请重新输入:\n"; } } } //输出 void output(int imax[n][m],int iallocation[n][m],int ineed[n][m],int i**ailable[m],char cname[n]) { int i,j; cout<<"\n\t max \tallocation\t need \t **ailable"<<endl; cout<<"\ta b c\ta b c\ta b c\t a b c"<<endl; for(i=0;i<n;i++) { cout<<cname[i]<<"\t"; for(j=0;j<m;j++) cout<<imax[i][j]<<" "; cout<<"\t"; for(j=0;j<m;j++) cout<<iallocation[i][j]<<" "; cout<<"\t"; for(j=0;j<m;j++) cout<<ineed[i][j]<<" "; cout<<"\t"; cout<<" "; //**ailable只需要输出一次 if (i==0) for(j=0;j<m;j++) cout<<i**ailable[j]<<" "; cout<<endl; } } //安全性算法,进行安全性检查;安全返回true,并且输出安全序列,不安全返回false,并输出不安全的提示; bool safety(int iallocation[n][m],int ineed[n][m],int i**ailable[m],char cname[n]) { } //定位ch对应的进程名在数组中的位置 //没找见返回-1,否则返回数组下标 int locate(char cname[n],char ch) { int i; for(i=0;i<n;i++) if (cname[i]==ch) //找到 return i; //未找到 return -1; } //提出申请,返回提出申请的进程名对应的下标 int request(char cname[n],int irequest[m]) { int i,loc; char ch; bool bflag=true; //判断输入的进程名是否有误 while(bflag) { //输出进程名 for(i=0;i<n;i++) cout<<cname[i]<<"\t"; //输入提出申请的进程名 cout<<"\n输入提出资源申请的进程名:\n"; cin>>ch; //定位ch对应的进程名在进程名数组中的位置 loc=locate(cname,ch); //没找到,重新输入 if (loc==-1) cout<<"\n您输入的进程名有误!请重新输入"; //找到,退出循环 else bflag=false; } //输入提出申请的资源数 cout<<"输入申请各类资源的数量:\n"; for(i=0;i<m;i++) cin>>irequest[i]; //返回提出申请的进程名对应的下标 return loc; } bool banker(int iallocation[n][m],int ineed[n][m],int i**ailable[m],char cname[n]) { }这个是c++的 我的报告 20210311
汇率兑换计算器

类似问答
  • 银行大堂经理的职责怎么描述
    • 2024-06-26 22:34:24
    • 提问者: 未知
    职责有以下几点: 1,服2113务管理。5261协助网点负责人对本网4102点的优质服务情况1653进行管理,及时纠正违反规范化服务标准的现象。2,迎送客户。文明地对进出网点的客户迎来送往。3,业务咨询。热情、诚恳、耐心、准确地解答客户的业务咨询。4,差别服务。识别高、低端客户,为优质客户...
  • 有哪些描述投行内幕的书?
    • 2024-06-26 17:53:39
    • 提问者: 未知
    其间,人物们尔虞我诈,故事充满金融交易、舆论压力、决策博弈、社交晚宴和董事会议,不仅让读者见识到如此重大的收购在高层之间是如何运作的,也让我们看到一部充满洞见的...
  • 银行家算法 习题
    • 2024-06-26 01:50:57
    • 提问者: 未知
    将资源分配给最多个用户,但至少保证一个用户可以正常结束, 以释放所占的资源 所以是4个 4个进程中,每个进程先分配一个 剩下的一个分配给任意一个,让其完成任务后正常退出, 释放的2台供其他进程使用
  • 有哪些描述投行内幕的书?
    • 2024-06-26 19:36:41
    • 提问者: 未知
    1:《大投行家》http://gorky.blog.caixin.com微信:meizhikeyiy.
  • 如何描述项目内容
    • 2024-06-26 23:50:52
    • 提问者: 未知
    1、进度,计划进度曲线图及实际进度曲线图进行对比,总结出入原因。2、风险,按各里程碑阶段出现的风险分类进行分析,如质量、时间、人力、沟通、需求变更。3、需求,按个里程碑阶段计划需求数量、实际需求数量柱形图进行分析;描述需求变更给项目带来的影响。4、质量,从功能测试阶段、回归...
  • 用银行家算法判断下述每个状态是否安全
    • 2024-06-26 07:02:36
    • 提问者: 未知
    状态a安全,状态b不安全。状态a中,将可分配的1台给用户3,然后用户3可以运行,当用户3结束释放资源,其他用户就可以运行完毕。状态b中可分配台数只有2,用户1、2、3的需求都不止2,所以不论怎么样分配,3个用户的需求都不能满足,因此会出现死锁。
  • 集团电话的描述
    • 2024-06-26 23:37:22
    • 提问者: 未知
    在售的集团电话有模拟集团电话、数字集团电话两种。功能主要有以下: 分机话务处理:转接电话、代接电话、保留电话、遇忙转接、无人接听转移、无应答转移、免打扰、经理秘书、会议等基本的应用功能。中继话务处理:中继呼入的应答模式、振铃分机的设定等。话务控制管理:限拨号码、限制呼出...
  • 试描述我国现行的货币制度
    • 2024-06-26 00:57:36
    • 提问者: 未知
    我国现行的货币制度是一种“一国多币”的特殊货币制度,即在**实行人民币制度,而在**、**、**实行不同的货币制度。表现为不同地区各有自己的法定货币,各种货币各限于本地区流通,各种货币之间可以兑换,人民币与港元、**元之间按以市场供求为基础决定的汇价进行兑换,**元与港元直接挂钩,**主要与美元挂钩。 人民币是我国**的法定货币,人民币主币“元”是我国货币单位,具有无限法偿能力;人...
  • 避免死锁的一个著名的算法是 (15) 。 a.先入先出法 b.银行家算法 c.优先级
    • 2024-06-26 02:32:48
    • 提问者: 未知
    参**:b解析:本题考查死锁这个知识点,其中也包含了对调度算法的考查。先入先出和优先级算法都是调度算法,并不能保证没有死锁。资源按序分配法也不能避免两个进程...
  • 求法律法规中关于红绿灯的具体描述?
    • 2024-06-26 10:11:22
    • 提问者: 未知
    《道路安全法》  第二十第二款规定,交号包括交通信号灯、交通标志、交通标线和交通**的指挥。  第二十六条 交通信号灯由红灯、绿灯、黄灯组成。红灯表示禁止通行,绿灯表示准许通行,黄灯表**示。 第三十八条 车辆、行人应当按照交通信号通行;遇有交通**现场指挥时,应当按照交通**的指挥通行;在没有交通信号的道路上,应当在确保安全、畅通的原则下通行。 第六十二条 行人通过路口或...
汇率兑换计算器

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

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