這篇文章將為大家詳細(xì)講解有關(guān)python如何實(shí)現(xiàn)停車管理系統(tǒng),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)遂寧免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。Python停車管理系統(tǒng)可實(shí)現(xiàn)車輛入庫,按車牌號(hào)或者車型查詢車輛,修改車輛信息,車輛出庫時(shí)實(shí)現(xiàn)計(jì)費(fèi),按車型統(tǒng)計(jì)車輛數(shù)和顯示全部車輛信息的功能
(1)定義車輛類,屬性有車牌號(hào)、顏色、車型(小汽車、小卡、中卡和大卡)、到達(dá)的時(shí)間和離開的時(shí)間等信息和相關(guān)的對(duì)屬性做操作的行為。
(2)定義一個(gè)管理類,完成對(duì)停車場(chǎng)的管理。停車場(chǎng)的具體要求:設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。
汽車在停車場(chǎng)內(nèi)按門外的便道上等待,一旦有車開走,則排在便道上的第一輛車即可開入;每輛停放在車場(chǎng)的車在它離開停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。
功能描述
(1)添加功能:程序能夠添加到達(dá)停車場(chǎng)的車輛信息,要求車輛的車牌號(hào)要唯一,如果添加了重復(fù)編號(hào)的記錄時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加。
(2)查詢功能:可根據(jù)車牌號(hào)、車型等信息對(duì)已添加的停車場(chǎng)中的車輛信息進(jìn)行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;
(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有車輛的信息,每條記錄占據(jù)一行。
(4)編輯功能:可根據(jù)查詢結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意車牌號(hào)的唯一性。
(5)刪除功能:主要實(shí)現(xiàn)對(duì)已添加的車輛記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作。
(6)統(tǒng)計(jì)功能:能統(tǒng)計(jì)停車場(chǎng)中車輛的總數(shù)、按車型、按到達(dá)時(shí)間進(jìn)行統(tǒng)計(jì)等。
先創(chuàng)建一個(gè)關(guān)于車的類模塊setting_Car.py
import time from setting_Manage import ParkManage class Car(ParkManage): """一個(gè)關(guān)于車的類""" 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): """根據(jù)時(shí)間計(jì)費(fèi)""" 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時(shí)%.0f分%.0f秒"%(h,m,s) consumption = ((park_time) / 3600) * 5 self.balance -= consumption print("車牌號(hào)為:%s\n停車時(shí)長(zhǎng):%s\n本次消費(fèi):%.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)
創(chuàng)建一個(gè)關(guān)于管理系統(tǒng)的類模塊setting_Manage.py
import time class ParkManage(object): """創(chuàng)建一個(gè)關(guān)于停車的類""" def __init__(self,max_car=100,): #定義大停車輛數(shù) self.max_car=max_car self.car_list = [] self.cur_car=len(self.car_list) def info(self): """ #顯示系統(tǒng)功能信息""" print(""" ————————————————————————— |***歡迎進(jìn)入車輛管理系統(tǒng)***| ————————————————————————— {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)統(tǒng)計(jì)車輛信息{3}{2} {0} {2} 7)退出系統(tǒng){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("車牌號(hào)信息有誤,重新輸入") break else: self.car_list.append(car) print("車牌號(hào)為%s的車入庫成功" %car.car_number) def search_By_Number(self): """#按車牌號(hào)查詢""" car_number=input("請(qǐng)輸入你您要查找的車牌號(hào):") for car in self.car_list: if car.car_number==car_number: print(car) break else: print("未找到車牌號(hào)為%s的車輛" %car_number) def search_By_Model(self): """#按車型查詢""" car_model=int(input("(小汽車:0,小卡:1,中卡:2,大卡:3)\n請(qǐng)輸入您要查找的車型:")) 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("未找到相關(guān)車輛信息") else: print("輸入有誤,請(qǐng)重新輸入") def searchCar(self): """#查找車輛信息""" print(""" 1)按車牌號(hào)查找 2)按車型查找 """) search_chioce=input("輸入您要查找的方式:") if search_chioce == '1': self.search_By_Number() elif search_chioce=='2': self.search_By_Model() else: print("輸入有誤,請(qǐng)重新輸入") 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("請(qǐng)輸入你您要查找的車牌號(hào):") for car in self.car_list: if car.car_number == car_number: index=self.car_list.index(car) change=int(input("(修改信息的序號(hào):\n車主0,\n聯(lián)系方式1,\n車顏色2,\n車型3)\n輸入你要修改的信息序號(hào):")) 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("聯(lián)系方式修改成功") 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("未找到車牌號(hào)為%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("車牌號(hào)為%s的車兩成功刪除"%car.car_number) def statistics(self): """統(tǒng)計(jì)車輛信息""" 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中創(chuàng)建主函數(shù)并運(yùn)行
import re from setting_Car import Car from setting_Manage import ParkManage def check_car_number(car_number): #判斷車牌號(hào)是否合法 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): #判斷手機(jī)號(hào)是否合法 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("請(qǐng)輸入你要的功能:") if choice=='1': check_error_list=[] car_number=input("請(qǐng)輸入車牌號(hào):") if check_car_number(car_number): car_owner=input("請(qǐng)輸入車主姓名:") contact_way=input("請(qǐng)輸入車主聯(lián)系方式:") if check_contact_way(contact_way): car_color=input("請(qǐng)輸入車顏色:") car_model=input("請(qǐng)輸入車型(小汽車: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("手機(jī)號(hào)無效") else: print("車牌號(hào)不合法") elif choice=='2': parkmanage.searchCar() elif choice =='3': parkmanage.display() elif choice=='4': parkmanage.change_Carinfo() elif choice=='5': car_number = input("輸入您要?jiǎng)h除的車輛的車牌號(hào):") for car in parkmanage.car_list: if car.car_number == car_number: parkmanage.delete_car(car) break else: print("未找到車牌號(hào)為%s的車輛" % (car_number)) elif choice=='6': parkmanage.statistics() elif choice=='7': print("歡迎下次使用?。?!") exit() else: print("請(qǐng)輸入正確的選項(xiàng)") if __name__ == '__main__': main()
關(guān)于“python如何實(shí)現(xiàn)停車管理系統(tǒng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。