[源码和文档分享]基于JAVA的电梯调度模拟

一、项目要求概述

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 调度

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

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

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

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

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

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

参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1370.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、使用说明 1.1 项目简介 某一楼有20层,操作者可以通过使用5部电梯从起始楼层来到达指定的楼层。本项目通过实...
    ggdd5151阅读 1,823评论 0 0
  • 姓名:李振华 学号:17101223418 【嵌牛导读】:电梯调度算法是一类经典问题,在操作系统的磁盘...
    大华华0504阅读 9,209评论 0 1
  • 女儿清理出的书及玩具灯光大屋,转让给需要的邻居。谢谢!谢谢!谢谢! 清理了姐姐为女儿织的毛衣,转让给邻居,邻居爱不...
    创造全新幸福生活阅读 1,625评论 0 0
  • 常常会有文章推荐精彩的电影,十大不容错过的,十五部必看的…… 也曾经甚至抄下来,一部一部去寻找……去收藏。 我不喜...
    我到海边送夕阳阅读 1,261评论 0 0
  • 周六,晚八点。 课程结束,下楼时对他说,你不送送我吗?他微笑,送啊。 下楼。车就停在门口,打开后备箱,取出他挑的那...
    lichangan阅读 1,603评论 2 2

友情链接更多精彩内容