操作系统实验六磁盘调度算法正确C 代码.docx
《操作系统实验六磁盘调度算法正确C 代码.docx》由会员分享,可在线阅读,更多相关《操作系统实验六磁盘调度算法正确C 代码.docx(11页珍藏版)》请在冰点文库上搜索。
操作系统实验六磁盘调度算法正确C代码
《操作系统》实验报告
【实验题目】:
磁盘调度算法
【实验目的】
通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法的实现方法。
【实验内容】
问题描述:
设计程序模拟先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法的工作过程。
假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。
程序要求如下:
1)利用先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法模拟磁道访问过程。
2)模拟四种算法的磁道访问过程,给出每个磁道访问的磁头移动距离。
3)输入:
磁道个数n和磁道访问序列,开始磁道号m和磁头移动方向(对SCAN和循环SCAN算法有效),算法选择1-FCFS,2-SSTF,3-SCAN,4-循环SCAN。
4)输出:
每种算法的平均寻道长度。
实验要求:
1)上机前认真复习磁盘调度算法,熟悉FCFS,SSTF,SCAN和循环SCAN算法的过程;
2)上机时独立编程、调试程序;
3)根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截图)。
实验代码:
#include
usingnamespacestd;
constintMaxNumber=100;
intTrackOrder[MaxNumber];
intMoveDistance[MaxNumber];//移动距离
intFindOrder[MaxNumber];//寻好序列
doubleAverageDistance;//平均寻道长度
booldirection;//方向true时为向外,false为向里
intBeginNum;//开始磁道号
intM=500;//磁道数
intN;//提出磁盘I/O申请的进程数
intSortOrder[MaxNumber];//排序后的序列
boolFinished[MaxNumber];
voidInith()
{
cout<<"请输入提出磁盘I/O申请的进程数:
";
cin>>N;
cout<<"请依次输入要访问的磁道号:
for(inti=0;icin>>TrackOrder[i];for(intj=0;jMoveDistance[j]=0;cout<<"请输入开始磁道号:";cin>>BeginNum;for(intk=0;kFinished[k]=false;for(intl=0;lSortOrder[l]=TrackOrder[l];}//=====================排序函数,将各进程申请的磁道按从小到大排列=================voidSort(){inttemp;for(inti=N-1;i>=0;i--)for(intj=0;j{if(SortOrder[j]>SortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);temp=TrackOrder[i];FindOrder[i]=TrackOrder[i];}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;MoveDistance[i]=A;temp=TrackOrder[n];A=M;FindOrder[i]=TrackOrder[n];}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
cin>>TrackOrder[i];
for(intj=0;jMoveDistance[j]=0;cout<<"请输入开始磁道号:";cin>>BeginNum;for(intk=0;kFinished[k]=false;for(intl=0;lSortOrder[l]=TrackOrder[l];}//=====================排序函数,将各进程申请的磁道按从小到大排列=================voidSort(){inttemp;for(inti=N-1;i>=0;i--)for(intj=0;j{if(SortOrder[j]>SortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);temp=TrackOrder[i];FindOrder[i]=TrackOrder[i];}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;MoveDistance[i]=A;temp=TrackOrder[n];A=M;FindOrder[i]=TrackOrder[n];}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
MoveDistance[j]=0;
cout<<"请输入开始磁道号:
cin>>BeginNum;
for(intk=0;kFinished[k]=false;for(intl=0;lSortOrder[l]=TrackOrder[l];}//=====================排序函数,将各进程申请的磁道按从小到大排列=================voidSort(){inttemp;for(inti=N-1;i>=0;i--)for(intj=0;j{if(SortOrder[j]>SortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);temp=TrackOrder[i];FindOrder[i]=TrackOrder[i];}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;MoveDistance[i]=A;temp=TrackOrder[n];A=M;FindOrder[i]=TrackOrder[n];}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
Finished[k]=false;
for(intl=0;lSortOrder[l]=TrackOrder[l];}//=====================排序函数,将各进程申请的磁道按从小到大排列=================voidSort(){inttemp;for(inti=N-1;i>=0;i--)for(intj=0;j{if(SortOrder[j]>SortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);temp=TrackOrder[i];FindOrder[i]=TrackOrder[i];}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;MoveDistance[i]=A;temp=TrackOrder[n];A=M;FindOrder[i]=TrackOrder[n];}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
SortOrder[l]=TrackOrder[l];
}
//=====================排序函数,将各进程申请的磁道按从小到大排列=================
voidSort()
inttemp;
for(inti=N-1;i>=0;i--)
for(intj=0;j
if(SortOrder[j]>SortOrder[j+1])
temp=SortOrder[j];
SortOrder[j]=SortOrder[j+1];
SortOrder[j+1]=temp;
//============FCFS,先来先服务=================================
voidFCFS()
temp=BeginNum;
for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);temp=TrackOrder[i];FindOrder[i]=TrackOrder[i];}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;MoveDistance[i]=A;temp=TrackOrder[n];A=M;FindOrder[i]=TrackOrder[n];}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
MoveDistance[i]=abs(TrackOrder[i]-temp);
temp=TrackOrder[i];
FindOrder[i]=TrackOrder[i];
//========SSTF,最短寻道法=============================
voidSSTF()
inttemp,n;
intA=M;
for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;MoveDistance[i]=A;temp=TrackOrder[n];A=M;FindOrder[i]=TrackOrder[n];}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;MoveDistance[i]=A;temp=TrackOrder[n];A=M;FindOrder[i]=TrackOrder[n];}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;MoveDistance[i]=A;temp=TrackOrder[n];A=M;FindOrder[i]=TrackOrder[n];}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
A=abs(TrackOrder[j]-temp);
n=j;
elsecontinue;
Finished[n]=true;
MoveDistance[i]=A;
temp=TrackOrder[n];
A=M;
FindOrder[i]=TrackOrder[n];
//=====================SCAN,扫描算法==========================
voidSCAN()
intm,n,temp;
Sort();
cout<<"请选择开始方向:
1--向外;0---向里:
cin>>m;
if(m==1)
direction=true;
elseif(m==0)
direction=false;
else
cout<<"输入错误!
for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
continue;
n=i;
break;
if(direction==true)
for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
MoveDistance[i-n]=abs(SortOrder[i]-temp);
temp=SortOrder[i];
FindOrder[i-n]=SortOrder[i];
for(intj=n-1;j>=0;j--)
MoveDistance[N-1-j]=abs(SortOrder[j]-temp);
FindOrder[N-1-j]=SortOrder[j];
for(inti=n-1;i>=0;i--)
MoveDistance[N-i-4]=abs(SortOrder[i]-temp);
FindOrder[N-i-4]=SortOrder[i];
for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里:";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误!";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
MoveDistance[j]=abs(SortOrder[j]-temp);
temp=TrackOrder[j];
FindOrder[j]=SortOrder[j];
//=================CSCAN,循环扫描算法=======================
voidCSCAN()
for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
MoveDistance[N-n+j]=abs(SortOrder[j]-temp);
FindOrder[N-n+j]=SortOrder[j];
MoveDistance[n-1-i]=abs(SortOrder[i]-temp);
FindOrder[n-1-i]=SortOrder[i];
for(intj=N-1;j>=n;j--)
MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);
FindOrder[N-j+n-1]=SortOrder[j];
//========计算平均寻道时间==============
voidCount()
intTotal=0;
for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
Total+=MoveDistance[i];
AverageDistance=((double)Total)/((double)N);
voidShow()
cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN:";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;0--否:";intp;cin>>p;y=p;}exit;return0;}结果截图:
intmain()
inty=1;
ints;
Inith();
while(y)
cout<<"请选择寻道方式:
1--FCFS;2--SSTF;3--SCAN;4--CSCSN:
cin>>s;
switch(s)
case1:
FCFS();Count();Show();break;
case2:
SSTF();Count();Show();break;
case3:
SCAN();Count();Show();break;
case4:
CSCAN();Count();Show();break;
cout<<"是否继续选择寻道算法?
1--是;0--否:
intp;
cin>>p;
y=p;
exit;
return0;
结果截图:
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2