Python停车管理系统可实现车辆入库,按车牌号或者车型查询车辆,修改车辆信息,车辆出库时实现计费,按车型统计车辆数和显示全部车辆信息的功能
(1)定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。
(2)定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
功能描述
(1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
(3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。
(5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。
(6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。
先创建一个关于车的类模块setting_Car.py
import time from setting_Manage import ParkManage class 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 time class 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]"请输入你要的功能:") 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()
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]