這是我回答前幾天和你一樣想要的電梯程序 是單箱的 希望能幫助你 package bean; public class dianti { int on=1;//定義一個初始化樓層 初始化是在1層 //先從簡單的開始 我們先寫兩個方法 一個是在電梯外面方法 一個是在電梯內部的方法 public void wai(int num)//外部方法 { if(num==this.on) { System.out.println("停留在本層 直接開門"); } else if(numthis.on) { Thread th = new Thread(); for(int i=this.on;i=num;i++) { 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(num0numthis.on) { System.out.println("進來了" +num+" "+this.on); Thread th1 = new Thread(); for(int u=this.on;u=num;u--) { 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(num0num11numthis.on) { for(int y=this.on;y=num;y--) { 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(num0num11numthis.on) { for(int y=this.on;y=num;y++) { 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層有人按 又該如何 自己試著去想一想解決方法 } }
創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網站、網站設計、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的天峨網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
if(選擇等于當前層打開門){
不做處理,直接返回
}
if(如果沒人選就回到某一層){
}
if(如果電梯外選擇){
到所選層
}
if(如果電梯內選擇){
到所選層
}
if(如果電梯外選擇和電梯外同時選擇){
先到電梯內選擇層
}
同時凡是經過的同方向的層,就銷毀掉
到達電梯內選擇的層數后就到電梯外選擇的層數
....頭很暈,不想說了,自己再看看把,這個很簡單的,如果有問題你自己去坐電梯體會一下把.
可以把到電梯外和到電梯內的方法封裝到時候調用的時候方便些,不說了,睡覺了.
我還沒寫完很多細節,自己想把
最佳答案代碼如下:
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();
}
java 肯定可以,首先要解決虛擬機,就是電梯程序當中要有虛擬機運行,然后在虛擬機的基礎上編寫java程序去執行。
但是一般直接和硬件交互 一般用PLC
網頁題目:java多電梯代碼 java電梯問題
網站路徑:http://vcdvsql.cn/article8/ddoisop.html
成都網站建設公司_創新互聯,為您提供、云服務器、網站內鏈、移動網站建設、商城網站、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