⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 编程模拟实现磁盘调度算法(3)---------采用循环扫描cscan算法
💻 TXT
字号:
#include <iostream>
using namespace std;

void main()
{   int k;
	int number;//须访问的磁道的总数
    int i,j;
	int dis;//磁头移动的距离
	int initial;//当前磁道号
	int swap;
    
    cout<<"请输入当前磁道号:";
	cin>>initial;

	cout<<"请输入要访问的磁道总数:";
	cin>>number;
	int a[100];
	for( i=0;i<number;i++)
	{
	cout<<"第"<<i+1<<"个磁道号为:";
	cin>>a[i];
	}
	for( i=number-1;i>0;i--)//从小到大的排序算法(冒泡排序)
	   for( j=0;j<i;j++)
		   
	   if(a[j]>a[j+1])
	   {
	   swap=a[j];
	   a[j]=a[j+1];
	   a[j+1]=swap;
	   }
	cout<<"从小到大排序后的磁道号为:";
	for(i=0;i<number;i++)
	{
	cout<<a[i]<<",";
	}
	cout<<endl;
  i=0;
     while (i<number)//找出一个比当前磁道号大的即将要访问的磁道号
	 { if(a[i]<initial)
	 {i++;
	 continue;
	 
	 
	 }
	 break;
}

	 if(i==number)//如未找到,则从当前磁道向小数磁道号方向执行
	 {
     float s=0;
	 i=0;
	 cout<<"被访问的下一个磁道号:\t"<<"移动距离是:"<<endl;
	 while(i<number)
	 {
		 dis=abs(initial-a[i]);
		 cout<<a[i]<<'\t'<<'\t'<<'\t'<<'\t'<<dis<<endl;
		 initial=a[i];
		 i++;
		 s=s+dis;
	 
	 
	 }
cout<<"平均寻道长度:"<<s/number<<endl;
	 }
	 else//如找到,就向大数磁道号方向执行
	 {
         float s=0;
		 k=i; 
         cout<<"被访问的下一个磁道号:"<<'\t'<<"移动距离是:"<<endl;
		 while(i<number)
		 {dis=a[i]-initial;

         cout<<a[i]<<'\t'<<'\t'<<'\t'<<'\t'<<dis<<endl;
		 initial=a[i];
		 i++;
		 s=s+dis;
		 }
          i=0;
		  while(i<k){ 

          dis=abs(a[i]-initial);
		 cout<<a[i]<<'\t'<<'\t'<<'\t'<<'\t'<<dis<<endl;
		 initial=a[i];
		 i++;
		  s=s+dis;
		  }
cout<<"平均寻道长度:"<<s/number<<endl; 

	 }
		 
	 }















	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -