欢迎来到天天文库
浏览记录
ID:25442240
大小:138.00 KB
页数:16页
时间:2018-11-20
《电梯调度算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、WORD格式可编辑目录一、算法设计11.算法思想12.运行环境13.问题描述1二、实验步骤及方法1三、源程序代码1四、运行结果图14五、课程总结15专业知识分享WORD格式可编辑一、算法设计1.算法思想本算法设计一部电梯,通过往返寻找方法,即先查询电梯运行方向的楼层是否存在有其他键被按下,有就继续往该方向运行,如果没有就查询电梯运行反方向的楼层是否有按键被按下,如果有电梯就改变方向,反方向运行。如果没有电梯就停止在该楼层,30秒后如果没有任何键被按下,电梯就自动返回1楼停住。同时,电梯乘客所去的楼层方向与电梯当前方向一致的话,则电梯优先搭载该
2、乘客。随后再搭载去反方向的乘客,以此实现电梯的升降操作。2.运行环境本程序用java语言、eclipse平台编写。3.问题描述电梯调度算法的基本原则就是如果在电梯运行方向上有人要使用电梯则继续往那个方向运动,如果电梯中的人还没有到达目的地则继续向原方向运动。具体而言,如果电梯现在朝上运动,如果当前楼层的上方和下方都有请求,则先响应所有上方的请求,然后才向下响应下方的请求;反之。二、实验步骤及方法1.由于鼠标单击每个楼层按钮时,需要作出相应的动作,所以我们使用jbutton按钮类,通过jbutton的单击事件来模拟楼层按钮并通过改变颜色来表示按
3、钮是否被按下2.使用数组存储每个按钮的状态,1表示被按下,0表示未被按下。用于电梯是否到达目标层的判断,及按钮颜色的刷新判断;3.“电梯”也是一个jbutton类,通过改变颜色来模拟电梯的运行,需要在此类中设置一个方向值,用0,1,2分别表示电梯的停止向上向下运行。三、源程序代码importjava.awt.Color;importjava.awt.Container;importjava.awt.Font;importjava.awt.GridLayout;专业知识分享WORD格式可编辑importjava.awt.TextField;im
4、portjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjava.util.*;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.Timer;publicclassLifta{/***@pa
5、ramargs*/publicstaticvoidmain(String[]args){Brickbrick=newBrick();}}classBrick{//方块类publicintoctime=0;//计算开关门事件。publicintj=0;publicStringclosedoor="关门";publicStringclose="关";publicStringopen="开";JFrameframe=newJFrame("电梯调度算法");JPanelpan=newJPanel();JButtonbut=null;JButtonsi
6、gn=newJButton(+j+"楼");JButtonopenclose=newJButton(closedoor+"");JButtonopenkey=newJButton(open+"");JButtonclosekey=newJButton(close+"");专业知识分享WORD格式可编辑publicArrayListblackBrick;;//brick用来依次存放button,程序用button显示蓝色表示有电梯的当前位置。publicArrayListcontrolBrick;//controlBrick用来依次存放butt
7、on,表示每层楼电梯口的是上键和下键,程序用button显示绿色表示对应键被按下。publicint[][]controlTable;//用二维数组controlTable与电梯口的上下键对应,其中如果值1表示button应显示绿色,值0表示button应显示灰色。publicArrayListnumberBrick;//numberBrick用来依次存放button,程序用button显示桔黄色表示电梯内的数字键被按下。publicint[]table;//用二维数组table与电梯内的数字键对应,其中如果值1表示button应显示桔黄色,
8、值0表示button应显示灰色。publicint[]upSignalTable;//纪录向上任务的任务数组,值为1表示相应位的上键被按下。publicint[]d
此文档下载收益归作者所有