溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python如何實(shí)現(xiàn)汽車管理系統(tǒng)

發(fā)布時(shí)間:2021-04-09 11:45:16 來(lái)源:億速云 閱讀:222 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了python如何實(shí)現(xiàn)汽車管理系統(tǒng),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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

2、定義一個(gè)管理類,完成對(duì)停車場(chǎng)的管理。停車場(chǎng)的具體要求:設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)大門(mén)可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按門(mén)外的便道上等待,一旦有車開(kāi)走,則排在便道上的第一 輛車即可開(kāi)入;每輛停放在車場(chǎng)的車在它離開(kāi)停車場(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)中沒(méi)有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作。

(6)統(tǒng)計(jì)功能:能統(tǒng)計(jì)停車場(chǎng)中車輛的總數(shù)、按車型、按到達(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):
    # 汽車屬性
    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('車牌號(hào):<%s> 車主:<%s> 顏色:<%s> 車型:<%s> 聯(lián)系方式:<%s> 余額:<%s> 停車時(shí)間:<%s> '
       % (self.num, self.owner, self.color, self.type, self.connect, self.money, self.entime))
 
 
class Park(object):
  def init(self): # 對(duì)停車場(chǎng)初始化車輛
    self.car_list.append(CarMessage('001', 'python', '黑', '大卡', '123456789', 34, datetime.datetime.now()))
    self.car_list.append(
      CarMessage('002', 'hello', '黑', '小汽車', '123456789', 87, datetime.datetime.now() - datetime.timedelta(minutes=10)))
    self.car_list.append(
      CarMessage('003', 'java', '白', '小汽車', '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ǎng)管理系統(tǒng)
        1)停車
        2)取車
        3)余額查詢
        4)顯示已存放車輛
        5)查詢
        6)編輯車輛信息
        7)退出
      
      """)
      choice = input("請(qǐng)輸入你的選擇:")
      if choice == '1':
        self.park()
      elif choice == '2':
        self.exit()
      elif choice == '3':
        car = input("請(qǐng)輸入車牌號(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':  #編輯車輛信息
        self.edit()
      elif choice == '7':
        exit(0)
      else:
        print('請(qǐng)輸入正確選項(xiàng)!?。?#39;)
  def park(self):
    if self.cur_car<self.max_car:
      car_num = input('請(qǐng)輸入你的車牌號(hào):')
      res = self.check(car_num) # 判斷該車牌是否有停車記錄
      if res is None:
        self.car_list.append(CarMessage(car_num, input('車主:'), input('顏色:'), input('車型<小汽車、小卡、中卡和大卡>:'),
                   input('聯(lián)系方式:'), int(input('余額')), datetime.datetime.now()))
        print('汽車可以進(jìn)入')
      else:
        print('車輛已在停車場(chǎng)內(nèi)部')
 
    else:
      print('車位已滿,無(wú)法停車')
 
 
  def exit(self):
    car_num = input("請(qǐng)輸入你的車牌號(hào):")
    res = self.check(car_num)
    if res is not None:
      self.pay(res)
      self.car_list.remove(res)
      print('一路平安,出行平安')
 
    else:
      print('你的車輛不在停車場(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ù)車牌查詢
      2)根據(jù)車型查詢
      3)返回
      ''')
      choice = input("請(qǐng)輸入你的選擇:")
      if choice == '1':
        num = input('車牌號(hào):')
        res = self.check(num)
        if res is not None:
          CarMessage.__str__(res)
 
        else:
          print("查無(wú)此車!")
 
      elif choice == '2':
        type = input("車型<小汽車、小卡、中卡和大卡>:")
        if type in ['小汽車','小卡','中卡','大卡']:
          for i in self.car_list:
            if i.type == type:
              CarMessage.__str__(i)
        else:
          print('不存在%s這種車型'%(type))
 
 
      elif choice == '3':
        break
      else:
        print('請(qǐng)輸入正確選項(xiàng)\n')
  def edit(self):  #更改車輛信息
    num= input('請(qǐng)輸入車牌號(hào):')
    res = self.check(num)
    if res is not None:
      CarMessage.__str__(res)
      print('信息修改:\n車牌號(hào):%s'%(num))
      res.owner = input('車主:')
      res.clor = input('顏色:')
      while True:
        type = input("車型<小汽車、小卡、中卡和大卡>:")
        if type in ['小汽車', '小卡', '中卡', '大卡']:
          res.type = type
          break
        else:
          print('不存在%s這種車型,請(qǐng)重新輸入\n' % (type))
 
      res.connect = input('聯(lián)系方式:')
      res.money = int(input('余額:'))
      res.entime = datetime.datetime.strptime(input('進(jìn)入停車場(chǎng)時(shí)間(eg:2018-05-21 11:14:10):'),
                          '%Y-%m-%d %H:%M:%S')
      print('信息修改成功...')
 
    else:
      print('沒(méi)有車牌%s的車輛信息'%(num))
 
p = Park()
p.Menu()

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python如何實(shí)現(xiàn)汽車管理系統(tǒng)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI