【python入门】day27: 模拟高铁售票系统

Python-Django毕业设计火车站售票管理系统(程序+LW). 该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程项目运行环境配置:Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs。项目技术:django + python+ Vue 等等组成,B/S模式 +pychram管理等等。环境需要1.运行环境:最好是python3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。 阅读详情

界面

在这里插入图片描述

代码

#-*- coding:utf-8 -*-
import prettytable as pt#---------导入漂亮表格
import os.path
filename = 'ticket.txt'

#更新座位状态
def update(row_num):#------更新购票状态
    with open(filename,'w',encoding='utf-8') as wfile:
        for i in range(row_num):
            lst1 = [f'{i+1}','有票','有票','有票','有票','有票']
            wfile.write(str(lst1)+'\n')

#显示座席
def show_ticket():
    with open(filename,'r',encoding='utf-8') as rfile:
        lst = rfile.readlines()
        tb = pt.PrettyTable()
        tb.field_names = ['行号','座位1','座位2','座位3','座位4','座位5'] #表格的标题,行的title
        for i in lst:
            tb.add_row(eval(i))#--------从文件中读取的每一行字符串转换成列表加进tb中
        print(tb)

#订票
def order_ticket(row,column):
    with open(filename,'r',encoding='utf-8') as rfile:#----读取文件
        lst = rfile.readlines()
        # print(lst)
    with open(filename,'w',encoding='utf-8') as wfile:#-----重写文件
        for item in lst:
            item=eval(item)#--------从文件中读取的每一行字符串转换成列表
            # print(item[0])
            if item[0] == row:
                item[int(column)] = '已售'#-----------改写第row行第col列为'已售'
                print(item)
                wfile.write(str(item)+'\n')#---------把改写后的的对象保存到文件中
            else:
                wfile.write(str(item)+'\n')#---------如果没改变,把读取的对象保存到文件中
if __name__ == '__main__':
    row_num = 13#---------全部13行
    update(row_num) # ---调用更新函数,传入参数
    show_ticket() # ---调用显示函数
    while True:
        choose_num = input('请输入选择的座位,如13,5表示13排五号座位')
        try:
            row,column = choose_num.split(',')#--------把输入的13,5一个参数分隔成13 5两个参数
            order_ticket(row,column)# ----------把两参数数传入订票函数
        except:
            print('输入格式有误,如13排五号座位,应输入13,5,请重新输入')
            continue
        else:
            choose = input('是否继续购票?y/n')
            if choose == 'y':
                continue
            else:
                show_ticket() # ---调用显示函数
                #break---------加进可以退出死循环,退出只能重新售卖
                              #不加可以一直循环到卖完
Python面向对象实现多线程的12306售票系统 在本文中,我们将使用Python编程语言和面向对象的方式来创建一个模拟12306售票系统的多线程应用程序。通过这个示例,我们将展示如何使用线程来模拟多个售票窗口,并实现票务的购买和查询功能。的类,它将模拟一个售票窗口。在上面的代码中,我们首先创建了10张车票,并将它们添加到售票窗口。这表明所有的车票都被售出,当没有更多的车票可用时,售票窗口将显示"No more tickets available."。现在,我们将创建一些车票,并将它们添加到售票窗口。然后,我们将创建几个线程来模拟多个售票窗口的运行。 阅读详情

相关推荐

python 订票系统

#这只是一个半成品,只是实现了,一个完整的订票过程,对于,如果刷票,自己研究 #简单过程 # 第一、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 -*-,(当然,自己转换也是可以的) # 出于这一个控制台信息,所以,识别码的图片在脚本同一目录 #得到头信息

4.2模拟火车订票系统(python)

本代码有不足之处:当输入车次不在可选择车次中时,代码运行会出错。且该代码分列有点对不齐,该对齐的代码也是网上找的,不是很懂什么意思,但是可以直接用。不知道有没有更好的、简单易懂的代码。

Monnn_26的博客 1921

Tube-based MPC完全指南:RCI集合构造与Matlab实现

