电梯调度算法

上传人:hs****ma 文档编号:552647454 上传时间:2023-09-02 格式:DOCX 页数:21 大小:82.24KB
返回 下载 相关 举报
电梯调度算法_第1页
第1页 / 共21页
电梯调度算法_第2页
第2页 / 共21页
电梯调度算法_第3页
第3页 / 共21页
电梯调度算法_第4页
第4页 / 共21页
电梯调度算法_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《电梯调度算法》由会员分享,可在线阅读,更多相关《电梯调度算法(21页珍藏版)》请在金锄头文库上搜索。

1、目录一、算法设计 11算法思想 12运环境 13问题描述 1二、实验步骤及方法 1三、源程序代码 2四、运结果图 15五、课程总结 15一、算法设计1算法思想本算法设计一部电梯, 通过往返寻找方法, 即先查询电梯运方向的楼层是否反方向运。如果没止在该楼层, 30秒后如果没有任何键被按下,电梯就自动返回 1楼停住。同时,电 梯乘客所去的楼层方向与电梯当前方向一致的话, 则电梯优先搭载该乘客。 随后再 搭载去反方向的乘客,以此实现电梯的升操作。2运环境本程序用java语言、eclipse平台编写。3问题描述往那个方向运动, 如果电梯中的人还没有到达目的地则继续向原方向运动。 具体而 言,如果电梯现

2、在朝上运动,如果当前楼层的上方和下方有请求,则先响应所有 上方的请求,然后才向下响应下方的请求;反之。二、实验步骤及方法1 由于鼠标单击每个楼层按钮时,需要作出相应的动作,所以我们使用jbutton按钮类,通过jbutton的单击事件来模拟楼层按钮并通过改变颜色来表示按钮是否被按下2 使用数组存储每个按钮的状态,1表示被按下,0表示夫被按下。用于电梯是否到达目标层的判断,及按钮颜色的刷新判断;3 “电梯也是一个jbutton类,通过改变颜色来模拟电梯的运,需要在此类中设置一个方向值,用 0 , 1 , 2 分别表示电梯的停止向上向下运。三、源程序代码import java.awt.Color;

3、import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.*;import javax.swing.JButton;import javax.swi

4、ng.JFrame;import javax.swing.JPanel;j rp import javax.swing.Timer;public class Lifta/* param args*/public static void main(String args)Brick brick=new Brick();class Brick /方块类public int octime=0;/计算开关门事件。public int j=0;public St ring closedoor=关门;public St ring close=关;public St ring open=开;JFrame f

5、rame=new JFrame( 电梯调算法 );JPanel pan=new JPanel();JButton but=null;JButton sign=new JButton(+j+楼);JButton openclose=new JButton(closedoor+);JButton openkey=new JButton(open+);JButton closekey=new JButton(close+);public ArrayList blackBrick;/brick 用来依次存放bu tton,程序用 butt on显示蓝色表示有电梯的当前位置。public ArrayLi

6、st controlBrick;/controlBrick用 来依次存放button,表 示每层 楼电梯口的是上键和下键,程序用butt on显示绿色表示对应键被按下。public int con trolTable;/用二维数组con trolTable与电梯口的上下键对应,其中如果值1表示b utt on应显示绿色,值0表示b utt on应显示灰色。public ArrayList numberBrick; /numberBrick用 来依次存放button,程序用 button显 示桔黄 色表示电梯内的数字键被按下。public inttable; /用二维数组table与电梯内的数字

7、键寸应,其中如果值1表示button应显 示桔黄色,值0表示button应显示灰色。public int upSignalTable; /纪录向上任务的任务数组,值为1表示相应位的上键被按下。 public int downSignalTable; /纪录向下任务的任务数组,值为1表示相应位的下键被按下。 public Timer timer;/计时器。public LiftThread lift;/控制每个电梯的线程数组。/=构造方法(下 )初始化=/public Brick()sign.setBounds(0, 0, 80, 40);/起始位置/开关门部分openclose.setBoun

8、ds(80, 0, 80, 40);openclose.setBackground(Color.yellow);openkey.setBounds(160, 0, 80, 40);openkey.addActionListener(new OpencolseListener();/开门 按钮添加事件 closekey.setBounds(240, 0, 80, 40);closekey.addActionListener(new OpencolseListener();/关门 按钮添加事件/画布绝对定位/设置字体样式pan.setLayout(null);Font fnt=new Font(S

9、erief,Font.ITALIC,15); /实化数组numberBrick=new ArrayList(10);blackBrick=new ArrayList(10);controlBrick = new ArrayList(10);controlTable = new int102;for (int i = 0; i 10; i+)for (int j = 0; j 2; j+)controlTableij = 0;table = new int10;for (int i = 0; i 10; i+)tablei = 0;upSignalTable = new int10;downSi

10、gnalTable = new int10;for (int i = 0; i 0;i-)/最左边黑色but=new JButton();but.setFont(fnt);but.setBounds(0, (11-i)*40, 80, 40);but.setBackground(Color.BLACK);blackBrick.add(but);pan.add(but);/显示楼层but=new JBu tt on(+i+ 楼);but.setFont(fnt);but.setBounds(80, (11-i)*40, 80, 40);but.addActionListener(new Numb

11、erListener(i);but.setBackground(Color.gray);numberBrick.add(but);pan.add(but);/向上键but=new JButton(上);but.setFont(fnt);but.setBounds(160, (11-i)*40, 80, 40);if(i!=10)but.addActionListener(new UpListener(i);but.setBackground(Color.gray);controlBrick.add(but);pan.add(but);/向下键but=new JButton( 下);but.se

12、tFont(fnt);but.setBounds(240, (11-i)*40, 80, 40);if(i!=1)but.addActionListener(new DownListener(i);but.setBackground(Color.gray);controlBrick.add(but);pan.add(but);/ 二-Gr? ;, 4z4z4z4z4z4z4z4z4z4z4z4z4z4z4z4z4z/*运部分 *pan.add(sign);pan.add(openclose);pan.add(openkey);pan.add(closekey);frame.add(pan);f

13、rame.setSize(329, 479);lift = new LiftThread();frame.setVisible(true);frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);/=构造方法(上)=/ / xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xlz xfzji-,今 1 Y 、n* W、L/*填充方块和设置方法l/l/l/l/l/l/l/l/l/l/l/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号