資源簡介
模擬電梯調度:利用JAVA語言編寫一個模擬電梯調度程序,要求電梯除最底層、最高層以外每一層外面都有一個上下按鈕(第1層只有向上按鈕,第6層只有向下按鈕),電梯層數為6層,電梯內部有1——6數字按鈕和開門按鈕,到達目的層電梯門開時會有響鈴提示,在電梯停留層按本層的數字按鈕無效,電梯啟動需要設計一個電源按鈕,可以控制電梯的運行與否,具體電梯的調度問題跟現實中大家所了解的基本一致。

代碼片段和文件信息
import?java.io.*;
import?java.net.*;
import?java.awt.*;
import?java.applet.*;
import?java.awt.event.*;
///////////////////////////////////////////////////////////////////////////////////王芹
class?Ring//電梯到達時的鈴聲
{
Ring(){}
public?void?sound()
{
try
{
File?file=new?File(“lift.wav“);
URL?url=file.toURL();
AudioClip?clip=applet.newAudioClip(url);
clip.play();
}catch?(Exception?e)?{}
}
}
///////////////////////////////////////////////////////////////////////////////////湯美玲
class?ladderButton?implements?ActionListener
{
Button?buttonUp[]buttonDown[];//電梯的上下按鈕
Button?buttonNum[];//電梯內的數字按鈕
Label?label[];//標記樓層號
Button?buttonopen;//電梯的開門按鈕
Button?buttonpower;//電梯的電源按鈕
private?int?floor=1;???????????????????//電梯所在樓層數
private?int?statusUp[]=new?int[6];????
private?int?statusDown[]=new?int[6];???????????????//記錄電梯上或下的狀態,1上,-1下,0無任務
private?int?floorUp[]=new?int[6];??????????????????????????????//記錄電梯要到的樓數
private?int?floorDown[]=new?int[6];
private?int?upOrDown=0;?????????????????????????????//電梯的及時狀態,即上或下
private?int?openorclose=0;?????????????????//記錄電梯門的狀態,1開,0關
private?int?onoroff=0;??????????????????//記錄電源開關的狀態,1開,0關
ladderButton(frame?f)
{
label=new?Label[6];??????????????//樓層號標記
buttonUp=new?Button[6];?????????????????//電梯向上按鈕
buttonDown=new?Button[6];??????????????//電梯向下按鈕
buttonNum=new?Button[6];???????????????????????//電梯里面的數字按鈕
buttonopen=new?Button(“《》“);???????????//電梯的開門按鈕
????????buttonpower=new?Button(“power“);?????//電梯的電源按鈕
for(int?i=0;i<6;i++)//初始化
{
statusUp[i]=0;
statusDown[i]=0;
floorUp[i]=0;
floorDown[i]=0;
}
????????Font?font=new?Font(“宋體“Font.BOLD10);??????????//設置字體
Font?fontl=new?Font(“宋體“Font.BOLD26);
for(int?i=0;i<6;i++)
{
if(i!=5)???//無buttonUp[5]
{
buttonUp[i]=new?Button(“▲“);?????????????????//向上按鈕
buttonUp[i].setFont(font);
buttonUp[i].setBackground(Color.LIGHT_GRAY);
buttonUp[i].setBounds(35710-i*1201515);
f.add(buttonUp[i]);
buttonUp[i].addActionListener(this);?
}
if(i!=0)???//無buttonDown[0]
{
buttonDown[i]=new?Button(“▼“);????????????????//向下按鈕
buttonDown[i].setFont(font);
buttonDown[i].setBackground(Color.LIGHT_GRAY);
buttonDown[i].setBounds(35725-i*1201515);
f.add(buttonDown[i]);?????
buttonDown[i].addActionListener(this);?
}
label[i]=new?Label(““+(i+1));//樓層號標記
label[i].setFont(fontl);
label[i].setBounds(5710-i*1203030);
f.add(label[i]);
}
for(int?i=0;i<3;i++)
{
buttonNum[i]=new?Button(““+(i+1));??????????????//數字按鈕
buttonNum[i].setBackground(Color.LIGHT_GRAY);
buttonNum[i].setBounds(170430-i*252525);
f.add(buttonNum[i]);?????
buttonNum[i].addActionListener(this);?
}? ??????
for(int?i=3;i<6;i++)
{
buttonNum[i]=new?Button(““+(i+1));??????????????//數字按鈕
buttonNum[i].setBackground(Color.LIGHT_GRAY);
buttonNum[i].setBounds(195
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????360044??2009-06-26?10:27??lift.wav
?????文件?????????98??2009-06-30?10:40??說明書.txt
?????文件??????15519??2009-06-29?16:59??lift.java
-----------?---------??----------?-----??----
???????????????375661????????????????????3
評論
共有 條評論