如题目,
主要是想知道一个楼层叫梯时,怎么样选择那个电梯移动。
求一个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();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