电梯调度算法的基本原则就是,如果在电梯运行方向上有人要使用电梯,则继续往那个方向运动,如果电梯中的人还没有到达目的地,则继续向原方向运动。 具体而言,如果电梯现在朝上运动,当前楼层的上方和下方都有请求,则先响应所有上方的请求,然后才向下响应下方的请求;如果电梯向下运动,则刚好相反。
设计要求:模拟多人在不同楼层同时要求到各自目的地时电梯的响应顺序,要求使用C语言编程,定义合适的数据结构。
设计提示:
可以用一个结构体表示乘电梯的人,其中内容包括人的姓名、起始楼层、目的楼层;建立一个结构体的数组模拟当前所有需要乘电梯的人。把这个结构体数组作为程序的输入,通过对数组中每个人的起始楼层和目的楼层进行分析,确定每个人进出电梯的顺序,并打印输出。
比如: 当前楼层是4,结构体数组中共有3个人,A:7 → 3 B:6→10 C:7→8;
则输出应该是: 当前楼层为6,B进入
当前楼层为7,C进入
当前楼层为8,C出去
当前楼层为10,B出去
当前楼层为7,A进入
当前楼层为3,A出去