永发信息网

求一个JAVA编写的电梯升降程序。

答案:2  悬赏:0  手机版
解决时间 2021-02-19 13:40
  • 提问者网友:相思似海深
  • 2021-02-18 18:31
如题目,
主要是想知道一个楼层叫梯时,怎么样选择那个电梯移动。
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-02-18 19:25
模拟的话,用多线程,一个电梯就是一个线程。

公开一个方法,叫梯,将你的当前楼层传进去,与电梯所在的楼层相减
取绝对值,那个最小,那个移动。
如果是正在移动中的,且能到达你的楼层的,优先。

大概就是这样一个算法。
全部回答
  • 1楼网友:廢物販賣機
  • 2021-02-18 19:42
最佳答案代码如下: public class elevatormodel implenent elevatormodellistener{ elevatorshaft elevatorshaft;//电梯车箱 floor firstfloor; floor secondfloor; public void addperson(person person); //实现elevatormodellistener接口的所有方法 } public abstract class location{ string locationname;//可能占据的三个位置firstfloor; secondfloor;elevator中的其中一个位置。 public button getbutton(); public door getdoor(); } public class floor extends location{ public floor(string firstfloor,string secondfloor); public button getbutton();//具体实现 public door getdoor();//具体实现 public elevatorshaft getelevatorshaft(); } public class door implenent elevatormovelistener{ boolean open;//门是开的关的 public void opendoor();//开门 public viod clossdoor();//关门 } public class button implenent elevatormovelistener{ boolean pressed; public void pressbutton();//按下按钮 public void resetbutton();//释放按钮 public void elevatorarrived();//电梯到来 } public class elevatorshaft{//电梯乘箱 elevator elevator;//电梯 button firstfloorbutton,secondfloorbutton;//出发层的按钮和到达层的按钮 door firstfloordoor,secondfloordoor;//出发的门和到达的门 light firstfloorlight,secondfloorlight;//灯 //监听器 doorlistener doorlistener; buttonlistener buttonlistener; lightlistener ligthlistener; belllistener belllistener; elevatormovelistener elevatormovelistener; set set; } public class light implenent elevatormovelistener{ boolean lighton;//代表灯的状态,亮或灭 public void turnonlight(); public void turnofflight(); public void elevatordeparted();//具体实现 public void elevatorarrived();//具体实现 } public class bell implenent elevatormovelistener{ public void ringbell(); public void elevatordeparted();//具体实现 public void elevatorarrived();//具体实现 } public class elevator extends location implenets buttonlistener,doorlistener,belllistener,runable {//电梯乘箱 boolean moving; boolean summoned;//描述elevator是在移动还是已经补召唤 floor currentfloor;//当前正在提供服务的floor floor destinationfloor ; //代表将要到达的floor button elevatorbutton; door elevatordoor; bell bell; public void run();// 实现 public void requestelevator();//请求elevator并产生排队请求。 } public class person extends thread{ location类对象(或是位于floor上,或是出处在elevator中); int id; boolean moving; public void run();//具体实现 public void enterandrideelevator(); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