您现在的位置是:网站首页> 编程资料编程资料

python实现停车场管理系统_python_

2023-05-26 336人已围观

简介 python实现停车场管理系统_python_

本文实例为大家分享了python实现停车场管理系统的具体代码,供大家参考,具体内容如下

一、需求

1、为一个车位数量固定的停车场,设计一个管理系统;
2、停车信息包括:编号、车牌号(若存在)、类型、车位编号、使用日期、入场时间、单价、费用、经手人
3、停车信息存储在数据文件中,程序至少实现功能:浏览、查询、入场、出场、导出、计费、系统菜单
4、按面向对象程序设计方法进行类的定义:选择合适的数据存储结构,并定义相应的数据元素类,选择合理的操作方法定义相应的算法实现类

二、代码

本系统包含4部分(4个py文件,剩余为测试数据文件),组成放在一个文件夹组成一个模块,如下图。

2.1 初始化模块__init__.py

""" __init__.py 模块的作用:在导入包的时候自动执行这里的代码,进行初始化工作 """ # 允许被 from package_name import * 导入的模块 __all__ = ['ParkingManagementSystem', 'Car']

2.2 主程序模块main.py

# coding = utf-8 from ParkingManagementSystem import * from Car import * def main():     # 创建停车信息管理系统对象     p = ParkingManagementSystem()     # 创建一个停车对象     car = Car()     while True:         print("")         print("******************* 欢迎进入:停车场信息管理系统 *******************")         print("------------------------- 1.浏览所有信息 ------------------------")         print("------------------------- 2.查询车辆信息 ------------------------")         print("------------------------- 3.入场车辆录入 ------------------------")         print("------------------------- 4.出场车辆删除 ------------------------")         print("------------------------- 5.退出管理系统 ------------------------")         try:             # 接收输入指令             cmd = int(input("请输入指令数字:"))             # 1.浏览所有信息             if cmd == 1:                 p.show_all_information()             # 2.查询车辆信息             elif cmd == 2:                 while True:                     print("------ 1.按车牌号查找 ------")                     print("------ 2.按车类型查找 ------")                     print("------ 3.按使用日期查找 -----")                     print("------ 4.按经手人查找 ------")                     print("------ 5.查询历史记录 ------")                     print("------ 6.返回上级菜单 ------")                     query = int(input("请输入指令数字:"))                     # 1.按车牌号查找                     if query == 1:                         query_results = p.query_by_car_number()                         # 判定查询结果是否为空(False),是则不保存                         if query_results:                             decide = input("是否需要保存查询结果(输入:yes/no):")                             if decide == "yes":                                 p.save_query_results_to_file(query_results)                     # 2.按车类型查找                     elif query == 2:                         query_results = p.query_by_car_type()                         # 判定查询结果是否为空(False),是则不保存                         if query_results:                             decide = input("是否需要保存查询结果(输入:yes/no):")                             if decide == "yes":                                 p.save_query_results_to_file(query_results)                     # 3.按使用日期查找                     elif query == 3:                         query_results = p.query_by_date()                         # 判定查询结果是否为空(False),是则不保存                         if query_results:                             decide = input("是否需要保存查询结果(输入:yes/no):")                             if decide == "yes":                                 p.save_query_results_to_file(query_results)                     # 4.按经手人查找                     elif query == 4:                         query_results = p.query_by_handler()                         # 判定查询结果是否为空(False),是则不保存                         if query_results:                             decide = input("是否需要保存查询结果(输入:yes/no):")                             if decide == "yes":                                 p.save_query_results_to_file(query_results)                     # 5.查询历史记录                     elif query == 5:                         p.query_history_results()                     else:                         break             # 3.录入车辆信息             elif cmd == 3:                 # 接收停车车辆信息                 parking_info = car.get_parking_info()                 p.parking(parking_info)             # 4.删除车辆信息             elif cmd == 4:                 p.driving_out()             # 5.退出管理系统             else:                 # 保存停车信息的最大编号 id                 car.save_id_to_file()                 print("感谢使用停车场管理系统,再见!")                 break         except Exception as result:             # 保存停车信息的最大编号 id             car.save_id_to_file()             # 保存停车信息             p.save_to_file()             print("感谢使用停车场管理系统,再见!")             break if __name__ == "__main__":     main()

2.3 停车管理模块ParkingManagementSystem.py

