python实现停车管理系统

来源:中文源码网    浏览: 次    日期:2019年11月5日

【下载文档:  python实现停车管理系统.txt 】

(友情提示:右键点上行txt文档名->目标另存为)

python实现停车管理系统Python停车管理系统可实现车辆入库,按车牌号或者车型查询车辆,修改车辆信息,车辆出库时实现计费,按车型统计车辆数和显示全部车辆信息的功能

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

(2)定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。

汽车在停车场内按门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

功能描述

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

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

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

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

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

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

先创建一个关于车的类模块setting_Car.py

import time

from setting_Manage import ParkManageclass Car(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("车牌号为:%s\n停车时长:%s\n本次消费:%.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)创建一个关于管理系统的类模块setting_Manage.py

import timeclass ParkManage(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("车牌号信息有误,重新输入")

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("未找到相关车辆信息")

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联系方式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("车型修改成功")

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):

"""统计车辆信息"""

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中创建主函数并运行

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 Falsedef 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("请输入车牌号:")

if check_car_number(car_number):

car_owner=input("请输入车主姓名:")

contact_way=input("请输入车主联系方式:")

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("手机号无效")

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()更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。

亲,试试微信扫码分享本页! *^_^*

python车辆管理系统_python实现停车管理系统相关推荐

  1. python迷你停车场管理系统_python实现停车管理系统

    Python停车管理系统可实现车辆入库,按车牌号或者车型查询车辆,修改车辆信息,车辆出库时实现计费,按车型统计车辆数和显示全部车辆信息的功能 (1)定义车辆类,属性有车牌号.颜色.车型(小汽车.小卡. ...

  2. python 停车场收费系统_python实现停车管理系统

    Python停车管理系统可实现车辆入库,按车牌号或者车型查询车辆,修改车辆信息,车辆出库时实现计费,按车型统计车辆数和显示全部车辆信息的功能 (1)定义车辆类,属性有车牌号.颜色.车型(小汽车.小卡. ...

  3. [附源码]Python计算机毕业设计城市道路智能停车管理系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  4. 停车场管理系统python_python实现停车管理系统

    Python停车管理系统可实现车辆入库,按车牌号或者车型查询车辆,修改车辆信息,车辆出库时实现计费,按车型统计车辆数和显示全部车辆信息的功能 (1)定义车辆类,属性有车牌号.颜色.车型(小汽车.小卡. ...

  5. 计算机停车管理系统界面,智慧停车管理系统-智慧停车整体解决方案

    智慧停车管理系统-智慧停车整体解决方案 初心不二科技智慧停车解决方案依托智慧停车管理服务平台,运用区域网格化.精细化管理思维,打造区域内所有人.车.路.场.环境等紧密协调.高效.安全的静态交通全景图, ...

  6. oracle数据库停车管理系统,城市智能停车管理系统的设计与实现

    硕 士 学 位 论 文 题 目: 城市智能停车管理系统的设计与实现 1 研 究 生 戴孛丰 1 专 业 控制工程 1 指导教师 侯平智 高级工程师 1 完成日期 2017 年 3 月 杭州电子科技大学 ...

  7. 一个python停车管理系统_python简易停车系统

    # 简易版停车管理: # # 停车场最多停车数; max_car; # 当前停车数;cur_car; # 当前停车列表; car_list = [] # # 停车: # 1). 如果没有达到最多停车数 ...

  8. python大学生信息管理系统_python学生信息管理系统

    1.本人第一次学python做出来的,当时满满的成就感,当作纪念!!!!! 非常简单,复制即可使用 代码块 import json#把字符串类型的数据转换成Python基本数据类型或者将Python基 ...

  9. python写名片管理系统_Python实现名片管理系统

    本文实例为大家分享了Python实现名片管理系统的具体代码,供大家参考,具体内容如下 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 系统需求 1. 程序启动,显示名片管理系统欢迎界面 ...

最新文章

  1. 如何获得当前运行模块在进程地址空间的位置
  2. C++派生类构造函数调用规则
  3. 图论(十)最小生成树-Prim算法
  4. 【APP】centos 5.X安装网络和系统监控管理平台--OpenNMS
  5. python平稳性检验_Python数据分析0.3 用statsmodels进行ADF平稳性检验
  6. Gulp 前端自动化构建
  7. 每日Ubuntu小技巧:合上笔记本,系统不睡眠
  8. EL表达式 jsp2.0 jsp1.2 与 tomcat
  9. CentOS-6.3安装使用MongoDB
  10. tableView 获取网络图片,并且设置为圆角(优化,fps)
  11. 【Flink】Flink 多并行度下的 watermark触发机制
  12. Disallowed Key Characters(转)
  13. 7.1.21 jQuery 的 Post请求
  14. Java零基础学习(三)封装继承多态
  15. php定量,javascript - js 无序数组 任意个数 相加之和为定量m?
  16. 【统计学】基本Stata使用手册(3):模型设定问题
  17. 免费的思维导图软件都有哪些?
  18. 问题 E: 分分分 学生的命根
  19. tf.variable_scope,reuse复用变量
  20. MATLAB 2018b 安装教程(图解)Mac Win Linux下均可安装

热门文章

  1. 广州市计算机教育软件,广州博学教育电脑版
  2. Lex和Yacc介绍
  3. 手把手带你安装window10+ubuntu18.04双系统--超详细
  4. 无监督学习(2) 数据降维简述与Python实现
  5. 简易cpu设计_为简单而设计
  6. 时钟电路程序设计c语言,STC89C52单片机简易时钟程序电路设计(附源代码和电路图)...
  7. 雷卯大功率肖特基,可替代ST,VISHAY
  8. 容灾中的热备、冷备、双活、两地三中心
  9. TS第一讲-----基础类型
  10. mmse评估量表_简易智能精神状态评价量表(MMSE