• 关于结对编程——电梯调度


    由于时间还是比较充裕,现在还未进入两人讨论,就在这篇博客中说一下我对这个题目的一些想法和思路。

     现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示:

    电梯编号

    可服务楼层

    最大乘客数量

    最大载重量

     1

    全部楼层

    10

    800 kg

    2

    单层

    10

    800 kg

    3

    双层

    20

    1600 kg

    4

    全部楼层

    20

    2000 kg

          其使用规定如下:

          1、楼层号为0~20,其中0号为地下一层;

          2、有楼层限制的电梯不在响应楼层停靠,如单双层;

          3、所有电梯采用统一按钮控制

          请根据上述要求设计并实现一个电梯控制程序,如果有图形显示就更好了。

    以上是该题目的基本要求。

    首先,0号为地下一层,也就是说,我们的出入一般都在0和1号(地下和大堂)。设计程序时,如果乘客选择0号,那么当乘客下电梯之后,电梯将自动回到1号位置,方便下一波乘客乘坐。

    从表中可以知道电梯有楼层限制,人数限制,以及载重量限制,我觉得可以用switch,分类讨论乘客进入了那部电梯。

    人数以及载重量可以用声音或者灯光来显示是否超过,当然这里还有一个小问题就是,这个程序里面说的是电梯,我们不可能要求每位乘客输入自己的体重以及自己携带物品的重量,这个问题需要讨论了。。。

    关于单双层问题,如果乘客进入了此类电梯,摁到了无法到达的楼层,我想采用电梯不动或者说无法响应的方式,一是这样代码比较好写,二是比较贴近生活。

    接下来就是搭乘电梯的问题,如果不工作时,1,4号电梯将分别停留在1和21层,而2,3号电梯将分别停留在10,11层(这是在一篇博客中看到的,说好的电梯调度应该要尽量减少乘客的等待时间)。我们假设电梯所在楼层数为a,乘客所在楼层数为b,两个相邻楼层之间运行时间为t(此处指的是匀速),乘客需要到达楼层数为c,电梯开关门时间为t1,乘客进出入时间为t2,乘客等待时间为t0,搭乘总时长为T,↑表示电梯或者乘客需求向上,↓表示电梯或者乘客需求向下。

    全部楼层:

    (1)乘客需求向上(此时电梯无人使用)

    1. a>b,即电梯先下后上,t0=(a-b)*t; T=t0+t1+t2+(c-b)*t;

    2. a<b,即电梯直接上,t0=(b-a)*t; T=t0+t1+t2+(c-b)*t;

    3. a=b,即乘客无需等待, T=t1+t2+(c-b)*t;

     (2)乘客需求向上(此时电梯正在向上行驶)

    1. a>b,即电梯需要到达指定楼层才会向下(我们假定必须要上到21层之后才会向下行驶),t0=(21-a+21-b)*t; T=t0+t1+t2+(c-b)*t;

    2. a<b,即电梯直接上,t0=(b-a)*t; T=t0+t1+t2+(c-b)*t;

    3. a=b,即乘客无需等待, T=t1+t2+(c-b)*t;

    (3)乘客需求向上(此时电梯正在向下行驶)

    1. a>b,即电梯需要到达指定楼层才会向上(我们假定必须要下到1层之后才会向上行驶),t0=(b-1+a-1)*t; T=t0+t1+t2+(c-b)*t;

    2. a<b,即电梯先下后上,t0=(b-1+a-1)*t; T=t0+t1+t2+(c-b)*t;

    3. a=b,t0=(b-1+a-1)*t; T=t0+t1+t2+(c-b)*t;

    乘客需求向上时,以此类推,在这里不一一赘述。

    单双层电梯与全部楼层的情况类似,但是运行时间要将t改为2t。

    以上就是我的想法,和对这道题的理解,如果有哪里写错或者算错的地方,请助教和老师多多指正。。。

  • 相关阅读:
    java 请求响应乱码
    基于eclipse的mybatis映射代码自动生成的插件http://blog.csdn.net/fu9958/article/details/7521681
    基于eclipse的mybatis映射代码自动生成的插件
    使用Mybatis Generator自动生成Mybatis相关代码
    MyBatis使用Generator自动生成代码
    selector是在文件夹drawable中进行定义的xml文件。
    新浪微博布局学习——妙用TabHost
    分布的拟合和检验
    python学习之--SyntaxError: Non-ASCII character 'xe5'
    两天学会DirectX 3D之入门
  • 原文地址:https://www.cnblogs.com/fandaren/p/5327252.html
Copyright © 2020-2023  润新知