停车场管理系统python_python实现停车管理系统
该Python停车管理系统具备以下功能:首先支持将汽车存入车库;其次根据车牌号或车型对汽车进行检索;再次能够更新汽车的相关信息;最后在汽车出库时会进行收费,并且根据车型统计数量并展示所有汽车的信息
创建车辆类时,默认设置其属性包括车牌号、颜色以及不同类型的车型(如小汽车、小型卡车(小卡)、中型卡车(中卡)和大型卡车(大卡))。这些属性还包括到达时间和离开时间等基本信息,并包含对这些属性进行操作的行为描述。
(2) 创建一个管理系统负责对停车场进行有效管理。
定义一个停车场管理系统为容纳n辆汽车设计一条狭窄的道路,并配备单个入口供车辆出入。
汽车停放于停车场内并顺着便道停放并等待;一旦有车驶离,则排在便道上的前一辆汽车即可先行驶出;每次车辆离开停车场时需根据其停留时间长短缴纳相应的费用,并且停车费将由停车时间长短来决定。
功能描述
(1) 添加功能:该程序具备将至停车场车辆信息纳入管理的能力;其规定所有新增车辆必须具有唯一的车牌号码;当出现重复车牌号记录时,则需提示用户存在数据冲突并拒绝新增。
查询功能:可以根据车号、车种等信息对已存入的停车场车辆数据进行查询操作;若无法获取相关信息,则返回相应提示信息;若查询成功则会显示相关信息记录。
(3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。
编辑功能基于搜索结果执行相应数据的更改,在实施操作时应确保车牌号码具有唯一性
删除功能的主要目的是完成对已登记车辆数据的删除操作。当系统中无对应人员信息时,系统将显示"记录为空!"提示信息并终止该操作。
(6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。
先创建一个关于车的类模块setting_Car.py
import time
from setting_Manage import ParkManage
class Car(ParkManage):
"""一个关于车的类"""
def init(self,car_number,car_owner,contact_way,car_color,car_model):
super(Car, self).init()
self.car_number=car_number
self.car_owner=car_owner
self.contact_way=contact_way
self.car_color=car_color
self.car_model=car_model
self.balance=200
self.entrance_time = 0
self.exit_time = 0
def setitem(self, key, value):
self.dict[key]=value
def slot_card(self):
"""根据时间计费"""
park_time=time.mktime(time.strptime(self.exit_time)) - time.mktime(
time.strptime(self.entrance_time))
h=park_time//3600
m=(park_time-h*3600)//60
s=park_time-h3600-m60
P_time="%.0f时%.0f分%.0f秒"%(h,m,s)
consumption = ((park_time) / 3600)
self.balance -= consumption
输出内容如下:
车牌号码显示为:%s
停车时长显示为:%s
本次消费金额显示为:%.2f元
账户余额显示为:%.2f元
def str(self):
if self.car_model=='0':
self.car_model="小汽车"
elif self.car_model=='1':
self.car_model="小卡"
elif self.car_model=='2':
self.car_model="中卡"
elif self.car_model=='3':
self.car_model="大卡"
return "%s %s %s %s %s %s" %(self.car_number,self.car_owner,self.contact_way,
self.car_color,self.car_model,self.entrance_time)
创建一个关于管理系统的类模块setting_Manage.py
import time
class ParkManage(object):
"""创建一个关于停车的类"""
def init(self,max_car=100,): #定义最大停车辆数
self.max_car=max_car
self.car_list = []
self.cur_car=len(self.car_list)
def info(self):
""" #显示系统功能信息"""
print("""
—————————————————————————
|欢迎进入车辆管理系统|
—————————————————————————
{1}
{2} 1)添加车辆信息{3}{2}
{0}
{2} 2)查询车辆信息{3}{2}
{0}
{2} 3)显示车辆信息{3}{2}
{0}
{2} 4)编辑车辆信息{3}{2}
{0}
{2} 5)删除车辆信息{3}{2}
{0}
{2} 6)统计车辆信息{3}{2}
{0}
{2} 7)退出系统{3}{2}
{1}
""".format("-"*40,"="*40,"|"," "*16))
def add_car(self,car):
"""#添加车辆信息"""
entrance_time = time.ctime()
car["entrance_time"]=entrance_time
for Car in self.car_list:
if Car.car_number == car.car_number:
print("车牌号信息有误,重新输入")
break
else:
self.car_list.append(car)
print("车牌号为%s的车入库成功" %car.car_number)
def search_By_Number(self):
"""#按车牌号查询"""
car_number=input("请输入你您要查找的车牌号:")
for car in self.car_list:
if car.car_number==car_number:
print(car)
break
else:
print("未找到车牌号为%s的车辆" %car_number)
def search_By_Model(self):
"""#按车型查询"""
car_model=int(input("(小汽车:0,小卡:1,中卡:2,大卡:3)\n请输入您要查找的车型:"))
if car_model in [0,1,2,3]:
for car in self.car_list:
if car_model==int(car.car_model):
print(car)
else:
print("未找到相关车辆信息")
else:
print("输入有误,请重新输入")
def searchCar(self):
"""#查找车辆信息"""
print("""
1)按车牌号查找
2)按车型查找
""")
search_chioce=input("输入您要查找的方式:")
if search_chioce == '1':
self.search_By_Number()
elif search_chioce=='2':
self.search_By_Model()
else:
print("输入有误,请重新输入")
def display(self):
"""#显示车车辆信息"""
if len(self.car_list)!=0:
for car in self.car_list:
print(car)
else:
print("车库为空")
def change_Carinfo(self):
"""#修改车辆信息"""
car_number = input("请输入你您要查找的车牌号:")
for car in self.car_list:
if car.car_number == car_number:
index=self.car_list.index(car)
change=int(input("(相关信息的位置:\n车主信息的位置为0,\n联系方式的位置为1,\n车颜色信息的位置为2,\n车型信息的位置为3)\n请根据以下提示输入相关信息的位置:输入你要修改的信息序号:"))
if change==0:
new_info=input("输入新的信息:")
self.car_list[index].car_owner=new_info
print("车主名修改成功")
break
elif change==1:
new_info=input("输入新的信息:")
self.car_list[index].contact_way=new_info
print("联系方式修改成功")
break
elif change==2:
new_info=input("输入新的信息:")
self.car_list[index].car_color=new_info
print("车颜色修改成功")
break
elif change==3:
new_info=input("输入新的信息:")
self.car_list[index].car_model=new_info
print("车型修改成功")
break
else:
print("未找到车牌号为%s的车辆" % car_number)
def delete_car(self,car):
"""删除车辆信息"""
exit_time=time.ctime()
car["exit_time"]=exit_time
car.slot_card()
self.car_list.remove(car)
print("车牌号为%s的车两成功删除"%car.car_number)
def statistics(self):
"""统计车辆信息"""
sedan_car_number=0
pickup_truck_number=0
middle_truck_number=0
super_truck_number=0
for car in self.car_list:
if car.car_model=='0':
sedan_car_number+=1
elif car.car_model=='1':
pickup_truck_number+=1
elif car.car_model=='2':
middle_truck_number+=1
elif car.car_model=='3':
super_truck_number+=1
else:
print("小汽车:%s\n"
"小 卡:%s\n"
"中 卡:%s\n"
"大 卡:%s\n"
sedan车型编号,pickup卡车编号,中型载货卡车编号,重型载货卡车编号
在main_fun.py文件中对主函数进行初始化,并进行运行
import re
from setting_Car import Car
from setting_Manage import ParkManage
def check_car_number(car_number): #判断车牌号是否合法
pattern = re.compile(u'[\u4e00-\u9fa5]?')
pattern1 = re.compile(u'[A-Z]+')
pattern2 = re.compile(u'[0-9]+')
match = pattern.search(car_number)
match1 = pattern1.search(car_number)
match2 = pattern2.search(car_number)
if match and match1 and match2:
return True
else:
return False
def check_contact_way(contact_way): #判断手机号是否合法
pattern = re.compile(u'1[3|4|5|6|7|8|9]\d{9}$')
match = pattern.search(contact_way)
if match:
return True
else:
return False
def main():
parkmanage=ParkManage()
while True:
choice=input("请输入你要的功能:")
if choice=='1':
check_error_list=[]
car_number=input("请输入车牌号:")
if check_car_number(car_number):
car_owner=input("请输入车主姓名:")
contact_way=input("请输入车主联系方式:")
if check_contact_way(contact_way):
car_color=input("请输入车颜色:")
car_model=input("请输入车型(小汽车:0,小卡:1,中卡:2,大卡:3):")
check_error_list=[car_number,car_owner,contact_way,car_color,car_model]
for info in check_error_list: #判断输入信息的完整性
if info=='':
print("输入信息不全")
break
else:
car = Car(car_number, car_owner, contact_way, car_color, car_model)
parkmanage.add_car(car)
else:
print("手机号无效")
else:
print("车牌号不合法")
elif choice=='2':
parkmanage.searchCar()
elif choice =='3':
parkmanage.display()
elif choice=='4':
parkmanage.change_Carinfo()
elif choice=='5':
car_number = input("输入您要删除的车辆的车牌号:")
for car in parkmanage.car_list:
if car.car_number == car_number:
parkmanage.delete_car(car)
break
else:
print("未找到车牌号为%s的车辆" % (car_number))
elif choice=='6':
parkmanage.statistics()
elif choice=='7':
print("欢迎下次使用!!!")
exit()
else:
print("请输入正确的选项")
if name == 'main':
main()
更多学习资料请关注专题《管理系统开发》。
以下将为大家呈现本文的核心内容。旨在帮助大家更好地学习相关内容,并在此基础上提出个人见解和建议。同时也会邀请广大学友对我们的作品提出宝贵意见或建议
