毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

银行家算法流程图+C++源代码+实验报告 第3页

更新时间:2010-4-25:  来源:毕业论文
银行家算法流程图+C++源代码+实验报告 第3页
源文件程序
#include <iostream>
using namespace std;
#define MAXPROCESS 50                          /*最大进程数*/
#define MAXRESOURCE 100                          /*最大资源数*/
int AVAILABLE[MAXRESOURCE];                      /*可用资源数组*/
int MAX[MAXPROCESS][MAXRESOURCE];              /*最大需求矩阵*/
int ALLOCATION[MAXPROCESS][MAXRESOURCE];      /*分配矩阵*/
int NEED[MAXPROCESS][MAXRESOURCE];              /*需求矩阵*/
int REQUEST[MAXPROCESS][MAXRESOURCE];          /*进程需要资源数*/
bool FINISH[MAXPROCESS];                          /*系统是否有足够的资源分配*/
int p[MAXPROCESS];                               /*记录序列*/
int m,n;                                      /*m个进程,n个资源*/
void Init();
bool Safe();
void Bank();
int main()
{
      Init();
      Safe();
      Bank();
}
void Init()                  /*初始化算法*/
{
      int i,j;
      cout<<"\t---------------------------------------------------"<<endl;
      cout<<"\t||                                               ||"<<endl;
      cout<<"\t||                   银行家算法                  ||"<<endl;
      cout<<"\t||                                               ||"<<endl;
      cout<<"\t||                 XXXXXXXXXXXXXXXXXXXX          ||"<<endl;
      cout<<"\t||                                               ||"<<endl;
      cout<<"\t||                       2004024031 2004024054   ||"<<endl;
      cout<<"\t---------------------------------------------------"<<endl;
      cout<<"请输入进程的数目:";
      cin>>m;
      cout<<"请输入资源的种类:";
      cin>>n;
      cout<<"请输入每个进程最多所需的各资源数,按照"<<m<<"x"<<n<<"矩阵输入"<<endl;
      for(i=0;i<m;i++)
      for(j=0;j<n;j++)
      cin>>MAX[i][j];
      cout<<"请输入每个进程已分配的各资源数,也按照"<<m<<"x"<<n<<"矩阵输入"<<endl;
      for(i=0;i<m;i++)
      {
          for(j=0;j<n;j++)
          {
              cin>>ALLOCATION[i][j];
              NEED[i][j]=MAX[i][j]-ALLOCATION[i][j];
              if(NEED[i][j]<0)
              {
                  cout<<"您输入的第"<<i+1<<"个进程所拥有的第"<<j+1<<"个资源数错误,请重新输入:"<<endl;
                  j--;
                  continue;
              }
          }
      }
      cout<<"请输入各个资源现有的数目:"<<endl;
      for(i=0;i<n;i++)
      {
          cin>>AVAILABLE[i];
      }
}
void Bank()                  /*银行家算法*/
{
      int i,cusneed;
      char again;
      while(1)
      {
          cout<<"请输入要申请资源的进程号(注:第1个进程号为0,依次类推)"<<endl;
          cin>>cusneed;
          cout<<"请输入进程所请求的各资源的数量"<<endl;
          for(i=0;i<n;i++)
          {
              cin>>REQUEST[cusneed][i];
          }
          for(i=0;i<n;i++)
          {
              if(REQUEST[cusneed][i]>NEED[cusneed][i])
              {
                  cout<<"您输入的请求数超过进程的需求量!请重新输入!"<<endl;
                  continue;
              }
              if(REQUEST[cusneed][i]>AVAILABLE[i])
              {
                  cout<<"您输入的请求数超过系统有的资源数!请重新输入!"<<endl;

上一页  [1] [2] [3] [4] 下一页

银行家算法流程图+C++源代码+实验报告 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。