一 需求分析
某一栋楼有20层,有5部互联的电梯。基于线程的思想,编写一个电梯调度程序。这五部电梯项目联结,即当一个电梯按钮按下去时,其它电梯相应按钮同时点亮,表示也按下去了。
二 程序设计
本项目采用MVC的思想构建。
关键类的设计如下:
2.1 ElevatorGUI类
这个类主要负责主界面的布局,并将它代理给ElevatorController,使得某些监听事件的逻辑添加可以写在ElevatorController中。其中的函数方法都用于UI设置。
类图如下:

2.2 ElevatorController类
这个类是核心控制类(Controller),继承自Thread类,重写run(),多线程运行。
类图如下:

view: controller对应的viewelevators: 用于储存五个电梯的数组upButtons: 储存向上按键的数组,便于在controller中添加数据downButtons: 储存向下按键的数组upStatus: 记录对应的向上按键是否被按下downStatus: 记录对应的向下按键是否被按下showView(): 显示viewrun(): 重写Thread中run()addFloorButtons(): 添加主界面左侧控制中心的所有按钮addElevator(): 添加五部电梯findProperUpElevator(int floorNum): 按下向上按键后寻找最优的电梯findProperDownElevator(int floorNum): 按下向下按键后寻找最优的电梯
2.3 Elevator类

本文档介绍了一个基于Java的电梯调度模拟程序设计,针对一栋20层楼、5部互联电梯的场景。通过线程管理和MVC设计模式,实现了ElevatorGUI负责界面布局,ElevatorController作为核心控制器进行多线程控制,而Elevator类则负责电梯的逻辑处理。
376

被折叠的 条评论
为什么被折叠?



