這篇文章將為大家詳細講解有關python如何實現停車管理系統,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Python停車管理系統可實現車輛入庫,按車牌號或者車型查詢車輛,修改車輛信息,車輛出庫時實現計費,按車型統計車輛數和顯示全部車輛信息的功能
(1)定義車輛類,屬性有車牌號、顏色、車型(小汽車、小卡、中卡和大卡)、到達的時間和離開的時間等信息和相關的對屬性做操作的行為。
(2)定義一個管理類,完成對停車場的管理。停車場的具體要求:設停車場是一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。
汽車在停車場內按門外的便道上等待,一旦有車開走,則排在便道上的第一輛車即可開入;每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。
功能描述
(1)添加功能:程序能夠添加到達停車場的車輛信息,要求車輛的車牌號要唯一,如果添加了重復編號的記錄時,則提示數據添加重復并取消添加。
(2)查詢功能:可根據車牌號、車型等信息對已添加的停車場中的車輛信息進行查詢,如果未找到,給出相應的提示信息,如果找到,則顯示相應的記錄信息;
(3)顯示功能:可顯示當前系統中所有車輛的信息,每條記錄占據一行。
(4)編輯功能:可根據查詢結果對相應的記錄進行修改,修改時注意車牌號的唯一性。
(5)刪除功能:主要實現對已添加的車輛記錄進行刪除。如果當前系統中沒有相應的人員記錄,則提示“記錄為空!”并返回操作。
(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-h*3600-m*60
P_time="%.0f時%.0f分%.0f秒"%(h,m,s)
consumption = ((park_time) / 3600) * 5
self.balance -= consumption
print("車牌號為:%s\n停車時長:%s\n本次消費:%.2f元\n卡里余額:%.2f元\n" % (self.car_number,P_time, consumption, self.balance))
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_car_number,pickup_truck_number,middle_truck_number,super_truck_number))在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)
match2 = pattern1.search(car_number)
match3 = pattern2.search(car_number)
if match and match2 and match3:
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:
parkmanage.info()
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()關于“python如何實現停車管理系統”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。