
import time
# 定义车辆类
class Car:
def __init__(self, plate_number):
self.plate_number = plate_number
self.enter_time = None # 进入时间
self.leave_time = None # 离开时间
# 定义停车场类
class ParkingLot:
def __init__(self):
self.capacity = 50 # 停车场容量
self.available_spaces = self.capacity # 剩余停车位数量
self.parking_spaces = {} # 正在使用的停车位字典
# 进入停车场函数
def enter_parking_lot(self, plate_number):
if self.available_spaces > 0: # 还有停车位
car = Car(plate_number) # 创建车辆实例
car.enter_time = time.time() # 记录进入时间
self.parking_spaces[plate_number] = car # 加入已使用停车位字典
self.available_spaces -= 1 # 剩余停车位数量减少
print(f"车辆 {plate_number} 进入停车场,剩余停车位:{self.available_spaces}")
else:
print("停车场已满,无法进入")
# 离开停车场函数
def leave_parking_lot(self, plate_number):
if plate_number in self.parking_spaces: # 车辆在停车场内
car = self.parking_spaces[plate_number] # 获取车辆实例
car.leave_time = time.time() # 记录离开时间
parking_time = int(car.leave_time - car.enter_time) # 计算停车时间,单位为秒
parking_cost = self.calculate_parking_cost(parking_time) # 计算停车费用
del self.parking_spaces[plate_number] # 删除已使用停车位字典中的该车辆信息
self.available_spaces += 1 # 剩余停车位数量增加
print(f"车辆 {plate_number} 离开停车场,停车时间:{parking_time}秒,停车费用:{parking_cost}元,剩余停车位:{self.available_spaces}")
else:
print("该车未在停车场内")
# 计算停车费用函数
def calculate_parking_cost(self, parking_time):
if parking_time <= 7200: # 2小时内免费
return 0
elif parking_time <= 14400: # 2-4小时,费用为10元
return 10
elif parking_time <= 21600: # 4-6小时,费用为15元
return 15
elif parking_time <= 28800: # 6-8小时,费用为20元
return 20
elif parking_time <= 36000: # 8-10小时,费用为25元
return 25
else: # 10小时以上,费用为30元
return 30
# 创建停车场实例
parking_lot = ParkingLot()
# 循环等待用户操作,直至用户输入"q"结束程序
while True:
print("请输入操作:1-车辆进入停车场,2-车辆离开停车场,q-退出程序")
option = input()
if option == "1":
print("请输入车牌号码:")
plate_number = input()
parking_lot.enter_parking_lot(plate_number)
elif option == "2":
print("请输入车牌号码:")
plate_number = input()
parking_lot.leave_parking_lot(plate_number)
elif option == "q": # 退出程序
break
else:
print("无效的操作,请重新输入")