Pythonは駐車場管理システムを実現

[ Python](https://www.zalou.cn/tag/python)駐車場管理システムは、モデルに従って、車両の保管、ライセンスプレート番号またはモデルによる車両のクエリ、車両情報の変更、車両がライブラリを離れるときの請求の実現を実現できます[統計](https://www.zalou.cn/tag/tongji)車両の数とすべての車両情報を表示する機能

(1)車両カテゴリを定義します。属性には、ライセンスプレート番号、色、モデル(車、小、中、大)、到着時間と出発時間、および属性に作用するその他の情報と関連する動作が含まれます。

(2)駐車場の管理を完了するための管理カテゴリを定義します。駐車場の具体的な要件:駐車場は、n台の車を駐車できる狭くて長い通路であり、車が出入りするためのゲートは1つだけです。

車はドアの外の歩道にある駐車場で待機します。車が走り去ると、歩道の最初の車が車で入ることができます。駐車場に駐車するすべての車は、駐車場を出るときに押す必要があります。滞在期間は支払われます。

機能説明

(1)追加機能:[プログラム](https://www.zalou.cn/tag/chengxu)は、駐車場に到着する車両の情報を追加できるため、車両のナンバープレート番号は一意である必要があります。重複番号のレコードを追加すると、データの繰り返しを求められ、追加がキャンセルされます。

(2)照会機能:追加された駐車場の車両情報を、ライセンスプレート番号、車種などに従って照会します。見つからない場合は、対応するプロンプト情報が表示され、見つかった場合は、対応するレコード情報が表示されます。

(3)表示機能:現在のシステムのすべての車両の情報を表示することができ、各レコードは1行を占めます。

(4)編集機能:クエリ結果に応じて対応するレコードを変更できますので、変更の際はライセンスプレート番号の一意性に注意してください。

(5)削除機能:主に追加された車両記録の削除を実現します。現在のシステムに対応する人事記録がない場合は、「記録が空です!」というプロンプトが表示され、操作に戻ります。

(6)[統計](https://www.zalou.cn/tag/tongji)関数:[統計](https://www.zalou.cn/tag/tongji)駐車場内の車両の総数、車種、到着時間[統計](https://www.zalou.cn/tag/tongji)など。

まず、車関連のクラスモジュールsetting_Car.pyを作成します

import time
from setting_Manage import ParkManage

classCar(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("ライセンスプレート番号は:%sn駐車時間:%この消費をsn:%.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="Kcal"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
classParkManage(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("ライセンスプレートの情報が間違っています。再入力してください")breakelse:
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)breakelse:print("ライセンスプレート番号が見つかりません%の車両"%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):"""#車両情報を表示する"""iflen(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("モデルは正常に変更されました")breakelse:print("ライセンスプレート番号が見つかりません%の車両"% 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の車2が正常に削除されました"%car.car_number)
def statistics(self):"""統計車両情報"""
sedan_car_number=0
pickup_truck_number=0
middle_truck_number=0
super_truck_number=0for 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+=1else:print("車:%sn""小さなカード:%sn""ミディアムカード:%sn""Kcal:%sn"%(sedan_car_number,pickup_truck_number,middle_truck_number,super_truck_number))

main_fun.pyにメイン[関数](https://www.zalou.cn/tag/hanshu)を作成し、実行します

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:
parkmanage.info()
choice=input("必要な機能を入力してください:")if choice=='1':
check_error_list=[]
car_number=input("ライセンスプレート番号を入力してください:")ifcheck_car_number(car_number):
car_owner=input("オーナーの名前を入力してください:")
contact_way=input("オーナーの連絡先を入力してください:")ifcheck_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("不完全な入力")breakelse:
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)breakelse:print("ライセンスプレート番号が見つかりません%の車両"%(car_number))
elif choice=='6':
parkmanage.statistics()
elif choice=='7':print("次回もようこそ! ! !")exit()else:print("正しいオプションを入力してください")if __name__ =='__main__':main()

上記はこの記事の全内容です。あなたの研究に役立つことを願っています。また、[ウェブサイト](https://www.zalou.cn/tag/wangzhan)(zalou.cn)をサポートしていただければ幸いです。

あなたが興味を持っているかもしれない記事:####

Recommended Posts

Pythonは駐車場管理システムを実現
Pythonは車の管理システムを実装しています
Pythonはシンプルな名刺管理システムを実装しています
Pythonは学生のパフォーマンス評価システムを実装しています
Pythonは名刺管理システムを実現
Python3は名刺管理システムを実現
Python名刺管理システムの開発
Python版名刺管理システム
python学生管理システムの実装
Pythonは実際の銀行システムを実装しています
セントスシステム管理
Pythonは学生管理システムの開発を実現します
pythonを使用して名刺管理システムを実現する
pythonによる名刺管理システムの実装
Pythonはスーパーマリオを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはマンマシンゴバンを実装します
PythonはTetrisゲームを実装しています
Pythonは画像スティッチングを実装しています
Pythonはminesweeperゲームを実装しています
Pythonはスキャンツールを実装しています
Pythonでのコンテキスト管理
Pythonクローラーgerapyクローラー管理
Pythonはしきい値回帰を実装します
Pythonは地雷除去ゲームを実装しています
Pythonは電子辞書を実装しています
Pythonは推測ゲームを実装しています
Centosシステムプロセス管理
pythonに基づく名刺管理システムの実装
Pythonは単純なタンクバトルを実装します
Pythonはudpチャットウィンドウを実装します
PythonはWeChat飛行機ゲームを実装しています
Pythonは単語推測ゲームを実装しています
Pythonランタイム例外管理ソリューション
Pythonは推測ゲームを実装しています
Pythonはデジタル爆弾ゲームを実装しています
PythonはTCPファイル転送を実装します
Pythonnumpyはローリングケースを実装します
OpenCVPythonはパズルゲームを実装しています
Pythonは単純なtic-tac-toeゲームを実装しています
Pythonはパスワード強度検証を実装します
Pythonはフェイスサインインシステムを実現します
Pythonはコードブロックフォールディングを実装します
Pythonはパノラマ画像スティッチングを実装しています
PythonはSMTPメール送信を実装します
Pythonは多次元配列ソートを実装しています
PythonがFTP機能を実装する方法
Pythonは平均シフトクラスタリングアルゴリズムを実装しています
Pythonは検証コード認識を実装します
Pythonは勾配降下法を実装しています
Pythonはテキストバージョンのminesweeperを実装しています
Pythonは画像スティッチング機能を実装しています
Pythonは実店舗のゲームを実装しています
Pythonがメール機能を実装する方法
Pythonは単にスネークゲームを実装します
Python3はシングルトンデザインパターンを実装しています
Pythonは為替レート変換操作を実装します
Pythonは文字列と数値のスプライシングを実装します
Pythonは10の古典的なソートアルゴリズムを実装しています
PythonはユニバーサルWebフレームワークを実装しています