avatar
再贴设计电梯# JobHunting - 待字闺中
r*u
1
大家comment吧
class Door {
int state; // Door is open or closed.
public:
void open();
void close();
};
class Button {
int indicate; // What does this Button indicate?
int state;
public:
void push(); // Send a request to go to a certain floor.
void clear();
};
class Alarm {
int state; // Current state of alarm, beeping or not
public:
void beep();
void stopBeep();
};
class Light {
int state; // Current state of light, on or off
public:
void turnOn();
void tu
avatar
W*N
2
看不懂啊

【在 r**u 的大作中提到】
: 大家comment吧
: class Door {
: int state; // Door is open or closed.
: public:
: void open();
: void close();
: };
: class Button {
: int indicate; // What does this Button indicate?
: int state;

avatar
t*e
3
Bank class是manager的类?

【在 r**u 的大作中提到】
: 大家comment吧
: class Door {
: int state; // Door is open or closed.
: public:
: void open();
: void close();
: };
: class Button {
: int indicate; // What does this Button indicate?
: int state;

avatar
r*u
4
一个bank可以有几个电梯,电梯有door, light, alarm, button。大致是这个意思。

【在 r**u 的大作中提到】
: 大家comment吧
: class Door {
: int state; // Door is open or closed.
: public:
: void open();
: void close();
: };
: class Button {
: int indicate; // What does this Button indicate?
: int state;

avatar
m*9
5
其实我有个地方没想明白的是,在Door button light alarm都定义了state,可是在
elevator中如何自动的调整这些state,
比如,现在电梯在7楼,1楼3楼都有人等电梯,当电梯穿过了7楼,door的状态要close
,button off, light off。 当到达3楼时, door open,light on, alarm on
这个状态该怎么描述呢?
avatar
r*u
6
可以用elevator里的moveTo function,在这个函数里
door->close(), light->turnOff, alarm->turnOff...
然后再弄个arrive function,在这个函数里,
door->open(), light->turnOn, alarm->turnOn.
还有一个问题,就是elevator先在所在的楼层怎么update,
这个用一个事件之类的东西吧。每次触发这个事件,update
current floor.

close

【在 m******9 的大作中提到】
: 其实我有个地方没想明白的是,在Door button light alarm都定义了state,可是在
: elevator中如何自动的调整这些state,
: 比如,现在电梯在7楼,1楼3楼都有人等电梯,当电梯穿过了7楼,door的状态要close
: ,button off, light off。 当到达3楼时, door open,light on, alarm on
: 这个状态该怎么描述呢?

avatar
g*u
7
Elevator类里destination是向上或向下么?如果不是,和request的关系是什么?
还有,你bank里的Elevators就用了一个指针,没有数目啊,怎么能知道有几个
elevator呢。还有,楼梯间的button不要表示了么?
avatar
r*u
8
Elevator类里不该有requests,只有bank该记录所有的request,elevator只要知道它
的destination就行了。另外,button被push时,bank要加入一个新的request,但是这
个怎么弄我没想清楚。

【在 g*****u 的大作中提到】
: Elevator类里destination是向上或向下么?如果不是,和request的关系是什么?
: 还有,你bank里的Elevators就用了一个指针,没有数目啊,怎么能知道有几个
: elevator呢。还有,楼梯间的button不要表示了么?

avatar
a*l
9
a building is only going to have so many elevators, and a building is only
going to have so many floors. So, all those things are fixed, no way to
change suddenly. You are not going to suddenly have one additional floor in
a building, right? no way.
Therefore, there is no need to employ any complex mechanisms, such as queues
, events, etc. Store everything in a table. Just let everyone post the
information, and others check the information. Since elevators are
mechanical and slow anyway, polli

【在 r**u 的大作中提到】
: Elevator类里不该有requests,只有bank该记录所有的request,elevator只要知道它
: 的destination就行了。另外,button被push时,bank要加入一个新的request,但是这
: 个怎么弄我没想清楚。

avatar
g*u
10
我感觉Elevator类还是应该记录所有它应该停靠的楼层,比如用stop_floors表示,而
不只是一个destination。这个可以用bitmap或者数组来实现。电梯里的人可以按下多
个楼层。另外bank收到楼梯间的request的时候,决定哪个电梯来响应这个服务,并把
该楼层加入到相应服务的电梯的stop_floors里。在某一层停过后就从中删除。

【在 r**u 的大作中提到】
: Elevator类里不该有requests,只有bank该记录所有的request,elevator只要知道它
: 的destination就行了。另外,button被push时,bank要加入一个新的request,但是这
: 个怎么弄我没想清楚。

avatar
r*u
11
我觉得elevator不用记录stop_floors,否则的话就跟bank记录的信息重复了。当
elevator service了current destination之后,bank会给它新的destination。

【在 g*****u 的大作中提到】
: 我感觉Elevator类还是应该记录所有它应该停靠的楼层,比如用stop_floors表示,而
: 不只是一个destination。这个可以用bitmap或者数组来实现。电梯里的人可以按下多
: 个楼层。另外bank收到楼梯间的request的时候,决定哪个电梯来响应这个服务,并把
: 该楼层加入到相应服务的电梯的stop_floors里。在某一层停过后就从中删除。

avatar
g*u
12
我觉得不是,因为一个电梯要停的楼层不光来自bank,还有可能是电梯内的人。

【在 r**u 的大作中提到】
: 我觉得elevator不用记录stop_floors,否则的话就跟bank记录的信息重复了。当
: elevator service了current destination之后,bank会给它新的destination。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。