zoukankan      html  css  js  c++  java
  • 软件工程第四个程序:结对项目 —— 电梯调度问题(分析)

    软件工程第四个程序:结对项目 —— 电梯调度问题

    题目

    情景设置:现有一新建办公大厦,共有21层,共有四部电梯。

    基本参数:电梯编号,可服务楼层,最大乘客数量与最大载重量。

    使用规定:
    1、楼层号为0~20,其中0号为地下一层;
    2、有楼层限制的电梯不在响应楼层停靠,如单双层;
    3、所有电梯采用统一按钮控制。

    分析

    这是一个有4部电梯的办公大厦,楼层为地下1层,1层到20层;电梯有编号,有楼层限制,并有超重报警;
    我们要设计一款软件,实现电梯的合理调度,满足用户的电梯使用的需求;

    实际问题分析:很多写字楼都有多部电梯,他们在排一起,一部电梯负责1到20层,另一部电梯负责20层到30层,再来部电梯负责30层往上;
    每部电梯的门旁边都有上下按钮,你到哪层按哪部电梯。

    我们这题有4部,不可能在门外只有一个上下按钮。也就是说:电梯之间应该是相互独立的;

    至少单双层限制的电梯肯定是分开的,不然你要去15层,按下电梯按钮后,只停双层的电梯门开了,你上还是不上?

    在大型综合医院的电梯大厅里左边的电梯是只停单层的,右边的只停双层。

    为了求证,清明假期第一天,我还去了八院。住院楼那里有个电梯大厅,共有六部电梯,三部三部对着的,左手边的只停单层,右手边的只停双层,左右两边都是三部电梯中间夹着两套上下按钮。但是两边的电梯各有一个是暂停服务的(留着紧急时使用,我觉着)。按下其中一个按钮,同侧的另一套相应的按钮也会亮起。表示两套按钮不管按哪个,系统都会识别此层有人要叫电梯。

    我们的这栋办公楼里有四部电梯,二号电梯只停单层,三号电梯只停双层,我们可以把一号和二号电梯划为一组,三号和四号电梯划为一组,各用一套上下按钮,即各自为一个小系统。

    建立好了电梯的布局,再来熟悉一下电梯的使用规则:

    1.乘客在电梯外按上或下按钮,等待电梯,电梯来了进入电梯;

    2.乘客进入电梯后,按电梯内部楼层按键,电梯到达指定楼层后,走出电梯。

    这是对乘客而言的电梯使用规则,而对电梯系统而言的乘客运送规则为:

    1.某一楼层的上下按钮被按下,上下按传给电梯系统信息(包括:哪一组,哪一层,哪个按钮);
    //传递“哪一组”是没有必要的,真正电梯运行的时候,两组电梯毛关系没有,这里想要把四部电梯都显示在一起才加这么一项。

    2.电梯系统接收消息,初步处理,转由该组的电梯调度程序处理,调度程序将楼层和方向通知所辖的电梯;

    3.多部电梯都接到了信息,先到的电梯完成了该任务,告知调度程序任务已经完成,调度程序随即通知所辖的电梯取消该任务。

    4.之后,到达指定楼层的电梯,内部的楼层按键被按下,电梯运行程序记录所有被按下的楼层按键,逐一抵达。

                                                                                                                                                              J.X.Dinosaur

  • 相关阅读:
    LeetCode 811. Subdomain Visit Count (子域名访问计数)
    LeetCode 884. Uncommon Words from Two Sentences (两句话中的不常见单词)
    LeetCode 939. Minimum Area Rectangle (最小面积矩形)
    LeetCode 781. Rabbits in Forest (森林中的兔子)
    LeetCode 739. Daily Temperatures (每日温度)
    三种方式实现按钮的点击事件
    239. Sliding Window Maximum
    14.TCP的坚持定时器和保活定时器
    13.TCP的超时与重传
    12.TCP的成块数据流
  • 原文地址:https://www.cnblogs.com/duasonir/p/5348456.html
Copyright © 2011-2022 走看看