python實(shí)現(xiàn)汽車(chē)管理系統(tǒng)
本文實(shí)例為大家分享了python實(shí)現(xiàn)汽車(chē)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
1、定義車(chē)輛類(lèi),屬性有車(chē)牌號(hào)、顏色、車(chē)型(小汽車(chē)、小卡、中卡和大卡)、到達(dá)的時(shí)間和離開(kāi)的時(shí)間等信息和相關(guān)的對(duì)屬性做操作的行為。
2、定義一個(gè)管理類(lèi),完成對(duì)停車(chē)場(chǎng)的管理。停車(chē)場(chǎng)的具體要求:設(shè)停車(chē)場(chǎng)是一個(gè)可停放n輛汽車(chē)的狹長(zhǎng)通道,且只有一個(gè)大門(mén)可供汽車(chē)進(jìn)出。汽車(chē)在停車(chē)場(chǎng)內(nèi)按門(mén)外的便道上等待,一旦有車(chē)開(kāi)走,則排在便道上的第一 輛車(chē)即可開(kāi)入;每輛停放在車(chē)場(chǎng)的車(chē)在它離開(kāi)停車(chē)場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。
功能描述:
(1)添加功能:程序能夠添加到達(dá)停車(chē)場(chǎng)的車(chē)輛信息,要求車(chē)輛的車(chē)牌號(hào)要唯一,如果添加了重復(fù)編號(hào)的記錄時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加。
(2)查詢(xún)功能:可根據(jù)車(chē)牌號(hào)、車(chē)型等信息對(duì)已添加的停車(chē)場(chǎng)中的車(chē)輛信息進(jìn)行查詢(xún),如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;
(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有車(chē)輛的信息,每條記錄占據(jù)一行。
(4)編輯功能:可根據(jù)查詢(xún)結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意車(chē)牌號(hào)的唯一性。
(5)刪除功能:主要實(shí)現(xiàn)對(duì)已添加的車(chē)輛記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒(méi)有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作。
(6)統(tǒng)計(jì)功能:能統(tǒng)計(jì)停車(chē)場(chǎng)中車(chē)輛的總數(shù)、按車(chē)型、按到達(dá)時(shí)間進(jìn)行統(tǒng)計(jì)等。
實(shí)現(xiàn)代碼:
import datetime class CarMessage(object): def __init__(self, num, owner, color, type, connect, money, endtime): # 汽車(chē)屬性 self.num = num self.color = color self.type = type self.owner = owner self.connect = connect self.money = money self.entime = endtime def __str__(self): print('車(chē)牌號(hào):<%s> 車(chē)主:<%s> 顏色:<%s> 車(chē)型:<%s> 聯(lián)系方式:<%s> 余額:<%s> 停車(chē)時(shí)間:<%s> ' % (self.num, self.owner, self.color, self.type, self.connect, self.money, self.entime)) class Park(object): def init(self): # 對(duì)停車(chē)場(chǎng)初始化車(chē)輛 self.car_list.append(CarMessage('001', 'python', '黑', '大卡', '123456789', 34, datetime.datetime.now())) self.car_list.append( CarMessage('002', 'hello', '黑', '小汽車(chē)', '123456789', 87, datetime.datetime.now() - datetime.timedelta(minutes=10))) self.car_list.append( CarMessage('003', 'java', '白', '小汽車(chē)', '123456789', 55, datetime.datetime.now() - datetime.timedelta(hours=1))) self.car_list.append( CarMessage('004', 'westos', '黑', '小卡', '123456789', 60, datetime.datetime.now() - datetime.timedelta(days=2))) self.car_list.append( CarMessage('005', 'root', '白', '中卡', '123456789', 24, datetime.datetime.now() - datetime.timedelta(minutes=60))) def __init__(self): self.max_car = 200 self.car_list = [] self.cur_car = len(self.car_list) def Menu(self): self.init() while True: print(""" 停車(chē)場(chǎng)管理系統(tǒng) 1)停車(chē) 2)取車(chē) 3)余額查詢(xún) 4)顯示已存放車(chē)輛 5)查詢(xún) 6)編輯車(chē)輛信息 7)退出 """) choice = input("請(qǐng)輸入你的選擇:") if choice == '1': self.park() elif choice == '2': self.exit() elif choice == '3': car = input("請(qǐng)輸入車(chē)牌號(hào):") self.pay(car) elif choice == '4': for i in self.car_list: CarMessage.__str__(i) elif choice == '5': self.find() elif choice == '6': #編輯車(chē)輛信息 self.edit() elif choice == '7': exit(0) else: print('請(qǐng)輸入正確選項(xiàng)!??!') def park(self): if self.cur_car<self.max_car: car_num = input('請(qǐng)輸入你的車(chē)牌號(hào):') res = self.check(car_num) # 判斷該車(chē)牌是否有停車(chē)記錄 if res is None: self.car_list.append(CarMessage(car_num, input('車(chē)主:'), input('顏色:'), input('車(chē)型<小汽車(chē)、小卡、中卡和大卡>:'), input('聯(lián)系方式:'), int(input('余額')), datetime.datetime.now())) print('汽車(chē)可以進(jìn)入') else: print('車(chē)輛已在停車(chē)場(chǎng)內(nèi)部') else: print('車(chē)位已滿(mǎn),無(wú)法停車(chē)') def exit(self): car_num = input("請(qǐng)輸入你的車(chē)牌號(hào):") res = self.check(car_num) if res is not None: self.pay(res) self.car_list.remove(res) print('一路平安,出行平安') else: print('你的車(chē)輛不在停車(chē)場(chǎng)內(nèi)部,請(qǐng)通知管理員!') def pay(self,car): # res = self.check(car) money = (datetime.datetime.now() - car.endtime).seconds / 60 print("當(dāng)前余額:%s" %(money)) while True: if car.money >= money: # 判斷余額是否夠支付 car.money -= money print('自動(dòng)付款%s成功' % (money)) break else: print('余額不足請(qǐng)充值') car.money += int(input('充值金額:')) print('充值成功') def check(self,car_num): for i in self.car_list: if car_num == i.num: return i else: return None def find(self): while True: print(''' 1)根據(jù)車(chē)牌查詢(xún) 2)根據(jù)車(chē)型查詢(xún) 3)返回 ''') choice = input("請(qǐng)輸入你的選擇:") if choice == '1': num = input('車(chē)牌號(hào):') res = self.check(num) if res is not None: CarMessage.__str__(res) else: print("查無(wú)此車(chē)!") elif choice == '2': type = input("車(chē)型<小汽車(chē)、小卡、中卡和大卡>:") if type in ['小汽車(chē)','小卡','中卡','大卡']: for i in self.car_list: if i.type == type: CarMessage.__str__(i) else: print('不存在%s這種車(chē)型'%(type)) elif choice == '3': break else: print('請(qǐng)輸入正確選項(xiàng)\n') def edit(self): #更改車(chē)輛信息 num= input('請(qǐng)輸入車(chē)牌號(hào):') res = self.check(num) if res is not None: CarMessage.__str__(res) print('信息修改:\n車(chē)牌號(hào):%s'%(num)) res.owner = input('車(chē)主:') res.clor = input('顏色:') while True: type = input("車(chē)型<小汽車(chē)、小卡、中卡和大卡>:") if type in ['小汽車(chē)', '小卡', '中卡', '大卡']: res.type = type break else: print('不存在%s這種車(chē)型,請(qǐng)重新輸入\n' % (type)) res.connect = input('聯(lián)系方式:') res.money = int(input('余額:')) res.entime = datetime.datetime.strptime(input('進(jìn)入停車(chē)場(chǎng)時(shí)間(eg:2018-05-21 11:14:10):'), '%Y-%m-%d %H:%M:%S') print('信息修改成功...') else: print('沒(méi)有車(chē)牌%s的車(chē)輛信息'%(num)) p = Park() p.Menu()
功能三暫時(shí)有一些問(wèn)題,還在學(xué)習(xí)中。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python3.6+django2.0開(kāi)發(fā)一套學(xué)員管理系統(tǒng)
- python3實(shí)現(xiàn)名片管理系統(tǒng)
- python3.6實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- python實(shí)現(xiàn)學(xué)員管理系統(tǒng)
- python Tkinter版學(xué)生管理系統(tǒng)
- python實(shí)現(xiàn)停車(chē)管理系統(tǒng)
- python實(shí)現(xiàn)名片管理系統(tǒng)
- python實(shí)現(xiàn)自動(dòng)登錄后臺(tái)管理系統(tǒng)
- Python3實(shí)現(xiàn)的簡(jiǎn)單工資管理系統(tǒng)示例
相關(guān)文章
關(guān)于python 的legend圖例,參數(shù)使用說(shuō)明
這篇文章主要介紹了關(guān)于python 的legend圖例,參數(shù)使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04numpy如何按條件給元素賦值np.where、np.clip
這篇文章主要介紹了numpy如何按條件給元素賦值np.where、np.clip問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Jupyter notebook運(yùn)行Spark+Scala教程
這篇文章主要介紹了Jupyter notebook運(yùn)行Spark+Scala教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04LyScript實(shí)現(xiàn)Hook隱藏調(diào)試器的方法詳解
LyScript?插件集成的內(nèi)置API函數(shù)可靈活的實(shí)現(xiàn)繞過(guò)各類(lèi)反調(diào)試保護(hù)機(jī)制。本文將運(yùn)用LyScript實(shí)現(xiàn)繞過(guò)大多數(shù)通用調(diào)試機(jī)制,實(shí)現(xiàn)隱藏調(diào)試器的目的,需要的可以參考一下2022-09-09python算法學(xué)習(xí)之桶排序算法實(shí)例(分塊排序)
本代碼介紹了python算法學(xué)習(xí)中的桶排序算法實(shí)例,大家參考使用吧2013-12-12深入學(xué)習(xí)Python中的上下文管理器與else塊
這篇文章主要給大家介紹了關(guān)于Python中上下文管理器與else塊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)視頻分解成圖片以及將圖片合成為視頻,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04