用C语言编写一个关于电梯的程序

用C语言编写一个关于电梯的程序,第1张

这是以前作的课程设计,是一个10层电梯的模拟,供楼主参考吧:

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}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12026303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存