永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-02-19 13:40
如题目,
主要是想知道一个楼层叫梯时,怎么样选择那个电梯移动。
最佳答案
模拟的话,用多线程,一个电梯就是一个线程。

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

大概就是这样一个算法。
全部回答
最佳答案代码如下: 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(); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
火星人无烟灶这个地址在什么地方,我要处理点
先拜谢,非农业户口如何办养老保险,据说要学
我在超市听到一首歌,里面有一句是我的爱很澎
谁知道在淘宝网代购手表哪家店比较靠谱?
去超市买茶叶可以吗 超市的茶可以买吗
满江红出自哪里
【美国的州有哪些】美国北部的州有哪些
华泽三峰木门在什么地方啊,我要过去处理事情
灼眼的夏娜和叛逆的鲁路修为什么被称为神作?
南京珠江路百脑汇附近哪里可以免费停车
【在我心里永远有个你】在我心里永远有个你用
杭州龙湾网络有限公司在哪里啊,我有事要去这
“彭”姓用日语怎么说
五菱荣光基本型和新五菱之光基本型,荣光比之
上市公司的上市公告和招股说明书那个在先
推荐资讯
看月K线对炒股有何指导意义
神奇珊瑚癣净怎么样
骨组织的主要特点是()。
lol怎么让射手在墙后面打石头人,而且不会被
Primitive 和crude的区别是什么?
酷派浏览器推入信息怎么删除
一道辩论题:人在灾难面前会表现利己性注意是
天泰青城的房子怎么样啊?
问道三木一金一水攻略
民福寺站在什么地方啊,我要过去处理事情
【眉毛的生长周期是多久】...大洋洲人体内的
帝源装饰公司在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?