电梯调度 结对项目开发

本周六下午我和小胡进一步商量了一下电梯的调度问题,为保证程序设计能贴近生活实际,还特意对学校的电梯做了实地考察。

并对之前的设计进行了适当的修改。

2014.3.8  2017-2048

 首先要定义两个类。

 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)硬件接口

 

 

 

    

posted @ 2014-03-09 09:31  BlessingYou  阅读(589)  评论(4编辑  收藏  举报