【C#】结对项目开发-电梯调度需求分析(党云龙、黄为)

1 、春晖楼实际调研

  数据

 

  电梯实际运行概况

    经过实际的调研,电梯的实际运行状况与开始的初步想法有些出入,在外部同一组电梯,按下其中一个请求按钮,一组电梯的请求信号同时亮起同时做出响应,并且电梯没有固定初始位置,初始位置默认为电梯最后到达的一楼层,在内部进入电梯后如不对电梯发出任何请求,电梯不做出任何响应,电梯运行中优先响应与电梯运行方向相同的请求,

                         
2、设计

      对于四部电梯调度进行简化来进行思考;首先我们假定有一台电梯,对于上述条件进行调度。
   

  • 电梯 
    电梯有三种状态,上升、静止、下降;同时电梯根据上述条件有乘客与重量的限制,是否超重;在最顶层上升不可用,在最低层下降不可用,求助状态,断电状态,电梯门状态,电梯所在楼层。
    Class 电梯
    {
        private int MoveStatus;//运行状态
        private int MoveDir;//运行方向
        private int MaxWeight;//重量限制
        private int WhereFloor;//所在楼层
        private bool HelpSingle;//求助信号
        private bool NoPower;//断电状态
        private bool DoorStatus;//电梯门状态
        pubulic bool OpenDoor();//打开电梯门
        pubulic bool CloseDoor();//关闭电梯门
        pubulic bool OverWeight();//检测超重
        pubulic bool ChangStatue();//改变电梯状态
       
    }
  • 运行
    单电梯情况:
    每一层,乘客发出请求,电梯响应请求。首先,进行方向判断,优先与电梯方向相同并且楼层与电梯所在楼层相近的请求。其次,待与电梯方向相同的请求执行完毕之后,电梯改变运行方向,按照之前的规则执行,直至电梯没人,电梯恢复初始位置。
    假设:电梯初始楼层在一楼,MoveRequest=0(用户请求变量),监测用户请求,此时电梯门处于关闭状态;
            1、若有用户请求,判断是否本层请求
                 若在本层,则用OpenDoor()函数打开电梯门,同时每隔固定时间检测用户是否已全部进入电梯,若已全部进入电梯,则用CloseDoor()函数关闭电梯,继续运行。
                 若不在本层,则判断时候接收到多了用户请求,若是多个请求则利用JudgeNext()函数判断该响应哪一个请求。若只有一个请求,则直接响应,判断是否需要改变运行方向MoveDir,上为1,下为-1,改变运行状态MoveStatus上升为1,静止为0,下降为-1.

                2、若无请求,则继续监视。

          JudgeNext()
          {

              if(判断请求楼层是否与电梯运行方向相同)
                {

                      for()//多个请求,依次响应

                      {
                       if(若多个请求,比较距离本楼层最近的请求)
                      {给出响应}

                      }
                 }
              else

               {
                   电梯方向响应完成后,改变方向,响应反方向的请求。规则与上面类似。

               }
           } 
        推广:四电梯情况
                与一电梯情况区别在,某人在某层同时给四部电梯发出请求,四部电梯如何响应的问题。  
                pubulic float TotleCost()//计算出此状态 到达目标层所用时间

               {

                 电梯状态随着请求的结束不断变化,每个状态时间不一样。

                }      
                BestJudgeNext()//给出最有响应

               {

                  根据四部电梯的状态,计算出到达本层并响应该请求总共所用的时间,取时间最短的电梯做出响应。
               }  

  • 特殊情况
    超重:当电梯超重时,电梯发出警告,电梯不可用,保持运行方向,待问题解决完之后,电梯可用,继续运行。
    断电:在备用电源的支持下,电梯恢复到初始位置。
    意外停止:电梯强制静止,通知发送求助状态。

3、设计窗体初稿:

     

 以图片替换的形式来展示电梯的运行过程。

 

posted on 2014-03-09 22:39  破暝  阅读(249)  评论(0编辑  收藏  举报

导航