本文实例为大家分享了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()
功能三暂时有一些问题,还在学习中。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】