2301_78603266 2023-06-19 10:21 采纳率: 100%
浏览 104
已结题

基于Python停车管理系统

要求有答辩加注释

1.停车场自动收费系统
项目描述:通过输入操作代替识别功能,根据停车时间实现自动收费
计算。
具体描述如下:
(1)停车场最多有 50个车位;
(2)通过输入车牌判断车辆的进入和出去;
(3)在车辆进入时,查看是否有车位并记录时间;
(4)在车辆离开时,使停车位增加,并计算停留时间,计算的时间记录到秒
即可;
(5)收费计算:2小时内免费,2-4 小时费用为 10元,4-6 小时费用为 15
6-8 小时费用为 20 元,8-10 小时费用为 25 元,10 小时以上费用为
30元
项目完成报告内容:
(1)根据项目描述,利用层次方框图描述项目的功能图,画出项目的 IPO
图;
2)根据项目描述,设计收费系统界面;
画出程序流程图;
利用函数完成收费系统各个功能柏也
保存程序运行的各种结果截图。
)在项目代码重要语句和功能模块位置添加注释信息,注释量不少于
代码行数的三分之一。
设计提示:
计时功能可使用 Python 标准库 datetime实现;
停车时间的计算截止到秒即可;
可适当考虑交费后的延时处理,如交费后1分钟内离场。

  • 写回答

5条回答 默认 最新

  • 语言-逆行者 2023-06-19 11:11
    关注

    img

    
    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("无效的操作,请重新输入")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 创建了问题 6月19日