這是我回答前幾天和你一樣想要的電梯程序 是單箱的 希望能幫助你 package bean; public class dianti { int on=1;//定義一個(gè)初始化樓層 初始化是在1層 //先從簡(jiǎn)單的開(kāi)始 我們先寫(xiě)兩個(gè)方法 一個(gè)是在電梯外面方法 一個(gè)是在電梯內(nèi)部的方法 public void wai(int num)//外部方法 { if(num==this.on) { System.out.println("停留在本層 直接開(kāi)門(mén)"); } else if(numthis.on) { Thread th = new Thread(); for(int i=this.on;i=num;i++) { if(i==num) { System.out.println("電梯到達(dá)~開(kāi)門(mén)請(qǐng)進(jìn)···"); this.on=num; } else { System.out.println("電梯在"+i+"層 馬上就到,請(qǐng)等待····"); try { th.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } else if(num0numthis.on) { System.out.println("進(jìn)來(lái)了" +num+" "+this.on); Thread th1 = new Thread(); for(int u=this.on;u=num;u--) { if(u==num) { System.out.println("電梯到達(dá)~開(kāi)門(mén)請(qǐng)進(jìn)···"); this.on=num; } else { System.out.println("電梯在"+u+"層 馬上就到,請(qǐng)等待····"); try { th1.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } else { System.out.println("1111111111111"); } } //內(nèi)部方法 public void nei(int num) { System.out.println("進(jìn)來(lái)了~當(dāng)前樓層是"+this.on+" 我們的目標(biāo)是"+num+"層"); if(num==this.on) { System.out.println("您就在本層 開(kāi)門(mén)"); } else if(num0num11numthis.on) { for(int y=this.on;y=num;y--) { Thread th1 = new Thread(); if(y==num) { System.out.println("電梯到達(dá)~歡迎下次在做···"); this.on=num; } else { System.out.println("電梯在"+y+"層 馬上就到,請(qǐng)等待····"); try { th1.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } else if(num0num11numthis.on) { for(int y=this.on;y=num;y++) { Thread th1 = new Thread(); if(y==num) { System.out.println("電梯到達(dá)~歡迎下次在做····"); this.on=num; } else { System.out.println("電梯在"+y+"層 馬上就到,請(qǐng)等待····"); try { th1.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } } public static void main(String[] args) { dianti d = new dianti(); //模擬開(kāi)始 初始化是1層 首先我們?nèi)?0層 d.wai(1);//傳進(jìn)去的1表示我們是在1層按電梯準(zhǔn)備上 d.nei(10);//表示電梯到了 我們選擇了10層開(kāi)始上升 現(xiàn)在電梯停留在10層 d.wai(5);//在電梯還在10層停留的時(shí)候 5層有人使用 d.nei(1);//目標(biāo)是一層 //這個(gè)其實(shí)不完整 還需要加上很多判斷的 必然經(jīng)過(guò)每層的時(shí)候判斷是否有順路下的 //還有就是電梯在上升的時(shí)候經(jīng)過(guò)了2層到了3層 此時(shí)2層有人按 又該如何 自己試著去想一想解決方法 } }
成都網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、重慶網(wǎng)站建設(shè)公司、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都自拌料攪拌車等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致贊許!
最佳答案代碼如下:
public class ElevatorModel implenent ElevatorModelListener{
ElevatorShaft elevatorShaft;//電梯車箱
Floor firstFloor;
Floor secondFloor;
public void addPerson(Person person);
//實(shí)現(xiàn)ElevatorModelListener接口的所有方法
}
public abstract class Location{
String locationName;//可能占據(jù)的三個(gè)位置firstFloor; secondFloor;elevator中的其中一個(gè)位置。
public Button getButton();
public Door getDoor();
}
public class Floor extends Location{
public Floor(String firstFloor,String secondFloor);
public Button getButton();//具體實(shí)現(xiàn)
public Door getDoor();//具體實(shí)現(xiàn)
public ElevatorShaft getElevatorShaft();
}
public class Door implenent ElevatorMoveListener{
boolean open;//門(mén)是開(kāi)的關(guān)的
public void openDoor();//開(kāi)門(mén)
public viod clossDoor();//關(guān)門(mén)
}
public class Button implenent ElevatorMoveListener{
boolean pressed;
public void pressButton();//按下按鈕
public void resetButton();//釋放按鈕
public void elevatorArrived();//電梯到來(lái)
}
public class ElevatorShaft{//電梯乘箱
Elevator elevator;//電梯
Button firstFloorButton,secondFloorButton;//出發(fā)層的按鈕和到達(dá)層的按鈕 Door firstFloorDoor,secondFloorDoor;//出發(fā)的門(mén)和到達(dá)的門(mén)
Light firstFloorLight,secondFloorLight;//燈
//監(jiān)聽(tīng)器
DoorListener doorListener;
ButtonListener buttonListener;
LightListener ligthListener;
BellListener bellListener;
ElevatorMoveListener elevatorMoveListener;
Set set;
}
public class Light implenent ElevatorMoveListener{
boolean lightOn;//代表燈的狀態(tài),亮或滅
public void turnOnLight();
public void turnOffLight();
public void elevatorDeparted();//具體實(shí)現(xiàn)
public void elevatorArrived();//具體實(shí)現(xiàn)
}
public class Bell implenent ElevatorMoveListener{
public void ringBell();
public void elevatorDeparted();//具體實(shí)現(xiàn)
public void elevatorArrived();//具體實(shí)現(xiàn)
}
public class Elevator extends Location implenets
ButtonListener,DoorListener,BellListener,Runable
{//電梯乘箱
boolean moving;
boolean summoned;//描述Elevator是在移動(dòng)還是已經(jīng)補(bǔ)召喚
Floor currentFloor;//當(dāng)前正在提供服務(wù)的Floor
Floor destinationFloor ; //代表將要到達(dá)的Floor
Button elevatorButton;
Door elevatorDoor;
Bell bell;
public void run();// 實(shí)現(xiàn)
public void requestElevator();//請(qǐng)求Elevator并產(chǎn)生排隊(duì)請(qǐng)求。 }
public class Person extends Thread{
Location類對(duì)象(或是位于Floor上,或是出處在Elevator中); int ID;
boolean moving;
public void run();//具體實(shí)現(xiàn)
public void enterAndRideElevator();
}
private Integer skuid;
private Breed breed;
private Variety variety;
private String skuname;
java 肯定可以,首先要解決虛擬機(jī),就是電梯程序當(dāng)中要有虛擬機(jī)運(yùn)行,然后在虛擬機(jī)的基礎(chǔ)上編寫(xiě)java程序去執(zhí)行。
但是一般直接和硬件交互 一般用PLC