用Java编写程序,设计一个模拟电梯运行的类

用Java编写程序,设计一个模拟电梯运行的类,第1张

最佳答案代码如下:

public class ElevatorModel implenent ElevatorModelListener{

ElevatorShaft elevatorShaft//电梯车箱

Floor firstFloor

Floor secondFloor

public void addPerson(Person person)

//实现ElevatorModelListener接口的所有方法

}

public abstract class Location{

String locationName//可能占据的三个位置firstFloorsecondFloorelevator中的其中一个位置。

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()

}

这是我回答前几天和你一样想要的电梯程序 是单箱的 希望能帮助你 package beanpublic class dianti { int on=1//定义一个初始化楼层 初始化是在1层 //先从简单的开始 我们先写两个方法 一个是在电梯外面方法 一个是在电梯内部的方法 public void wai(int num)//外部方法 { if(num==this.on) { System.out.println("停留在本层 直接开门")} else if(num>this.on) { Thread th = new Thread()for(int i=this.oni<=numi++) { if(i==num) { System.out.println("电梯到达~开门请进···")this.on=num} else { System.out.println("电梯在"+i+"层 马上就到,请等待····")try { th.sleep(1000)} catch (InterruptedException e) { e.printStackTrace()} } } } else if(num>0&&num<this.on) { System.out.println("进来了" +num+" "+this.on)Thread th1 = new Thread()for(int u=this.onu>=numu--) { if(u==num) { System.out.println("电梯到达~开门请进···")this.on=num} else { System.out.println("电梯在"+u+"层 马上就到,请等待····")try { th1.sleep(1000)} catch (InterruptedException e) { e.printStackTrace()} } } } else { System.out.println("1111111111111")} } //内部方法 public void nei(int num) { System.out.println("进来了~当前楼层是"+this.on+" 我们的目标是"+num+"层")if(num==this.on) { System.out.println("您就在本层 开门")} else if(num>0&&num<11&&num<this.on) { for(int y=this.ony>=numy--) { Thread th1 = new Thread()if(y==num) { System.out.println("电梯到达~欢迎下次在做···")this.on=num} else { System.out.println("电梯在"+y+"层 马上就到,请等待····")try { th1.sleep(1000)} catch (InterruptedException e) { e.printStackTrace()} } } } else if(num>0&&num<11&&num>this.on) { for(int y=this.ony<=numy++) { Thread th1 = new Thread()if(y==num) { System.out.println("电梯到达~欢迎下次在做····")this.on=num} else { System.out.println("电梯在"+y+"层 马上就到,请等待····")try { th1.sleep(1000)} catch (InterruptedException e) { e.printStackTrace()} } } } } public static void main(String[] args) { dianti d = new dianti()//模拟开始 初始化是1层 首先我们去10层 d.wai(1)//传进去的1表示我们是在1层按电梯准备上 d.nei(10)//表示电梯到了 我们选择了10层开始上升 现在电梯停留在10层 d.wai(5)//在电梯还在10层停留的时候 5层有人使用 d.nei(1)//目标是一层 //这个其实不完整 还需要加上很多判断的 必然经过每层的时候判断是否有顺路下的 //还有就是电梯在上升的时候经过了2层到了3层 此时2层有人按 又该如何 自己试着去想一想解决方法 } }


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存