python电梯控制程序
时间: 2023-11-20 11:57:10 浏览: 42
以下是一个简单的Python电梯控制程序的示例:
```python
class Elevator:
def __init__(self, floors):
self.floors = floors
self.current_floor = 1
self.direction = 1
self.passengers = []
def add_passenger(self, passenger):
self.passengers.append(passenger)
def remove_passenger(self, passenger):
self.passengers.remove(passenger)
def move(self):
if self.current_floor == self.floors:
self.direction = -1
elif self.current_floor == 1:
self.direction = 1
self.current_floor += self.direction
class Passenger:
def __init__(self, start_floor, end_floor):
self.start_floor = start_floor
self.end_floor = end_floor
class ElevatorController:
def __init__(self, num_elevators, num_floors):
self.elevators = [Elevator(num_floors) for i in range(num_elevators)]
self.waiting_passengers = []
def add_passenger(self, passenger):
self.waiting_passengers.append(passenger)
def step(self):
for elevator in self.elevators:
for passenger in elevator.passengers:
if passenger.end_floor == elevator.current_floor:
elevator.remove_passenger(passenger)
for passenger in self.waiting_passengers:
if passenger.start_floor == elevator.current_floor:
elevator.add_passenger(passenger)
self.waiting_passengers.remove(passenger)
elevator.move()
# 示例用法
controller = ElevatorController(2, 10)
controller.add_passenger(Passenger(1, 5))
controller.add_passenger(Passenger(2, 6))
controller.add_passenger(Passenger(3, 7))
for i in range(20):
controller.step()
```
该程序包括三个类:Elevator(电梯)、Passenger(乘客)和ElevatorController(电梯控制器)。Elevator类表示电梯,包括当前楼层、运行方向和乘客列表等属性和方法。Passenger类表示乘客,包括起始楼层和目标楼层等属性。ElevatorController类表示电梯控制器,包括电梯列表和等待乘客列表等属性和方法。
在示例用法中,我们创建了一个包含两个电梯和10层楼的电梯控制器,并添加了三个乘客。然后我们运行了20个步骤,每个步骤都会让电梯控制器中的每个电梯移动一次,并根据乘客的需求添加或删除乘客。