实用文档
{
int i,j; int temp;
for(i=0;i if(cidao[i]>cidao[j]) { temp=cidao[i]; cidao[i]=cidao[j]; cidao[j]=temp; } } cout<<\排序后的磁盘序列为:\ for( i=0;i cout< cout< /*********************先来先服务调度算法**************************/ int FCFS(int cidao[],int m) { int now; int sum=0; int j,i; int a; char str[100]; float ave; cout<<\磁盘请求序列为:\ for( i=0;i cout< cout< cout<<\请输入当前的磁道号:\ bei2: cin>>str; a=panduan(str); if(a==0) { cout<<\输入数据的类型错误,请重新输入!\ goto bei2; 实用文档 } else now=zhuanhua(str,a); sum+=abs(cidao[0]-now); cout<<\磁盘扫描序列为:\ for( i=0;i cout< for(i=0,j=1;j sum+=abs(cidao[j]-cidao[i]); ave=(float)(sum)/(float)(m); } cout< cout<<\平均寻道长度:\ cout<<\磁头移动总磁道数:\ return 0; } /**********************最短寻道时间优先调度算法********************/ void SSTF(int cidao[],int m) { int k=1; int now,l,r; int i,j,sum=0; int a; char str[100]; float ave; cidao=bubble(cidao,m); cout<<\请输入当前的磁道号:\bei3: cin>>str; a=panduan(str); if(a==0) { cout<<\输入数据的类型错误,请重新输入!\ goto bei3; } else now=zhuanhua(str,a); if(cidao[m-1]<=now) { cout<<\磁盘扫描序列为:\ for(i=m-1;i>=0;i--) 实用文档 cout< if(cidao[0]>=now) { cout<<\磁盘扫描序列为:\ for(i=0;i if(now>cidao[0]&&now cout<<\磁盘扫描序列为:\ while(cidao[k] k++; } l=k-1; r=k; while((l>=0)&&(r if((now-cidao[l])<=(cidao[r]-now)) { cout< cout< if(l==-1) { for(j=r;j cout< sum+=cidao[m-1]-cidao[0]; } 实用文档 else { for(j=l;j>=0;j--) { cout< sum+=cidao[m-1]-cidao[0]; } } ave=(float)(sum)/(float)(m); cout< cout<<\平均寻道长度: \ cout<<\磁头移动总磁道数:\} /*****************************扫描调度算法*******************************/ void SCAN(int cidao[],int m) { int k=1; int now,l,r,d; int i,j,sum=0; int a; char str[100]; float ave; cidao=bubble(cidao,m); cout<<\请输入当前的磁道号:\bei4: cin>>str; a=panduan(str); if(a==0) { cout<<\输入数据的类型错误,请重新输入!\ goto bei4; } else now=zhuanhua(str,a); if(cidao[m-1]<=now) { cout<<\磁盘扫描序列为:\ for(i=m-1;i>=0;i--) cout< if(cidao[0]>=now) { 实用文档 cout<<\磁盘扫描序列为:\ for(i=0;i if(now>cidao[0]&&now while(cidao[k] k++; } l=k-1; r=k; cout<<\请输入当前移动臂的移动的方向 (1 表示向外 ,0表示向内) : \ cin>>d; if(d==0) { cout<<\磁盘扫描序列为:\ for(j=l;j>=0;j--) { cout< for(j=r;j cout< sum=now-2*cidao[0]+cidao[m-1]; } else { cout<<\磁盘扫描序列为:\ for(j=r;j cout< for(j=l;j>=0;j--) { cout< sum=-now-cidao[0]+2*cidao[m-1]; } } ave=(float)(sum)/(float)(m); cout< 实用文档 cout<<\平均寻道长度: \ cout<<\磁头移动总磁道数:\}