java如何写电梯代码_JAVA编写的一个简易的电梯模型,完成电梯如何满足乘客上下楼需求(ElevatorTest)...
【实例简介】
【实例截图】
【核心代码】
package ele;
import java.util.LinkedList;
import java.util.Queue;
public class ElevatorTest
{
public static void main(String[] args)
{
//初始化
//初始化电梯
Elevator[] elevator=Simulation.initElevator();
//初始化乘客
Passenger[] passenger=Simulation.initPassenger();
//初始化楼层
Floor[] floor=Simulation.initFloor();
for(Passenger p:passenger)//将所有乘客插入一楼的闲置队列
floor[0].getIdleQueue().offer(p);
int systemTime=0;//系统时间控制,仿真开始时为0
System.out.println("仿真开始");
System.out.println("-------------------------------------------");
System.out.println("时间:" systemTime "秒");
for(Elevator e:elevator)//电梯初始状态
System.out.println("电梯" e.getId() "在第" e.getCurrentFloor() "层.方向为" e.getFlag() ".状态为" e.getStatus() ".梯内有" e.getCarryQueue().size() "个乘客" e.getCarryQueue());
System.out.println("-------------------------------------------");
while(Simulation.isFinished(passenger)==false)//主循环,还有人没有完成乘梯活动
{
for(Floor f:floor)//将每个楼层中,请求时间到达的乘客从闲置队列移到请求队列
{
if(f.getIdleQueue().size()==0)//该层没有乘客,退出本次循环
continue;
Queue delList = new LinkedList();//辅助队列
for(Passenger p:f.getIdleQueue())
{
if(p.getNextRequestTime()==systemTime)//系统时间与p请求时间相同
{
f.getWaitQueue().offer(p);// 将p加入楼层请求队列
delList.offer(p);//将p加入要删除的辅助队列
}
}
f.getIdleQueue().removeAll(delList);//将加入楼层请求队列的p从闲置队列删除
}
System.out.println("时间:" (systemTime 1) "秒");
for(Floor f:floor)//每个楼层
{
if(f.getWaitQueue().size()==0)//楼层没人请求,退出本次循环
continue;
for(Passenger p:f.getWaitQueue())//某一楼层请求队列的所有乘客
{
if(p.getResponse()==false)
{
p.chooseElevator(elevator);//p选择电梯
p.setResponse(true);//设置p响应标志位true
}
}
}
//System.out.println("-------------------------------------------");
//System.out.println("时间:" (systemTime 1) "秒");
for(Elevator e:elevator)//每部电梯改变一次状态
{
e.takeElevator(floor[e.getCurrentFloor()-1],systemTime );//在时间为systemTime,楼层为currentFloor时,处理乘客上下电梯事件
System.out.println("电梯" e.getId() "在第" e.getCurrentFloor() "层.方向为" e.getFlag() ".状态为" e.getStatus() ".梯内有" e.getCarryQueue().size() "个乘客" e.getCarryQueue());
e.continueRun();//继续运行一秒
}
//打印楼层信息
for(Floor f:floor)
if(f.getWaitQueue().size()>0)
System.out.println("楼层" f.getId() "有" f.getWaitQueue().size() "个乘客在等待乘梯." f.getWaitQueue());
System.out.println("------------------------------------------");
systemTime ;//系统时间加1
}
//System.out.println("-------------------------------------------");
System.out.println("本次仿真所用时间:" systemTime "秒");
System.out.println("-------------------------------------------");
for(Passenger p:passenger)//统计乘客等待时间
System.out.println("乘客p" p.getId() "的等待时间为:" p.getWaitTime() "秒");
System.out.println("-------------------------------------------");
for(Elevator e:elevator)//统计电梯闲置及运行时间
System.out.println("电梯" e.getId() "的闲置时间为:" e.getIdleTime() "秒.运行时间为:" e.getRunTime() "秒");
}
}
java如何写电梯代码_JAVA编写的一个简易的电梯模型,完成电梯如何满足乘客上下楼需求(ElevatorTest)...相关推荐
- java关于继承的代码_java编写动物世界的继承关系代码
满意答案 bjtm0210 推荐于 2017.12.16 采纳率:57% 等级:8 已帮助:611人 我写了一个,内容比较简单的.代码如下:public class AnimalTest { A ...
- java记事本写玫瑰花代码_Java记事本源代码(完整)
<Java记事本源代码(完整)>由会员分享,可在线阅读,更多相关<Java记事本源代码(完整)(13页珍藏版)>请在人人文库网上搜索. 1.* 作品:记事本* 作者:* 功能: ...
- 在java中写出html代码,在java里写html代码
在java里写html代码 [2021-02-09 07:31:38] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...
- 学java用什么写比较好_学习Java需要什么基础,初学Java如何写好代码
原标题:学习Java需要什么基础,初学Java如何写好代码 初学Java的同学时常会遇到这样的情况,跟着入门教程看过一遍,但需要自己写代码的时候却无从下手:写代码的时候时常会遇到不懂的地方,如果停下来 ...
- java模拟电梯程序_Java编写的电梯模拟系统《结对作业》
伙伴成员:李伊 http://home.cnblogs.com/u/Yililove/ 对于这次作业,我刚开始一点思绪都没有,在老师安排了结对伙伴李伊之后,我的搭档问我,我们需要什么编程语言来编写程序 ...
- java猜数字游戏代码_Java如何编写猜数字游戏
在看到这个小游戏的时候,首先想到的是: 1.电脑会随机生成一个数字. 2.我们需要去猜测生成的这个数字,并输入我们猜测的值. 3.电脑生成的随机数需要和我们猜测的值相比较. 4.比较的结果需要体现出来 ...
- java如何编写出菱形的代码_java编写菱形代码
菱形代码 public class Diamond { public static void main(String[] args) { for (int i = 1; i <= 5; i++) ...
- java主窗体设计代码_java窗体设计+GUI经典代码全放送
[实例简介] java窗体设计经典代码,手把手叫你如何设计java窗体,编写应用程序. [实例截图] [核心代码] 57641e3b-d82c-4f28-bb29-35f951c1158d └── j ...
- java wed登录面 代码_Java Web登录界面
非常激动的开通了我的第一个博客,在这里希望大家能多多指点,相互学习. 一个简单的登录界面 首先我们先把这个登录分为三块: 一.数据库 数据库我用的是MYSQL: 二.前端 三.后台 1. 后台代码的 ...
最新文章
- 函数返回类的对象与拷贝构造函数
- GNU make manual 翻译(五十一)
- 【前端】react and redux教程学习实践,浅显易懂的实践学习方法。
- Toad Oracle 本地/远程数据库导入/导出 数据库备份
- Java学习之for语句
- 消息队列如何保证顺序性?
- 常用ms-dos命令
- LeetCode算法入门- Remove Element -day20
- 信息学奥赛一本通C++语言——1035:等差数列末项计算
- 浦发银行出现:部件'InstallCertListAx.ocx'或其附件之一不能正确注册:一个文件丢失 解决...
- html表单中按钮添加超链接,JS 实现点击按钮实现超链接功能
- 大数据可视化有哪些优势
- 吞食天地2完全版乱码怎么解决_PDF转Word如何转换?PDF转Word乱码怎么解决?
- 【OpenCV】用sobel算子和Susan算子提取恩智浦智能车赛道边缘
- 三菱Q系列PLC QJ71C24-R2模块的串口232通信
- word自动生成目录和调整页码字体的方法
- java源文件基本布局结构_请调试课本 “第117页”5.4.1节 菜单资源 的代码, 并将程序运行的屏幕截图 和 核心源代码的截图(布局文件,菜单资源文件,Java文件,程序结构图等)提交。...
- 无源晶振(Crystal)的负载电容
- VBlog项目代码理解之前端
- 概率练习 (16.04.30)