最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)停車管理系統(tǒng)

 更新時間:2018年11月30日 10:16:30   作者:Mrkang1314  
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)停車管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下

Python停車管理系統(tǒng)可實現(xiàn)車輛入庫,按車牌號或者車型查詢車輛,修改車輛信息,車輛出庫時實現(xiàn)計費(fèi),按車型統(tǒng)計車輛數(shù)和顯示全部車輛信息的功能

(1)定義車輛類,屬性有車牌號、顏色、車型(小汽車、小卡、中卡和大卡)、到達(dá)的時間和離開的時間等信息和相關(guān)的對屬性做操作的行為。

(2)定義一個管理類,完成對停車場的管理。停車場的具體要求:設(shè)停車場是一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進(jìn)出。

汽車在停車場內(nèi)按門外的便道上等待,一旦有車開走,則排在便道上的第一輛車即可開入;每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費(fèi)用。

功能描述

(1)添加功能:程序能夠添加到達(dá)停車場的車輛信息,要求車輛的車牌號要唯一,如果添加了重復(fù)編號的記錄時,則提示數(shù)據(jù)添加重復(fù)并取消添加。

(2)查詢功能:可根據(jù)車牌號、車型等信息對已添加的停車場中的車輛信息進(jìn)行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;

(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有車輛的信息,每條記錄占據(jù)一行。

(4)編輯功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進(jìn)行修改,修改時注意車牌號的唯一性。

(5)刪除功能:主要實現(xiàn)對已添加的車輛記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作。

(6)統(tǒng)計功能:能統(tǒng)計停車場中車輛的總數(shù)、按車型、按到達(dá)時間進(jìn)行統(tǒng)計等。

先創(chuàng)建一個關(guān)于車的類模塊setting_Car.py

import time
from setting_Manage import ParkManage

class Car(ParkManage):
 """一個關(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ù)時間計費(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時%.0f分%.0f秒"%(h,m,s)
 consumption = ((park_time) / 3600) * 5
 self.balance -= consumption
 print("車牌號為:%s\n停車時長:%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)建一個關(guān)于管理系統(tǒng)的類模塊setting_Manage.py

import time

class ParkManage(object):
 """創(chuàng)建一個關(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)計車輛信息{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("車牌號信息有誤,重新輸入")
 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("未找到相關(guān)車輛信息")
 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聯(liá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("聯(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("未找到車牌號為%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):
 """統(tǒng)計車輛信息"""
 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): #判斷車牌號是否合法
 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): #判斷手機(jī)號是否合法
 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("請輸入車主聯(lián)系方式:")
 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("手機(jī)號無效")
 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()

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python部署chineseocr_lite的實現(xiàn)示例

    python部署chineseocr_lite的實現(xiàn)示例

    本文主要介紹了python部署chineseocr_lite的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • PyQT5 實現(xiàn)快捷鍵復(fù)制表格數(shù)據(jù)的方法示例

    PyQT5 實現(xiàn)快捷鍵復(fù)制表格數(shù)據(jù)的方法示例

    這篇文章主要介紹了PyQT5 實現(xiàn)快捷鍵復(fù)制表格數(shù)據(jù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • python入門語句基礎(chǔ)之if語句、while語句

    python入門語句基礎(chǔ)之if語句、while語句

    本文介紹了python入門語句基礎(chǔ)之if語句、while語句,if?語句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施,而for?循環(huán)用于針對集合中的每個元素都一個代碼塊,而?while?循環(huán)不斷地運(yùn)行,直到指定的條件不滿足為止,本文通過示例代碼詳解介紹,需要的朋友參考下吧
    2022-04-04
  • 超詳細(xì)注釋之OpenCV操作圖像平移轉(zhuǎn)換

    超詳細(xì)注釋之OpenCV操作圖像平移轉(zhuǎn)換

    這篇文章主要介紹了OpenCV操作圖像平移轉(zhuǎn)換,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • python封裝成exe的超詳細(xì)教程

    python封裝成exe的超詳細(xì)教程

    相信很多人都很想把python文件封裝成exe文件,下面這篇文章主要給大家介紹了關(guān)于python封裝成exe的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 詳解Python中的函數(shù)參數(shù)傳遞方法*args與**kwargs

    詳解Python中的函數(shù)參數(shù)傳遞方法*args與**kwargs

    本文將討論P(yáng)ython的函數(shù)參數(shù)。我們將了解args和kwargs,/和的都是什么,雖然這個問題是一個基本的python問題,但是在我們寫代碼時會經(jīng)常遇到,比如timm中就大量使用了這樣的參數(shù)傳遞方式
    2023-03-03
  • Java及python正則表達(dá)式詳解

    Java及python正則表達(dá)式詳解

    正則表達(dá)式有元字符及不同組合來構(gòu)成,通過巧妙的構(gòu)造正則表達(dá)式可以匹配任意字符串,并完成復(fù)雜的字符串處理任務(wù)
    2017-12-12
  • 深入了解Python 變量作用域

    深入了解Python 變量作用域

    這篇文章主要介紹了Python 變量作用域的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python 短視頻爬蟲教程

    Python 短視頻爬蟲教程

    今天給大家?guī)硪黄老x小教程,很簡單的幾十行代碼就可以實現(xiàn)了,爬取的目標(biāo)是短視頻,感興趣的同學(xué)快來跟著小編往下看吧
    2021-11-11
  • Python文件讀寫常見用法總結(jié)

    Python文件讀寫常見用法總結(jié)

    今天小編就為大家分享一篇關(guān)于Python文件讀寫常見用法總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論

抚远县| 金坛市| 织金县| 绥棱县| 开远市| 旬阳县| 永善县| 扶沟县| 贺兰县| 梨树县| 合山市| 江北区| 辽宁省| 宁晋县| 南皮县| 广饶县| 白城市| 莱芜市| 花莲市| 新和县| 修水县| 平陆县| 阳曲县| 定州市| 寿光市| 日喀则市| 华蓥市| 东乡县| 崇文区| 贡嘎县| 玛多县| 商河县| 洪泽县| 施甸县| 渝北区| 喜德县| 体育| 阜阳市| 宾阳县| 全椒县| 饶平县|