专栏首页恩蓝脚本python实现汽车管理系统

python实现汽车管理系统

本文实例为大家分享了python实现汽车管理系统的具体代码,供大家参考,具体内容如下

1、定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。

2、定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按门外的便道上等待,一旦有车开走,则排在便道上的第一?辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

功能描述:

(1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;

(3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。

(5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。

(6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。

实现代码:

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('车牌号:<%s  车主:<%s  颜色:<%s  车型:<%s  联系方式:<%s  余额:<%s  停车时间:<%s  '
% (self.num, self.owner, self.color, self.type, self.connect, self.money, self.entime))
class Park(object):
def init(self): # 对停车场初始化车辆
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("""
停车场管理系统
1)停车
2)取车
3)余额查询
4)显示已存放车辆
5)查询
6)编辑车辆信息
7)退出
""")
choice = input("请输入你的选择:")
if choice == '1':
self.park()
elif choice == '2':
self.exit()
elif choice == '3':
car = input("请输入车牌号:")
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('请输入正确选项!!!')
def park(self):
if self.cur_car<self.max_car:
car_num = input('请输入你的车牌号:')
res = self.check(car_num) # 判断该车牌是否有停车记录
if res is None:
self.car_list.append(CarMessage(car_num, input('车主:'), input('颜色:'), input('车型<小汽车、小卡、中卡和大卡 :'),
input('联系方式:'), int(input('余额')), datetime.datetime.now()))
print('汽车可以进入')
else:
print('车辆已在停车场内部')
else:
print('车位已满,无法停车')
def exit(self):
car_num = input("请输入你的车牌号:")
res = self.check(car_num)
if res is not None:
self.pay(res)
self.car_list.remove(res)
print('一路平安,出行平安')
else:
print('你的车辆不在停车场内部,请通知管理员!')
def pay(self,car):
# res = self.check(car)
money = (datetime.datetime.now() - car.endtime).seconds / 60
print("当前余额:%s" %(money))
while True:
if car.money  = money: # 判断余额是否够支付
car.money -= money
print('自动付款%s成功' % (money))
break
else:
print('余额不足请充值')
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)根据车牌查询
2)根据车型查询
3)返回
''')
choice = input("请输入你的选择:")
if choice == '1':
num = input('车牌号:')
res = self.check(num)
if res is not None:
CarMessage.__str__(res)
else:
print("查无此车!")
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('请输入正确选项n')
def edit(self):  #更改车辆信息
num= input('请输入车牌号:')
res = self.check(num)
if res is not None:
CarMessage.__str__(res)
print('信息修改:n车牌号:%s'%(num))
res.owner = input('车主:')
res.clor = input('颜色:')
while True:
type = input("车型<小汽车、小卡、中卡和大卡 :")
if type in ['小汽车', '小卡', '中卡', '大卡']:
res.type = type
break
else:
print('不存在%s这种车型,请重新输入n' % (type))
res.connect = input('联系方式:')
res.money = int(input('余额:'))
res.entime = datetime.datetime.strptime(input('进入停车场时间(eg:2018-05-21 11:14:10):'),
'%Y-%m-%d %H:%M:%S')
print('信息修改成功...')
else:
print('没有车牌%s的车辆信息'%(num))
p = Park()
p.Menu()

功能三暂时有一些问题,还在学习中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持网站事(zalou.cn)。

您可能感兴趣的文章:

  • python图书管理系统
  • Python实现GUI学生信息管理系统
  • python3.6+django2.0开发一套学员管理系统
  • python实现图书管理系统
  • Python实现学生成绩管理系统
  • python实现学生信息管理系统
  • python学生信息管理系统
  • Python学生成绩管理系统简洁版
  • python实现外卖信息管理系统
  • python实现员工管理系统

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PyQt5 文本输入框自动补全QLineEdit的实现示例

    QStandardItemModel可以用作标准Qt数据类型的存储库。它是模型/视图类之一,是Qt的模型/视图框架的一部分。

    砸漏
  • python实现人机五子棋

    本文实例为大家分享了python实现人机五子棋的具体代码,供大家参考,具体内容如下

    砸漏
  • 使用python从三个角度解决josephus问题的方法

    设nnn个人围坐一圈,现在要求从第kkk个人开始报数,报到第mmm个的人退出。然后从下一个人开始继续按照同样规则报数并退出,直到所有人退出为止。要求按照顺序输出...

    砸漏
  • python 搭建简单的http ser

    py3study
  • Python定做一个计算器,小而美哒~

    qt 设计器提供的常用控件基本都能满足开发需求,通过拖动左侧的控件,很便捷的就能搭建出如下的UI界面,比传统的手写控件代码要方便很多。

    double
  • 打牢地基-队列

    数组队列 dequeue 的时间复杂度是 o(n) ,因每次删除队首元素,后面的元素都得进行前移操作 使用循环队列可以将dequeue的时间复杂度降至o(1)

    用户1081422
  • python pyqt5 窗体动画效果

    import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui ...

    用户5760343
  • PyQt5--QLineEdit

    py3study
  • python pyqt5 卡通人物形状窗体

    import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui ...

    用户5760343
  • python pyqt5 带分页表格

    import sys import re from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QVBoxL...

    用户5760343

扫码关注云+社区

领取腾讯云代金券