美文网首页源码与文档分享
基于JAVA的电梯调度模拟

基于JAVA的电梯调度模拟

作者: UlricaLee | 来源:发表于2019-08-03 18:24 被阅读1次

一、项目要求概述

1.1 项目目的

通过控制电梯调度,实现操作系统调度过程

学习特定环境下多线程编程的方法

学习调度算法

1.2 开发环境

语言:java

系统平台:全平台(具备java环境)

IDE:Intellij IDEA

产品呈现模式:jar包

执行环境要求:安装java

Win:安装java配置环境变量后双击

Linux/Mac:命令行:

java –jar 电梯.jar

1.3 基本需求

模拟20层楼中5架电梯的调度

电梯具有最基本的按键

可显示电梯的当前状态

二、调度算法概述

2.1 乘客行为概述

乘客可以在20层楼的任何一层楼按当前楼层的上或者下的按键对电梯提出需求

乘客可以按动电梯中的楼层选择按钮来对指定电梯前去哪里,由于ui的设计问题,这一功能被要求在按动请求按钮时一并完成

乘客可以在电梯中按动紧急按钮迫使当前电梯停止运作

2.2 电梯行为概述

电梯初始状态均为静止,且停泊在第一层

电梯通过反复自检自身的状态变量来变更自己的行为

行进中的电梯每到一个楼层都自检下客队列,判断当前楼层是否需要开门下客

行进中的电梯每到一个楼层都要检查当前楼层乘客等待队列是否有符合当前方向的乘客,判断当前楼层是否要载客,如果在该楼层电梯中没有了乘客且没有应答其他请求,则载上当前楼层人数较多方向的乘客继续行进

2.3 调度

乘客按下请求按钮响应流程

上下方向上有朝这一楼行进且该电梯的最高/低请求大于该楼层:

将会等待该电梯到达该楼层来载上该乘客

上下方向上没有朝这一楼行进的电梯或是有但是该电梯最高/低请求并没能到达该楼层:

将会进行检索静止的电梯队列:

静止电梯的选择将位置优先,选择离该楼层最近的静止电梯来响应请求,将该电梯启动,并将在该楼停下的指令塞入该电梯。

点击下载源码

相关文章

  • 基于JAVA的电梯调度模拟

    一、项目要求概述 1.1 项目目的 通过控制电梯调度,实现操作系统调度过程 学习特定环境下多线程编程的方法 学习调...

  • 基于Android实现的电梯调度模拟

    一、使用说明 1.1 项目简介 某一楼有20层,操作者可以通过使用5部电梯从起始楼层来到达指定的楼层。本项目通过实...

  • 大数据相关开源项目汇总

    调度与管理服务 **Azkaban **是一款基于Java编写的任务调度系统任务调度,来自LinkedIn公司,用...

  • Java模拟电梯系统

    介绍: 用Java编写对的模拟电梯上下楼。 运行截图: 初始化界面 电梯进行上楼,输入3 5 -1 电梯下楼,输入...

  • 基于JAVA的进程调度算法

    一、需求分析 在Java开发环境下,模拟进程调度算法,其中该算法所需要的具体功能为:采用最高优先数优先的调度算法(...

  • Java中线程是抢占式的吗?

    Java的线程调度策略是“种基于优先级的抢占式调度”,Java这种抢占式凋度可能是分时的,即每个等待池中的轮流执行...

  • 程序猿在等电梯时都在想什么?

    等这么久了,电梯怎么还没来???一定是电梯调度有问题!那就让我给它设计一个电梯调度算法。 电梯调度与操作系统中的磁...

  • Azkaban 使用问题及解决(一)

    什么是Azkaban Azkaban是一款基于Java编写的任务调度系统 任务调度:有四个任务脚A、B、C、D,其...

  • Java定时任务工具详解之Timer篇

    Java定时任务调度工具详解 什么是定时任务调度? ◆ 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行...

  • 基于JAVA的磁盘调度算法

    一、需求分析 编译程序运用磁盘的四种调度算法实现对磁盘的调度,四种算法分别为先来先服务(FCFS)算法,最短寻道时...

网友评论

    本文标题:基于JAVA的电梯调度模拟

    本文链接:https://www.haomeiwen.com/subject/uiqsdctx.html