模型预测控制(MPC)在实际工程中常因模型失配和外部扰动导致硬约束被突破,而鲁棒控制中的Tube-based MPC通过将单条预测轨迹扩展为“管道”集合,为不确定性提供了严格的安全边界。其核心在于利用鲁棒控制不变集(RCI)离线构造安全域,再结合在线标称MPC与反馈校正实现约束的硬保证。针对非线性系统,利普希茨条件为等效扰动的放大和RCI的构造提供了理论基础,使得算法既能保留非线性描述,又不牺牲在线计算效率。该方法适用于带扰动和参数漂移的机械系统、过程控制及嵌入式控制场景。本文以摩擦力非线性系统为例,从RC

weixin_32642109的博客 214

【Python】【项目模拟】模拟火车订票系统

模拟火车订票系统

yewanyuan的博客 5721

【Java】对接微信转账到零钱接口 Java微信商家转账 apiV3(该踩的雷都踩了)

配置apiv3依赖java代码。

Moonhwa的博客 4316

Debezium报错处理系列之二十八: Expiring 1 record(s) for test-ts-0:120001 ms has passed since batch creation

Debezium报错处理系列之二十八: Expiring 1 record(s) for test-ts-0:120001 ms has passed since batch creation

zhengzaifeidelushang的博客 3290

【python入门】day25:模拟12306火车票订票下单

士不可以不弘毅

胸纳甲兵,烽烟起可靖疆晏海。 1257

本地快速部署谷歌开放模型Gemma教程(基于Ollama)

谷歌最近发布了新一代开源AI模型Gemma,此次发布的 Gemma 相比自家的 Gemini 更加轻量级,模型权重也一并开源。不仅可以在笔记本电脑上运行,而且还免费可商用,支持中文。运行速度飞快。

特立独行的博客 6716

Python实操模拟售票系统

Python实操模拟售票系统

weixin_64974855的博客 320

【TC3xx芯片】TC3xx芯片STM介绍

TC3xx芯片STM介绍

qq_36056498的博客 2280

手把手教你学simulink(31.17)--双向DCDC电源场景示例:基于simulink 的双向DCDC应用:车载充电器的pi控制

通过引入PI控制器,系统可以更精确地控制电压和电流,确保充电和放电过程的稳定性和高效性。

MHD0815的博客 205

模拟火车订票系统(Python)

模拟火车订票系统,效果显示,输入购买的车次,乘车人,判断车次是否存在,及其行程信息。如下效果图: 程序如下: 输出结果: 总结:难点在于1.使用自建函数判断车次是否存在 2.字符串format方法的使用 ...

Quella__的博客 6311

SAP-ABAP:FI财务会计模块常用BAPI及核心用途实例说明

SAP FI模块的BAPI覆盖了从主数据管理、凭证过账到财务关账的全流程操作,是系统集成与自动化的重要工具。实际应用中需结合业务场景选择合适的BAPI,并严格遵循事务控制与校验规则。如需扩展功能,可通过BAdI或用户出口增强标准逻辑。

baidu_35680696的博客 1601

python-模拟高铁售票系统

【代码】python-模拟高铁售票系统。

weixin_48381563的博客 927

【DeepSeek应用实践】手把手教程:用 AnythingLLM + Ollama + DeepSeek-R1 搭建本地企业知识库

在众多的技术方案中,我们选择了 AnythingLLM、Ollama 和 DeepSeek-R1 这一组合来搭建本地知识库。Ollama 作为一个轻量级的本地化大语言模型部署工具,支持多种模型,易于安装和使用,能够快速在本地运行强大的语言模型。DeepSeek-R1 是一个专为知识库问答设计的检索增强生成(RAG)模型,它结合了检索和生成的优势,能够快速从知识库中检索相关信息并生成精准答案。而 AnythingLLM 则是一个用户友好的界面工具,可以方便地连接 Ollama 和 DeepSeek-R1

寻道AI,探索AI无限可能! 2566

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

利用python模拟火车订票系统

利用python模拟火车订票系统,主要通过制作列表,构建字典查找定位到所需

qq_62791276的博客 3347

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Python学习笔记17:实操案例十四(模拟高铁售票系统,推算几天后的日期)

