软件工程概论作业二 电梯调度思路 信1205班 刘权毅 董文轩

   这周一老师给我们留的作业是关于“电梯调度”的算法设计,我们两个人结组一同设计这个问题,最终有了我们自己的思路,下面将进行介绍:

   首先,先说明一下这个问题,该题目的要求为:试想一下,我们正在构建一个高大的办公楼,它有大约电梯配置如下:大厦有21层, 4部电梯,很多乘客使用这些电梯的日常(旅客重量:平均70公斤最大120公斤,最小45公斤)。其他常量数据:电梯速度,开/关门时间,乘客的时间要在/走出电梯。另外,从地面0 , 1 ​​, ... 20 。地板0是地下停车场水平, 1楼是大堂的水平。大多数人都在/走出大楼通过这些2层。另外,还有一些基本要求:

电梯名称

停靠层数

乘客限制

重量限制

1

所有楼层

10

800 kg

2

所有楼层

10

800 kg

3

所有楼层

20

1600 kg

4

所有楼层

20

2000 kg

其次,我们先设想一下现实生活中的整个流程,从一个想要乘电梯的人的角度出发,他需要确定几个问题:

①乘客是上电梯还是下电梯。对于这个问题,我们把每个人以button控件来表示,且每一层有个小文本框来记录该层是第几层,同时还要做一个电梯外部的显示窗口,该窗口有一个窗口记录电梯目前所在楼层数,一个向上的按键和一个向下的按键。

②电梯的运行问题。我们可以用两个数值来表示电梯的运行,比如0和1。假设设置一个变量a,当a=1时说明电梯正在向上行驶,当a=0时说明电梯正在向下行驶。如果电梯目前所在楼层数高于乘客所在楼层数,那么电梯还要进行判断自己所在楼层以上是否还有其他乘客,如果有则a的值仍为1,反之a的值变为0。当电梯到达乘客所在楼层数时,电梯停止行驶,等待乘客,这里可以再假设一个变量c,当c=1时代表电梯正在行驶,当c=0时代表电梯停止行驶。

③4个电梯哪个最先到达的问题。设想一下,当电梯外部按下楼层上或下键时,相当于同时按下4个电梯,这个时候从4个电梯中调度一部进行响应,具体算法是,选择当前没有在运行,或者运行方向与按钮方向相同的并且要经过此楼层的电梯,如有,便调这个电梯,若有多个,那么就选择在满足上面条件下与所处楼层最接近的一部电梯,若没有,那么就将这个楼层存放在等待队列中,等待资源。这里我们可以采用队列的存储方式来进行存储,把计算时间最短(能让乘客所爬楼梯数最少)的电梯进行调用。

④乘客进出电梯。此时需要设计一个电梯内部的窗口,正如现实生活中一样,电梯内部窗口包括一个显示窗口,用来记录电梯所在的实际楼层数;同时,还有相应的0~20层楼的按键,开关门的按键和一个紧急报警按钮。当电梯外部有乘客按下楼层上下键按钮时,用一个二维数组记录下按键所在层数的坐标,若电梯所在楼层坐标与二维数组中的坐标相等时,电梯停下,打开电梯门,等待乘客进入。经过系统规定开关门时间再关闭电梯门。

⑤电梯超载问题。对于每个电梯所能承受的最大重量不同,于是可以采用简单求和的方式,设置一个变量,电梯内部每进来一名乘客就加上他的体重,每走出一名乘客就减去他的体重。如果此时该变量值已超电梯最大承载量,那么电梯将自动启动紧急报警按钮,停止运行,一直保持开门状态,直到载客数减少。

    以上便是我们所考虑到的问题,可能有些说的不是很详细,有些存在遗漏和缺陷,但是我们会加以完善。考虑完这些,我们在学校春晖楼对电梯运行情况进行了考察,我们发现:

电梯平均运行速度2.3秒/层
电梯开关门间隔9.6秒
乘客走进出电梯的时间间隔

(人流量多时)20秒

(人流量少时)9.6秒

 

注意:当有乘客阻止电梯门的关闭超过1秒时,电梯会再次启动一个开关门的时间间隔。

 

以上便是我们小组自己的思路,现在还没有具体的算法实现,由于是第一次接触如此复杂的问题,我们的思路会存在一些不足,这还需要我们以后在实际编程中发现问题,解决问题。

                                                                                                    信1205班

                                                                                                  董文轩  刘权毅



转载于:https://www.cnblogs.com/dashendwx/p/3587789.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值