复试1--项目设计

项目设计

1. 多电梯调度算法

要求

  1. 你设计的模块和接口是什么,并给出参数。
  2. 定义的一系列核心问题以及输入输出,
  3. 设计的算法是什么,论述算法的优势,并对给出的算法进行优化。

解决

  1. 需求:总的就是实现对一个高层的多电梯进行调度和控制。送客

    思考一下:电梯有召唤按钮、目的地按钮,楼层传感器,报警按钮、电梯马达控制(上、下、停)、目标机**(实现电梯的调度和控制)也就是中央cpu。以及各种指示灯。

  2. 发现对象

    1. 到达事件:识别电梯是否到达了某一楼层。这个对象封装了到达事件所需的相应服务(方法),以及向其他对象类报告这些事件的服务。
    2. 到达面板:在电梯到达某一楼时更新到达面板。封装了响应从到达事件发送来的消息所需的各项服务。
    3. 目的地事件:识别目的地请求事件。负责将该事件向其他的对象报告。
    4. 目的地面板:在收到目的地请求后,更新目的地面板,并报告所要去的目的地。
    5. 电梯:电梯对象执行电梯的控制和报告功能。
    6. 电梯马达:他的用途是控制电梯马达。它所封装的服务用于响应由电梯发送来的消息。
    7. 楼层:它的用途是管理电梯的分派与到达,并管理有关召唤请求的信息。
    8. 超载传感器:识别电梯的超载状态。
    9. 召唤事件:识别召唤请求事件的发生
    10. 召唤面板:当某一楼层产生一个召唤请求后,由它更新召唤面板,并报告这个召唤请求。
  3. 属性描述

    1. 到达事件:到达楼层、到达电梯id、唯一标识类的某一个实例的标识。
    2. 到达面板:唯一标识类的某一个实例的标识、电梯id(唯一标识 电梯 类的某一实例的标识,在 到达面板 的某一实例发送出来的消息中用到)。
    3. 电梯:当前运行方向、最近一次到达的楼层、当前电梯状态、电梯id、即将运行方向(与楼层的进行通信时用到。它表明电梯被分配后所应运行的方向)。
    4. 目的地事件:目的地楼层、目的地id(某一实例的标识)、电梯id(生成目的地事件的电梯)
    5. 目的地面板:目的地楼层状态、电梯id
    6. 召唤面板:电梯id、召唤面板id、向上召唤请求、向下召唤请求
    7. 楼层:电梯id、楼层id
    8. 电梯马达:电梯马达实例id
    9. 超载传感器:传感器id、最近一次传感器状态
    10. 召唤事件:召唤事件发生楼层、召唤方向、召唤id
  4. 服务定义

    1. 电梯马达:控制电梯马达服务(根据接收到的控制消息,将请求命令发送到硬件接口,促使电梯马达根据给定的命令移动)

      接口及参数:

      • 输出:电梯(控制信息)、硬件口(执行信息)

      • 输入:楼层cpu(请求命令)

    2. 电梯:

      • 控制电梯服务(控制电梯的运动,设置属性当前运行方向,运行状态,返回给电梯马达一个消息)
      • 电梯是否就绪:检测超重(超载传感器发送的消息,并将状态发送给 楼层
      • 电梯现在位置:将现在电梯的位置返回给消息发送者(到达事件、楼层等)(到达事件需要显示电梯位置给人)
      • 电梯运动方向:将电梯当前运动方向发送给消息发送者(楼层
      • 接口及参数:
        • 输出:电梯马达、楼层(超重信息、电梯位置、运动方向)、到达事件(电梯位置)
        • 输入:电梯马达(控制信息)、超载传感器(超载信息)、到达事件(电梯位置更新)
    3. 楼层:

      • 接客运动:选择(算法)哪一台电梯去响应召唤事件(根据目的地面板中的楼层信息、召唤事件中的发生楼层、召唤方向、电梯的运行位置、运行方向去选择)
      • 楼层到达服务:当电梯到达某个楼层之后更新相应的信息(电梯位置和方向、目的地面板信息更新、召唤面板更新)
      • 接口及参数:
        • 输出:电梯(响应召唤之后的位置和方向更新)、电梯马达(控制信息该不该停)、目的地面板(到达之后更新面板)、召唤面板更新(响应之后更新面板)
        • 输入:电梯(电梯的当前位置、方向、超载信息)、召唤事件(召唤事件发生的楼层及方向)、目的地面板(还要去的楼层信息)
    4. 召唤面板、目的地面板、到达楼层。。。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值