利用python模拟火车订票系统

title = ['车次 ','出发站-到达站 ','出发时间 ','到达时间 ','历时 ']
num = ['T40','T298','Z158','Z62']
place = ['长春-北京','长春-北京','长春-北京','长春-北京']
start = ['00:12','00:06','12:48','21:57']
final = ['12:20','10:50','21:06','06:08']
time = ['12:08','10:44','08:18','08:20']

print(title)
print(num[0],' ',place[0],' ',start[0],' ',final[0],' ',time[0])
print(num[1],' ',place[1],' ',start[1],' ',final[1],' ',time[1])
print(num[2],' ',place[2],' ',start[2],' ',final[2],' ',time[2])
print(num[3],' ',place[3],' ',start[3],final[3],time[3])

m = dict(zip(num,start))
n = dict(zip(num,place))

a = input('请输入要购买的车次:')
b = input('请输入乘车人(用逗号):')

aplace = n[a]
astart = m[a]

print('您已购',a,'次列车',aplace,astart,'开','请',b,'尽快换取纸质车票')

 通过制作列表,构建字典查找定位到所需

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
#这只是一个半成品,只是实现了,一个完整的订票过程,对于,如果刷票,自己研究 #简单过程 # 第一、getRandAndCookie() 获得cook 和一个随机数用于登录 # 第二、getEnterRandCode() 得到登录时的识别码 # 第三、setuseandpassword(randcode,use,password) 发送随机数、识别码和用户及密码。由于随机数只在内部使用,所以定义成了全局变量, # 第四、GetTrainList() 得到所有车站列表,'@bjb|北京北|VAP|beijingbei|bjb|0' 其中有中文、拼音、拼音缩写、所一个ID(唯一),其主要是可以,通过上面的列表,找到它的唯一ID,TranCityToId('南昌') # 第五、GetTrainNumList(date,fromstationid,tostationid,starttime) 得到哪到哪的所在车次,消息格式如下,其中所以,一下车次的的ID:"id":"650000K1060I" # {"end_station_name":"北京西","end_time":"16:18","id":"650000K1060I","start_station_name":"深圳","start_time":"10:54","value":"K106"} # 通过ChangeToTrainNumId('K106')得到车次ID # 第六、QueryTrain(fromstationid,tostationid,date,stationNum,starttime) 就是点击查询按键,得到是否有能预订,格式如下 #       南昌         20:12,    北京西        07:38,11:26,--,--,--,--,10,有,有,--,有,有,--,<a name='btn130_2' class='btn130_2' # 通过choiceSubmitNum(stationNum,trainsubmitinfo)提取出getSelected()消息 # 第七、submitRequest(choiceSubmitNum(stationNum,trainsubmitinfo),date,starttime) 就是点击预订按钮 # 第八、getrandCheckCode()得到提交订单的识别码 # 第十、CheckInMyTicket(info,randcode,peoples)点击提交,如果成功的话,就会返回{"errMsg":"Y"} # 出于,网络是UTF8格式,所以,必须# -*- coding: utf-8 -*-,(当然,自己转换也是可以的) # 出于这一个控制台信息,所以,识别码的图片在脚本同一目录 #得到头信息
好的,我可以为您提供一个简单的Python模拟火车订票系统的示例代码。以下是代码: ```python import random class Train: def __init__(self, train_num, max_seats): self.train_num = train_num self.max_seats = max_seats self.seats = [False] * max_seats def get_train_num(self): return self.train_num def get_num_of_available_seats(self): return self.seats.count(False) def book_ticket(self): if self.get_num_of_available_seats() == 0: return False else: while True: seat_num = random.randint(0, self.max_seats - 1) if not self.seats[seat_num]: self.seats[seat_num] = True return True class TrainBookingSystem: def __init__(self): self.trains = [Train(1, 100), Train(2, 50), Train(3, 200)] def print_available_trains(self): print("Available Trains:") for train in self.trains: print("Train {} has {} seats available".format(train.get_train_num(), train.get_num_of_available_seats())) def book_ticket(self, train_num): train = None for t in self.trains: if t.get_train_num() == train_num: train = t break if train is None: print("Invalid train number!") return if train.book_ticket(): print("Ticket booked successfully!") else: print("Sorry, train is full.") ``` 该系统包含两个类:Train和TrainBookingSystem。Train类表示火车,它有一个火车号、最大座位数和座位列表。TrainBookingSystem类表示火车订票系统,它包含多个火车和一些方法用于列出可用火车和订票。 您可以通过以下代码来测试这个系统: ```python booking_system = TrainBookingSystem() booking_system.print_available_trains() booking_system.book_ticket(1) booking_system.book_ticket(2) booking_system.book_ticket(3) booking_system.book_ticket(1) booking_system.book_ticket(2) booking_system.book_ticket(3) ``` 输出应该是这样的: ``` Available Trains: Train 1 has 100 seats available Train 2 has 50 seats available Train 3 has 200 seats available Ticket booked successfully! Ticket booked successfully! Ticket booked successfully! Sorry, train is full. Sorry, train is full. Sorry, train is full. ``` 这个例子是一个非常简单的火车订票系统,仅用于演示目的。在实际情况下,火车订票系统需要更多的功能和复杂性,例如:预订座位、取消预订、查询预订信息等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_____�金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值