printf("上下选择:1-上楼,2-下楼\t")
scanf("%d",&input_direction)
fflush(stdin)
printf("输入该层的乘客想到达的楼层,以-1结束\n")
void check(liftor &myliftor) int flag1=0,flag2=0,flag3=0
for(i=0i<10i++)
{
if(myliftor.stored_flare[i]!=0)
flag1=1
if(myliftor.stored_flare[i]==1)
flag2=1
if(myliftor.stored_flare[i]==2)
flag3=1
}
if(!flag1) myliftor.set_direction(0)
else if(!flag2&&flag3) myliftor.set_direction(2)
else if(!flag3&&flag2) myliftor.set_direction(1)
int main(int argc, char *argv[])
liftor myliftor
char flag
int j
myliftor.direction=1
printf("**************************************\n")
printf("该程序用于模拟10(0-9)层的电梯控制\n")
printf("先输入按下电梯的层号及上下选\n择(类似电梯外的按钮)\n")
printf("每到一层时,输入乘客要到的楼\n层号(类似电梯内的按钮)\n")
printf("上下选择:1-上楼,2-下楼)scanf("%d",&input_direction)fflush(stdin)printf("输入该层的乘客想到达的楼层,以-1结束\n")。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。1972 年,为了移植与开发 UNIX *** 作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。C语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。
匿名2012-06-01 //运行控制函数(核心)void control(){ int floor,i,j/*顺便服务策略 到达目标楼层确定下一目标楼层*/ //S1:电梯向上运行或无运行状态 if(direction==UP){ current_floor=(up_count==0?current_floor:current_floor+1)floor=checkup(current_floor,MAXFLOOR,outside_up)//比当前楼层高的楼层有上行请求 if(floor<=MAXFLOOR) dest_floor=floor//无高层上行请求 从最高层搜索下行请求 else{ floor=checkdown(MAXFLOOR,1,outside_down)if(floor>=1) dest_floor=floorelse{ //无下行请求 从最低层搜索上行请求 floor=checkup(1,MAXFLOOR,outside_up)if(floor<current_floor) dest_floor=floor} } } //S2:电梯向下运行 else if(direction==DOWN){ current_floor=(down_count==0?current_floor:current_floor+1)floor=checkdown(current_floor,1,outside_down)//比当前楼层低的楼层有下行请求 if(floor>=1) dest_floor=floor//无低层下行请求 从最低层搜索上行请求 else{ floor=checkup(1,MAXFLOOR,outside_up)if(floor<=MAXFLOOR) dest_floor=floorelse{ //无上行请求 从最高层搜索下行请求 floor=checkdown(MAXFLOOR,1,outside_down)if(floor>current_floor) dest_floor=floor} } }if(direction==NONE){ for(i=current_floori<=9&&outside_up[i]==0&&outside_down[i]==0&&inside[i]==0i++)for(j=current_floorj>=1&&outside_up[j]==0&&outside_down[j]==0&&inside[j]==0j--)if(i!=10&&j!=0){ //上下都搜索到则进行比较 floor=((i-current_floor)>=(current_floor-j)?j:i)dest_floor=floor} else if(i==10&&j!=0)//只搜索到下行请求 dest_floor=jelse if(j==0&&i!=10)//只搜索到上行请求 dest_floor=i} if(dest_floor>current_floor) direction=UPelse if(dest_floor<current_floor) direction=DOWNelse direction=NONE}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)