了voidFCFS(intcidao[],intm),这个算法主要完成按原来键盘输入的次序或系统自动生成的次序来寻到,然后输出总的寻道长度和平均寻道长度。以下两个算法都要用到排序算法,这里我使用了冒泡排序法int*sort(intcidao[],intm),将磁道数按从小到大的序列排好。最短寻道时间优先调度算法我使用了voidSSTF(intcidao[],intm),在排好序列磁道中选择离当前磁道最近的磁道开始寻道,然和再和相邻的两个磁道进行比较,看离哪个更近;如果当前磁道是最大值或是最小值,直接按倒叙或是正序寻道,最后输出总的寻道长度和平均寻道长度。扫描调度算法我使用了voidSCAN(intcidao[],intm),在排好序的磁道序列中根据当前磁道数,选择是向外寻道还是向内寻道,如果当前磁道数是最大值或是最小值,直接向内或向外寻道,最后也要输出总的寻道长度和平均寻道长度。4.3各子函数流程分析4.3.1FCFS()下图4-1为FCFS函数的流程图:开始输入磁道号或系统随机生成按原顺序将磁道序列输出求总的寻道长度sum+=abs(cidao[0]-now)求平均寻道长度ave=sum/m结束图4-14.3.2SSTF()下图4-1为FCFS函数的流程图:开始输入磁道号或系统随机生成调用sort()否min<now<max否min>=now是是按排好的顺序直接输出磁道序列按排好的顺序倒序输出磁道序列按离当前磁道now最短的顺序输出磁道序列求总的寻道长度和平均寻道长度结束图4-24.3.3SCAN()下图4-1为FCFS函数的流程图:开始输入磁道号或系统随机生成调用sort()否min<now<max否now<=min是是选择先向外还是向内扫描,再一次输出磁道序列直接向内扫描,从大到小输出磁道序列直接向外扫描,按从小到大输出磁道序列求总的寻道长度和平均寻道长度结束图4-3