资源描述:
《电梯优先调度算法.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、电梯优先调度算法电梯调度算法(msInterView)移臂调度算法包括以下四种:1)先来先服务算法:根据访问者提出访问请求的先后次序来决定执行次序。2)最短寻找时间优先调度算法:从等待的访问者中挑选寻找时间最短的那个请求执行,而不管访问者的先后次序。3)电梯调度扫描算法:从移动臂当前位置沿移动方向选择最近的那个柱面的访问者来执行,若该方向上无请求访问时,就改变移动方向再选择。4)单向扫描调度算法:从0柱面开始往里单向扫描,扫到哪个执行哪个。*///t1.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include"math.h&qu
2、ot;#include"stdlib.h"#include"string.h"structHead{intnPosition;boolbVisited;};voidVisit(structHead*pHead){printf("visitecy:%d",pHead->nPosition);pHead->bVisited=true;}intReadInputKeyboard(structHead*pHead,int*pCurrentPosition,intnMaxNumber){inti;printf("ple
3、aseinputCurrentposition:");scanf("%d",pCurrentPosition);printf("pleaseinputwillvisitposition:");for(i=0;i<nMaxNumber;i++){scanf("%d",&pHead[i].nPosition);pHead[i].bVisited=false;if(pHead[i].nPosition<0)break;}returni;}intReadInputFile(structHead*pHead,int
4、*pCurrentPosition,intnMaxNumber){inti;charszFileName[256],*q,*p,szTemp[20];printf("pleaseinputfilename:");scanf("%s",szFileName);FILE*pFile=fopen(szFileName,"r");if(pFile==NULL){printf("openfile%serror",szFileName);return-1;}for(i=0;!feof(pFile)&&i<
5、nMaxNumber;){p=szFileName;fgets(p,256,pFile);while(q=strchr(p,',')){memset(szTemp,0,sizeof(szTemp)*sizeof(char));strncpy(szTemp,p,q-p);p=q+1;if(i==0)*pCurrentPosition=atoi(szTemp);else{pHead[i-1].nPosition=atoi(szTemp);pHead[i-1].bVisited=false;}i++;}memset(szTemp,0,sizeof(szTemp)*sizeof(cha
6、r));pHead[i-1].nPosition=atoi(p);pHead[i-1].bVisited=false;//i++;}fclose(pFile);returni;}intFifoVisit(intnCurrentPosition,structHead*pHead,intnNumber){//先来先服务intnHaveVisited=0;intnMoveDistance=0;inti;while(nHaveVisited<nNumber){for(i=0;i<nNumber;i++){if(pHead[i].bVisited)continue;Visit(&pH
7、ead[i]);nHaveVisited++;nMoveDistance+=abs(nCurrentPosition-pHead[i].nPosition);nCurrentPosition=pHead[i].nPosition;}}printf("thesumofmovedistance:%d",nMoveDistance);returnnMoveDistance;}in