1.模拟高铁售票系统 使用漂亮的表格模块PrettyTable 这个模块需要预先安装,不然直接导入会报错: 安装办法: https://baijiahao.baidu.com/s?id=1727555443161391840&wfr=spider&for=pc 完成之后就不会报错了: 捕捉异常: 扩展:可以循环售票,可以打印车票等 这个前面都写过类似的功能,此处就偷个懒不写了 2.推算几天后的日期 出现一个小插曲,不小心把Pycharm的界面调成了这样,左边目录栏找不到了。 搜索之后从这里找到了:

bailichen800的博客 1047

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Python习题】判断火车票座位(保姆级图文+实现代码)

【Python习题】判断火车票座位(保姆级图文+实现代码) 我国高铁一等座车座席采用2+2方式布置,每排设有“2+2”方式排列四个座位,以“A、C、D、F”代表,字母“A”和“F”的座位靠窗,字母“C”和“D”靠中间走道。 二等座车座席采用2+3布置,每排设有“3+2”方式排列五个座位,以“A、B、C、D、F”代表,字母“A”和“F”的座位靠窗,字母“C”和“D”靠中间走道,“B”代表三人座中间座席。每个车厢座位排数是1-17,字母不区分大小写。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬

MZH 1万+

Python电影售票系统

Python编程界的一枚小学生,热心分享编程学习经验。

漫步桔田 7342

python模拟高铁售票系统

B站杨淑娟老师实操案例十四代码优化,改进为可循环购票并显示购票结果。 import prettytable as pt #显示坐席 def show_ticket(row_num): tb=pt.PrettyTable() tb.field_names=['行号','座位1','座位2','座位3','座位4','座位5'] for i in range(row_num): lst=[f'第{i+1}行','有票','有票','有票','有票','有票']

记录学习点滴 3041

python基于django+vue的高铁地铁火车订票管理系统

公告管理、订票管理、统计功能(统计(按列车号,时间段)统计售票数量,及剩余数量) 、留言管理。

QQ1963288475的博客 4041

python必背100源代码-100行Python代码实现自动抢火车票(附源码)

前言又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool。下面话不多说了,来一起看看详细的介绍吧。先准备好:12306网站用户名和密码chrome浏览器及下载chromedriver下载Python代码,来自网络整理 [点击下载 | 本地下载 ]代码用的Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览...

q6q6q的专栏 8965

Django计算机毕业设计高铁在线购票系统(程序+LW)Python

在班次信息页面中可以查看类型、起点、终点、日期、出发时间、预计时长、座位类型、票数、价格等内容,进行购票详细的操作;退票信息管理:在退票信息管理页面中可以对索引、班次、类型、起点、终点、日期、出发时间、票数、总价格、退票日期、用户名、姓名、身份证、手机、是否支付、审核回复、审核状态、审核 等内容,进行详情等操作;在订单信息管理页面中可以对索引、班次、类型、起点、终点、日期、出发时间、票数、价格、总价格、购买日期、用户名、身份证、手机、是否支付等内容,进行详情或删除等操作;图4-10班次信息管理界面图。

巧灵计算机程序设计 143

Python实现12306购票程序,在不怕手慢无了~

嗨喽,大家好呀~这里是爱看美女的茜茜呐。

m0_72282564的博客 2175

【Python】实战:模拟高铁售票系统

题目:模拟高铁售票系统 -需求:假设高铁一节车厢的座位数有6行,每行5列,每个座位初始显示“有票”,用户输入座位位置(如,4,3)后,按回车,则该座位显示为“已售”使用到第三方模块prettytable

寒雒的博客 448

【Python自动化脚本】实现高铁票监控并成功购票(2024年版文末附源码地址

2024年更新)python实现高铁票查询与监控购票-源码已测试可用,祝大家春节快乐,购票成功!

PGwanban的博客 4659
上一篇: 【python入门】day26:统计字符串中出现指定字符的次数
下一篇: 【python入门】day28:记录用户登录日志
Next2you
博客等级 码龄7年 1238粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Next2you

你真帅!

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

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

打赏作者

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

抵扣说明:

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

余额充值