• 电梯调度 结对项目开发(郭林林&胡潇丹)


     (一)需求分析:

    1. 上升,下降,开门,关门;
    2. 超过负载以后发出警报,下去乘客;
    3. 电梯出现故障后,电梯停止;
    4. 电梯楼层的输入框可以同时指定所要到的楼层,也是楼层的显示框;
    5. 电梯同时记录多个状态,即为到达多个楼层的信息,然后依次执行(若后按键的乘客所到的目的楼层与电梯的运行方向相同时,按照依次到达的楼层顺序来开关门,而不是按照按键的先后顺序开关门;若后按键的乘客所到的目的楼层与电梯的运行方向相反时,若电梯到达顶层或底层时,则未实现的按键作用消失,需要乘客重新按键);

          6.调度算法的基本原则:模拟多人在不同楼层同时要求到各自目的地时电梯的响应顺序,在电梯内部的人和外部的人都有可能要求自己所要到达的楼层,两者之      间不可有冲突;

         7. 在楼层停留的时间长短和乘客要求的时间要相符合;

     

    (二)功能实现:

    首先要定义两个类。

    Class Elevator{}

    属性:

    1. 承载的最大重量;
    2. 承载最大数量;
    3. 所在层数和所有层数;(区分上升和下降问题)
    4. 电梯有固定速度;
    5. 开门时间;
    6. 关门时间;

    功能:

    1. 当乘客按上下键后,停止运行,打开门;
    2. 让人进去;
    3. 把门关上;
    4. 当到达相应楼层时,打开门;(此时,如果有人上电梯,则不用按键,直接进去)
    5. 上升;
    6. 下降;
    7. 超过负载以后发出警报,下去乘客。
    8. 若后按键的乘客所到的目的楼层与电梯的运行方向相同时,按照依次到达的楼层顺序来开关门,而不是按照按键的先后顺序开关门;若后按键的乘客所到的目的楼层与电梯的运行方向相反时,若电梯到达顶层或底层时,则未实现的按键作用消失,需要乘客重新按键;
    9. 电梯出现故障后,电梯停止;

     

         四部电梯分四个不同的对象(线程)考虑!

     

         Class Passengers{}

        属性:乘客数量,重量

        功能:

        1. 进电梯前按上升键;

        2. 进电梯前按下降键;

        3. 在电梯内按开门键;

        4. 在电梯内按关门键;

        5. 按上升到m层键;

        6. 按下降到n层键;

        7. 进电梯门;

        8. 出电梯门;

        9. 当电梯出现故障时,按报警键,与电梯管理员进行沟通;

       10. 乘客进电梯时遵循后进者在电梯超员或超重时,离开电梯;

     

       定义乘客类的对象(一个或多个),总重量,总人数,按键功能也是上该层楼梯的乘客们集体发出的多个动作;

       若电梯内仍有乘客,而又有新乘客要上时,新定义出前后对象的动态和,加入到原有的对象中。

       当有人下去后,乘客数量和重量自动减少。或者新定义一个动态对象,带功能完成后,自动撤销该对象体的存在。

     

       内部接口:函数调用

       外部接口:(1)用户界面(2)软件接口(3)硬件接口

     

      (三)界面实现:

       1. C#编程技术实现windows可视化界面;

       2. 设计电梯的按钮,显示电梯的开关门,运行,停滞,上下等可视化效果;

     

       (四)性能分析:

       1.自动中开门电梯开关时间不超过3.2秒;

       2.客用电梯额定速率为2.5米至6米;

       3.拥挤时自动延长开门时间;

     

     

        开发日志:2014.3.7  1920-2017  个人构思

                  2014.3.8  2017-2048  结组讨论

                  2014.3.12  830-935   参考资料设计调度方案            

     

                                                                                                                                                                            信1205班

                                                                                                                                                                          郭林林 胡潇丹

     

        

     

  • 相关阅读:
    (转)Go和HTTPS
    (转)Using Python3.5 in Ubuntu
    linux下配置某程序的sudo不用输密码
    双系统linux+win之血的教训
    (转)如何修复ubuntu的UEFI引导
    Android ——Toolbar开发实践总结(转)
    Android——Fragment 真正的完全解析(下)(转)
    Android—— Fragment 真正的完全解析(上)(转)
    android——官方下拉刷新组件SwipeRefreshLayout(转)
    Android——使用Toolbar + DrawerLayout快速实现高大上菜单侧滑(转)
  • 原文地址:https://www.cnblogs.com/xxllg/p/3595640.html
Copyright © 2020-2023  润新知