# coding = utf-8 # 模块中的__all__属性:可以规定 模块中 from module_name import * 只能够导入的一些类、变量、函数名 __all__ = ['ParkingManagementSystem'] import time class ParkingManagementSystem(object):     """算法实现类:停车场信息管理系统"""     def __init__(self):         """对停车信息进行初始化"""         # 测试时使用         print("ParkingManagementSystem的__init__函数被调用")         # 车位编号存放列表         self.car_stall = []         self.truck_stall = []         # 所有停车信息存放列表         self.total_info = []         # 读取停车场数据         try:             with open("parking_data.txt", "r") as file:                 for line in file.readlines():                     # 将字符串转化为字典,遇到空行时跳过,防止eval()函数转化空行或者空字符时报错                     try:                         info_dict = eval(line)                         self.total_info.append(info_dict)                         if info_dict["car_type"] == "car":                             self.car_stall.append(info_dict["p_number"])                         else:                             self.truck_stall.append(info_dict["p_number"])                     except Exception as result:                         continue         except Exception as result:             print("停车信息数据文件不存在!")         # 测试时使用         # print(self.car_stall)         # print(self.truck_stall)         # print(self.total_info)     def parking(self, parking_info):         """入场停车:传入停车信息,在空的车位中增加车辆信息,更新数据文件"""         # 判断传入停车信息是否为 None         # 需要完整代码请在文章文章底部添加微信,付费咨询         passs     def show_all_information(self):         """输出所有停车场信息,按车位使用情况分类,同一分类中按编号升序排序"""         # 初始化刷新数据         # 需要完整代码请在文章文章底部添加微信,付费咨询         pass     def query_by_car_number(self):         """按车牌号查找停车信息"""         # 接收车牌编号         # 需要完整代码请在文章文章底部添加微信,付费咨询         pass     def query_by_car_type(self):         """按车类型查找停车信息"""         # 接受车类型         # 需要完整代码请在文章文章底部添加微信,付费咨询        pass     def query_by_date(self):         """按使用日期查找停车信息"""         # 接收查询日期         date = input("请输入查询日期(格式参考:1998-06-06):")         # 创建列表保存查询结果         # 需要完整代码请在文章文章底部添加微信,付费咨询        pass     def query_by_handler(self):         """按经手人查找停车信息"""         # 接收经手人姓名         handler = input("请输入经手人姓名:")         # 需要完整代码请在文章文章底部添加微信,付费咨询         pass     def query_history_results(self):         """查询停车场历史记录"""         # 查询输入格式化         # 需要完整代码请在文章文章底部添加微信,付费咨询         print("id  car_type  p_number  car_number   handler   price    cost     entrance_time            exit_time")              def driving_out(self):         """出场:删除对应车位的车辆信息,更新数据文件"""         # 接收出场时间         exit_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())         # 接收车牌号         car_number = input("请输入出场车辆车牌号(示例:京A88888):")         # 遍历总停车信息列表,找到该条数据并将其移除列表         pass     def charging(self, info_dict):         """计费: 传入停车信息,按小时计费"""         # 接收车辆停车信息         # 将时间由字符串格式转化为数字格式,以秒为单位         exit_time = time.mktime(time.strptime(info_dict["exit_time"], "%Y-%m-%d %H:%M:%S"))         entrance_time = time.mktime(time.strptime(info_dict["entrance_time"], "%Y-%m-%d %H:%M:%S"))         # 计算停车时间,单位转化为小时         pass     def save_to_file(self):         """将停车数据保存到文件"""         # 打开数据文件,保存数据         with open("parking_data.txt", "w") as file:             for info_dict in self.total_info:                 # 将字典转化为字符串保存                 file.write(str(info_dict))                 file.write("\n")     def save_history_to_file(self, info_dict):         """将已完成出场停车数据保存到文件"""         # 打开数据文件,保存数据         with open("history_data.txt", "a") as file:             # 将字典转化为字符串保存             file.write(str(info_dict))             file.write("\n")     def save_query_results_to_file(self, query_results):         """将查询结果保存到指定数据文件"""         # 接收输入文件名         file_name = input("请输入要保存数据的文件名(格式:xxx.txt ):")         with open(file_name, "a") as file:             # 将数据转化为字符串保存             file.write(str(query_results))             file.write("\n")         print("查询结果保存成功,文件名为:%s" % file_name)     def print_func(self, info_dict, query_results):         """格式化打印输出查询结果"""         # 需要完整代码请在文章文章底部添加微信,付费咨询         pass

2.4 车元素模块Car.py

# coding = utf-8 # 模块中的__all__属性:可以规定 模块中 from module_name import * 只能够导入的一些类、变量、函数名 __all__ = ['Car'] import time from ParkingManagementSystem import * class Car(ParkingManagementSystem):     """数据元素类:定义一个关于车的类"""     def __init__(self):         """对车的属性进行初始化"""         # 测试时使用         print("
                
                

-六神源码网