电梯调度算法设计

电梯调度算法设计电梯调度算法设计题目:电梯调度算法以金川校区电力大楼中间的4部电梯为例

电梯调度算法设计

题目:电梯调度算法
以金川校区电力大楼中间的4部电梯为例。(也可自行设定参数)
(1)建筑共有25层,其中含有地下一层。
(2)建筑内部设有4部电梯。
(3)中间两部电梯内部有25个按钮,其中包括开门按钮、关门按钮和楼层按钮,编号为-1,1,2,3,4…24。外侧两部电梯内部有11个按钮,其中包括开门按钮、关门按钮和楼层按钮,编号为-1,1,2,3,4…10。
(4)中间两部电梯设置为联动模式,外侧两部电梯设置为联动模式。

要求:
1.设计电梯调度算法,使电梯可对乘客的呼叫作出正确反应。
2.电梯运行效率高。
3.考虑特定的运行需求,如设置2-5层电梯不停等。
4.封装以上算法,实现可视化运行界面。【加分点】

时间表格

时间 成员 分工内容
2021年3月3日 A.M. 李渊博 设计程序思路,编写博客
陈鹏昊 设计程序思路
2021年3月3日 P.M. 李渊博 一起讨轮设计方案,包括应用使用语言,应用设计界面,电梯运行算法实现
决定使用Java作为编译语言,GUI界面设计
陈鹏昊
2021年3月5日 A.M. 李渊博 编写电梯上下运行核心代码
陈鹏昊 编写Elevator运行界面
2021年3月8日 A.M. 李渊博 合并代码,进行功能测试
陈鹏昊 多个电梯代码设计

电梯算法有些复杂,进行一半发现属于多线程。。没有进行学习

此前工程结束,项目宣告暂停。

下面是一部电梯的残疾代码希望大佬进行指正,在学习多线程之后完善此项目。

package attribute;

public class Elevator extends Floor { 
   
	private int number;
	private int GoFloor;
	private int state = 0;
	
	public Elevator() { 
   
		super();
	}
	
	public int getNumber() { 
   
		return number;
	}
	public void setNumber(int number) { 
   
		this.number = number;
	}

	public int getGoFloor() { 
   
		return GoFloor;
	}
	public void setGoFloor(int goFloor) { 
   
		GoFloor = goFloor;
	}
	public int getState() { 
   
		return state;
	}
	public void setState(int state) { 
   
		this.state = state;
	}
	
	public int ElevatorDown(int gofloor) { 
   //下楼
		this.setGoFloor(gofloor);
		this.setNowFloor(this.getNowFloor()-1);
		return this.getNowFloor();
	}
	
	public int ElevatorUp(int gofloor){ 
   //上楼
		this.setGoFloor(gofloor);
		this.setNowFloor(this.getNowFloor()+1);
		return this.getNowFloor();
	}
}

package attribute;

public class Floor { 
   
	private int NowFloor = 1;
	private int MaxFloor = 25;
	private int MinFloor = -1;
	
	public Floor() { 
   
		
	} 
	
	public void FloorNo1() { 
   
		if(NowFloor == 0)
			NowFloor = MinFloor;
	}
	public int getMaxFloor() { 
   
		return MaxFloor;
	}
	public int getNowFloor() { 
   
		return NowFloor;
	}
	public void setNowFloor(int nowFloor) { 
   
		NowFloor = nowFloor;
	}
	public int getMinFloor() { 
   
		return MinFloor;
	}
	
}

package operate;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import attribute.Elevator;

public class Elevator1{ 
   
    Elevator el = new Elevator();
   	public void Dianti1hao() { 
    
   		JButton b1 = new JButton("-1");     //-1
   	    JButton b2 = new JButton("1");		//1
   	    JButton b3 = new JButton("2");		//2
   	    JButton b4 = new JButton("3");		//3
   	    JButton b5 = new JButton("4");		//4
   	    JButton b6 = new JButton("5");		//5
   	    JButton b7 = new JButton("6");		//6
   	    JButton b8 = new JButton("7");		//7
   	    JButton b9 = new JButton("8");		//8
   	    JButton open1 = new JButton("开");  //开
   	    JButton close1 = new JButton("关"); //关
   	    JLabel light1 = new JLabel(); 
   	    JLabel c1 = new JLabel("-1");
   	    JLabel c2 = new JLabel(" 1");
   	    JLabel c3 = new JLabel(" 2");
   	    JLabel c4 = new JLabel(" 3");
   	    JLabel c5 = new JLabel(" 4");
   	    JLabel c6 = new JLabel(" 5");
   	    JLabel c7 = new JLabel(" 6");
   	    JLabel c8 = new JLabel(" 7");
   	    JLabel c9 = new JLabel(" 8");
    	JFrame jframe = new JFrame("1号电梯内部");
        jframe.setBounds(100,100,700,600);
        jframe.setVisible(true);
        jframe.setLayout(null);					//无布局管理设置
        jframe.setResizable(false);				//禁止最大化
        
        JPanel jpanel1 =new JPanel();							//电梯按钮
        jpanel1.setBorder(BorderFactory.createEtchedBorder());  //设置panel边框
        jpanel1.setLayout(null);
        jpanel1.setBounds(50,80,205, 400);
        JLabel jl2 = new JLabel("当前楼层:");						
        jl2.setBounds(5,310,55,25);
        jpanel1.add(jl2);
        	JTextField jl2k = new JTextField("1");						//当前楼层 取名为jl2k
    		jl2k.setBounds(60,310,35,35);
    		jpanel1.add(jl2k);
    		jl2k.setBorder(BorderFactory.createLineBorder(Color.black));
    		jl2k.setFont(new java.awt.Font("Dialog", 1, 25));	//层数字体设置,25为字体大小
        JLabel jl3 = new JLabel("前往楼层:");						
        jl3.setBounds(100,310,55,23);
        jpanel1.add(jl3);
        	JTextField jl3k = new JTextField("");						//前往楼层 取名为jl3k
        	jl3k.setBounds(155,310,35,35);
        	jpanel1.add(jl3k);
        	jl3k.setBorder(BorderFactory.createLineBorder(Color.black));
        	jl3k.setFont(new java.awt.Font("Dialog", 1, 25));
        
        JPanel jpanel2 =new JPanel();							//电梯标号 
        jpanel2.setLayout(null);
        jpanel2.setBounds(120,45, 

今天的文章电梯调度算法设计分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68195.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注