001
for(i=0;i<MAXQUEUE;i++){
002
queue[i].go=-1;
003
queue[i].visited=0;
004
}
005
006
start=53;//磁头的初始位置
007
}
008
009
//读入磁道号流
010
void readData()
011
{
012
FILE *fp;
013
char fname[20];
014
int temp,i;
015
016
cout<<"请输入磁道号流文件名:";
017
strcpy(fname,"");
018
cin>>fname;
019
020
if((fp=fopen(fname,"r"))==NULL){
021
cout<<"错误,文件打不开,请检查文件名:)"<<endl;
022
}
023
else{
024
while(!feof(fp)){
025
fscanf(fp,"%d ",&temp);
026
queue[quantity].go=temp;
027
quantity++;
028
}
029
cout<<endl<<"---------------------------------------------"<<endl;
030
cout<<"所读入的磁道号流:";
031
for(i=0;i<quantity;i++){
032
cout<<queue[i].go<<" ";
033
}
034
cout<<endl<<"请求数为:"<<quantity<<endl;
035
}
036
}
037
038
//FIFO算法
039
void FIFO()
040
{
041
int i;
042
int total=0;
043
int current;
044
045
cout<<endl<<"---------------------------------------------"<<endl;
046
cout<<"FIFO算法的访问磁道号顺序流:";
047
048
current=start;
049
for(i=0;i<quantity;i++){
050
cout<<queue[i].go<<" ";
051
total+=abs(queue[i].go-current);
052
current=queue[i].go;
053
}
054
cout<<endl<<"磁头移过的柱面数:"<<total;
055
}
056
057
//最短寻道优先调度算法
058
void shortest()
059
{
060
int i,j,p;
061
int total=0;
062
磁道调度算法 来自淘豆网m.daumloan.com转载请标明出处.