生成代码 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的先后次序依次从停车场最里面向大门口处停放 (即最先到达的第一辆车停放在停车场的最里面) 。如果停车场已放满n辆车,则以后到达的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车可以进入停车场。停车场内如有某辆车要开走,则在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费,停留在便道上的车不收停车费。编写程序对该停车场进行管理。 输入格式: 先输入一个整数n(n<=10),再输入若干组数据,每组数据包括三个数据项:汽车到达或离开的信息(A表示到达、D表示离开、E表示结束)、汽车号码、汽车到达或离开的时刻。 输出格式: 若有车辆到达,则输出该汽车的停车位置;若有车辆离开,则输出该汽车在停车场内停留的时间。如果汔车号码不存在,输出the car not in park
时间: 2024-03-20 22:41:50 浏览: 146
以下是该停车场管理程序的Python实现:
```python
n = int(input()) # 输入停车场最大容量n
park = [] # 停车场,初始化为空列表
wait = [] # 便道,初始化为空列表
while True:
info = input().split()
if info[0] == 'E': # 输入结束,退出程序
break
car_number = info[1] # 汽车号码
time = int(info[2]) # 到达或离开的时刻
if info[0] == 'A': # 汽车到达
if len(park) < n: # 停车场未满,直接停放到停车场最里面
park.insert(0, [car_number, time])
print(len(park))
else: # 停车场已满,停放到便道上等待
wait.append([car_number, time])
print('wait')
elif info[0] == 'D': # 汽车离开
found = False # 标记是否找到了该汽车
for i in range(len(park)):
if park[i][0] == car_number: # 在停车场内找到了该汽车
print((time - park[i][1]) * 10) # 输出停留时间和停车费用
park.pop(i) # 从停车场内移除该汽车
found = True
break
if not found: # 在停车场内未找到该汽车,到便道上找
for i in range(len(wait)):
if wait[i][0] == car_number: # 在便道上找到了该汽车
print('0') # 未停放在停车场内,不需要交停车费
wait.pop(i) # 从便道上移除该汽车
found = True
break
if not found: # 未找到该汽车
print('the car not in park')
```
程序实现思路:
1. 输入停车场最大容量n。
2. 初始化停车场park和便道wait为空列表。
3. 循环输入汽车到达或离开的信息,直到输入结束信息。
4. 对于每组输入信息,根据信息类型执行相应的操作:
1. 汽车到达:
- 如果停车场未满,将汽车停放到停车场最里面,输出该汽车的停车位置。
- 如果停车场已满,将汽车停放到便道上等待,输出'wait'。
2. 汽车离开:
- 在停车场内查找该汽车,如果找到了,计算出停留时间并输出,从停车场内移除该汽车。
- 在便道上查找该汽车,如果找到了,输出'0',未停放在停车场内,不需要交停车费,从便道上移除该汽车。
- 如果在停车场和便道上都未找到该汽车,输出'the car not in park'。
5. 程序结束。
阅读全文