完成地铁简易购票系统的Python代码 1.成人票5.0元一张 儿童票2.5元一张 2.输入购买成人票数量 输入购买儿童票数量 3.显示需要支付的金额

时间: 2023-04-02 08:00:45 浏览: 64
以下是地铁简易购票系统的 Python 代码,可以实现输入购买成人票数量和儿童票数量,计算需要支付的金额: adult_price = 5. child_price = 2.5 adult_num = int(input("请输入购买成人票数量:")) child_num = int(input("请输入购买儿童票数量:")) total_price = adult_num * adult_price + child_num * child_price print("需要支付的金额为:", total_price, "元")
相关问题

用python写一个火车票购买系统,有成人与儿童票,可以查询余票和退票等

好的,下面是一个简单的实现示例: ```python import random # 火车票信息 tickets = [ {"train_no": "G1234", "from_station": "北京", "to_station": "上海", "start_time": "08:00", "end_time": "13:00", "price": 500, "adult_num": 100, "child_num": 50}, {"train_no": "G2345", "from_station": "上海", "to_station": "北京", "start_time": "14:00", "end_time": "19:00", "price": 500, "adult_num": 80, "child_num": 30}, {"train_no": "G3456", "from_station": "北京", "to_station": "广州", "start_time": "09:00", "end_time": "18:00", "price": 800, "adult_num": 120, "child_num": 60}, {"train_no": "G4567", "from_station": "广州", "to_station": "北京", "start_time": "10:00", "end_time": "19:00", "price": 800, "adult_num": 100, "child_num": 40}, ] # 用户信息 users = [ {"name": "张三", "id_card": "110101199001010001", "order_history": []}, {"name": "李四", "id_card": "110101199101010001", "order_history": []}, ] # 订单号 order_id = 1 # 查询余票 def query_tickets(from_station, to_station, date): for ticket in tickets: if ticket["from_station"] == from_station and ticket["to_station"] == to_station and ticket["start_time"].startswith(date): print("车次:{},出发时间:{},到达时间:{},价格:{},成人票余票:{},儿童票余票:{}".format(ticket["train_no"], ticket["start_time"], ticket["end_time"], ticket["price"], ticket["adult_num"], ticket["child_num"])) # 购买车票 def buy_ticket(train_no, from_station, to_station, date, adult_num, child_num, name, id_card): global order_id for ticket in tickets: if ticket["train_no"] == train_no and ticket["from_station"] == from_station and ticket["to_station"] == to_station and ticket["start_time"].startswith(date): if ticket["adult_num"] >= adult_num and ticket["child_num"] >= child_num: ticket["adult_num"] -= adult_num ticket["child_num"] -= child_num order = {"order_id": order_id, "name": name, "id_card": id_card, "train_no": train_no, "from_station": from_station, "to_station": to_station, "date": date, "adult_num": adult_num, "child_num": child_num, "price": ticket["price"] * adult_num} order_id += 1 for user in users: if user["name"] == name and user["id_card"] == id_card: user["order_history"].append(order) break else: user = {"name": name, "id_card": id_card, "order_history": [order]} users.append(user) print("购票成功,订单号为:{}".format(order["order_id"])) else: print("余票不足,购票失败") # 退票 def refund_ticket(order_id, name, id_card): for user in users: if user["name"] == name and user["id_card"] == id_card: for order in user["order_history"]: if order["order_id"] == order_id: for ticket in tickets: if ticket["train_no"] == order["train_no"] and ticket["from_station"] == order["from_station"] and ticket["to_station"] == order["to_station"] and ticket["start_time"].startswith(order["date"]): ticket["adult_num"] += order["adult_num"] ticket["child_num"] += order["child_num"] user["order_history"].remove(order) print("退票成功") return else: print("订单不存在") return else: print("用户不存在") # 查询订单 def query_order(order_id=None, name=None, id_card=None): if order_id: for user in users: for order in user["order_history"]: if order["order_id"] == order_id: print("订单号:{},姓名:{},身份证号:{},车次:{},出发地:{},目的地:{},日期:{},成人票数量:{},儿童票数量:{},价格:{}".format(order["order_id"], order["name"], order["id_card"], order["train_no"], order["from_station"], order["to_station"], order["date"], order["adult_num"], order["child_num"], order["price"])) return else: print("订单不存在") elif name and id_card: for user in users: if user["name"] == name and user["id_card"] == id_card: for order in user["order_history"]: print("订单号:{},姓名:{},身份证号:{},车次:{},出发地:{},目的地:{},日期:{},成人票数量:{},儿童票数量:{},价格:{}".format(order["order_id"], order["name"], order["id_card"], order["train_no"], order["from_station"], order["to_station"], order["date"], order["adult_num"], order["child_num"], order["price"])) else: print("该用户没有购买火车票") else: print("用户不存在") # 测试 if __name__ == "__main__": # 查询余票 query_tickets("北京", "上海", "2022-01-01") # 购买车票 buy_ticket("G1234", "北京", "上海", "2022-01-01", 2, 1, "张三", "110101199001010001") # 退票 refund_ticket(1, "张三", "110101199001010001") # 查询订单 query_order(1) query_order(name="张三", id_card="110101199001010001") ``` 这个示例实现了查询余票、购买车票、退票、查询订单等功能。你可以根据需求进行修改和扩展。

用Python写一个简易的高铁购票系统,有登录系统,有几等座,成人票和儿童票,显示票数,退票

好的,我可以为你提供这个高铁购票系统的基本代码框架,你可以在此基础上进行完善和修改。以下是代码: ```python # 定义票价和座位等级 price = {'一等座': 100, '二等座': 80} level = ['一等座', '二等座'] # 定义车票信息 ticket_info = { 'G1001': {'from': '北京', 'to': '上海', 'date': '2022-01-01', '一等座': 20, '二等座': 50}, 'G1002': {'from': '北京', 'to': '广州', 'date': '2022-01-02', '一等座': 30, '二等座': 60}, 'G1003': {'from': '上海', 'to': '广州', 'date': '2022-01-03', '一等座': 10, '二等座': 40}, } # 定义用户信息 user_info = { 'user1': {'password': '123456', 'name': '张三', 'tickets': {}}, 'user2': {'password': 'abcdef', 'name': '李四', 'tickets': {}}, } # 登录系统 def login(): username = input('请输入用户名:') password = input('请输入密码:') if username in user_info and user_info[username]['password'] == password: print('登录成功') return username else: print('用户名或密码错误') return None # 查询车票 def query_ticket(): from_station = input('请输入出发站:') to_station = input('请输入到达站:') date = input('请输入出发日期(格式为YYYY-MM-DD):') print('车次\t出发站\t到达站\t出发时间\t到达时间\t一等座\t二等座') for k, v in ticket_info.items(): if v['from'] == from_station and v['to'] == to_station and v['date'] == date: print(f'{k}\t{v["from"]}\t{v["to"]}\t{v["date"]} 08:00\t{v["date"]} 12:00\t{v["一等座"]}\t{v["二等座"]}') # 购买车票 def buy_ticket(username): print('请选择要购买的车次和座位等级:') for k, v in ticket_info.items(): print(f'{k} {v["from"]} - {v["to"]} {v["date"]} 一等座:{v["一等座"]} 二等座:{v["二等座"]}') train_no = input('请输入车次:') if train_no not in ticket_info: print('车次不存在') return seat_level = input('请输入座位等级(一等座/二等座):') if seat_level not in level: print('座位等级输入错误') return num = int(input('请输入购买数量:')) if num <= 0: print('购买数量输入错误') return if ticket_info[train_no][seat_level] < num: print('余票不足') return total_price = price[seat_level] * num print(f'总价为:{total_price}元') confirm = input('是否确认购买(Y/N):') if confirm == 'Y': # 减少余票数量 ticket_info[train_no][seat_level] -= num # 记录购票信息 user_info[username]['tickets'][train_no] = user_info[username]['tickets'].get(train_no, {level[0]: 0, level[1]: 0}) user_info[username]['tickets'][train_no][seat_level] += num print('购买成功') else: print('已取消购买') # 查询购票信息 def query_order(username): print('您的购票信息如下:') for k, v in user_info[username]['tickets'].items(): print(f'车次:{k} 一等座:{v[level[0]]} 二等座:{v[level[1]]}') # 退票 def refund_ticket(username): print('请选择要退票的车次和座位等级:') for k, v in user_info[username]['tickets'].items(): print(f'车次{k} 一等座:{v[level[0]]} 二等座:{v[level[1]]}') train_no = input('请输入车次:') if train_no not in user_info[username]['tickets']: print('车次不存在') return seat_level = input('请输入座位等级(一等座/二等座):') if seat_level not in level: print('座位等级输入错误') return num = int(input('请输入退票数量:')) if num <= 0 or num > user_info[username]['tickets'][train_no][seat_level]: print('退票数量输入错误') return refund_price = price[seat_level] * num print(f'退票金额为:{refund_price}元') confirm = input('是否确认退票(Y/N):') if confirm == 'Y': # 增加余票数量 ticket_info[train_no][seat_level] += num # 更新购票信息 user_info[username]['tickets'][train_no][seat_level] -= num print('退票成功') else: print('已取消退票') # 主函数 def main(): username = login() if not username: return while True: print('请选择您要进行的操作:') print('1. 查询车票') print('2. 购买车票') print('3. 查询购票信息') print('4. 退票') print('5. 退出系统') choice = input() if choice == '1': query_ticket() elif choice == '2': buy_ticket(username) elif choice == '3': query_order(username) elif choice == '4': refund_ticket(username) elif choice == '5': break else: print('输入错误,请重新输入') if __name__ == '__main__': main() ``` 这个系统实现了登录、查询车票、购买车票、查询购票信息、退票这几个功能,你可以根据自己的需要进行修改和完善。

相关推荐

最新推荐

recommend-type

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

又到年底了,相信对于在外地的朋友们来说,火车票是到年底最头痛的一件事了,但作为...快发挥你的特长,下面这篇文章主要给大家介绍了如果通过100行Python代码实现自动抢火车票的相关资料,需要的朋友可以参考下。
recommend-type

基于SSH的火车票购票系统论文

一套完整论文,包括:绪论;开题报告;英文翻译;目录;数据库;数据表;总结;心得。完整的论文模式。
recommend-type

javaweb电影购票系统开题报告.doc

javaweb电影购票系统开题报告javaweb电影购票系统开题报告javaweb电影购票系统开题报告javaweb电影购票系统开题报告javaweb电影购票系统开题报告
recommend-type

基于android电影购票系统设计与实现开题报告.docx

电影购票系统是在当今不断发展的社会现状中产生出来的,在以往没有网络技术的情况下,一般人都是去电影院售票窗口来购买。现如今,随着电影的不断增多,客流量的增长,老式的售票方法已经满足不了现在日益增长的需求...
recommend-type

数据库课程设计机票预定系统

通过机票预定系统的构造以及购票人的信息还有机票的相关信息制成表格,输入到数据库中,使之能够进行查询、修改、删除并且与机票预定系统执行相同的操作。需求分析阶段就是要研究我所作的机票预定系统的具体分类和...
recommend-type

电力电子系统建模与控制入门

"该资源是关于电力电子系统建模及控制的课程介绍,包含了课程的基本信息、教材与参考书目,以及课程的主要内容和学习要求。" 电力电子系统建模及控制是电力工程领域的一个重要分支,涉及到多学科的交叉应用,如功率变换技术、电工电子技术和自动控制理论。这门课程主要讲解电力电子系统的动态模型建立方法和控制系统设计,旨在培养学生的建模和控制能力。 课程安排在每周二的第1、2节课,上课地点位于东12教401室。教材采用了徐德鸿编著的《电力电子系统建模及控制》,同时推荐了几本参考书,包括朱桂萍的《电力电子电路的计算机仿真》、Jai P. Agrawal的《Powerelectronicsystems theory and design》以及Robert W. Erickson的《Fundamentals of Power Electronics》。 课程内容涵盖了从绪论到具体电力电子变换器的建模与控制,如DC/DC变换器的动态建模、电流断续模式下的建模、电流峰值控制,以及反馈控制设计。还包括三相功率变换器的动态模型、空间矢量调制技术、逆变器的建模与控制,以及DC/DC和逆变器并联系统的动态模型和均流控制。学习这门课程的学生被要求事先预习,并尝试对书本内容进行仿真模拟,以加深理解。 电力电子技术在20世纪的众多科技成果中扮演了关键角色,广泛应用于各个领域,如电气化、汽车、通信、国防等。课程通过列举各种电力电子装置的应用实例,如直流开关电源、逆变电源、静止无功补偿装置等,强调了其在有功电源、无功电源和传动装置中的重要地位,进一步凸显了电力电子系统建模与控制技术的实用性。 学习这门课程,学生将深入理解电力电子系统的内部工作机制,掌握动态模型建立的方法,以及如何设计有效的控制系统,为实际工程应用打下坚实基础。通过仿真练习,学生可以增强解决实际问题的能力,从而在未来的工程实践中更好地应用电力电子技术。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

图像写入的陷阱:imwrite函数的潜在风险和规避策略,规避图像写入风险,保障数据安全

![图像写入的陷阱:imwrite函数的潜在风险和规避策略,规避图像写入风险,保障数据安全](https://static-aliyun-doc.oss-accelerate.aliyuncs.com/assets/img/zh-CN/2275688951/p86862.png) # 1. 图像写入的基本原理与陷阱 图像写入是计算机视觉和图像处理中一项基本操作,它将图像数据从内存保存到文件中。图像写入过程涉及将图像数据转换为特定文件格式,并将其写入磁盘。 在图像写入过程中,存在一些潜在陷阱,可能会导致写入失败或图像质量下降。这些陷阱包括: - **数据类型不匹配:**图像数据可能与目标文
recommend-type

protobuf-5.27.2 交叉编译

protobuf(Protocol Buffers)是一个由Google开发的轻量级、高效的序列化数据格式,用于在各种语言之间传输结构化的数据。版本5.27.2是一个较新的稳定版本,支持跨平台编译,使得可以在不同的架构和操作系统上构建和使用protobuf库。 交叉编译是指在一个平台上(通常为开发机)编译生成目标平台的可执行文件或库。对于protobuf的交叉编译,通常需要按照以下步骤操作: 1. 安装必要的工具:在源码目录下,你需要安装适合你的目标平台的C++编译器和相关工具链。 2. 配置Makefile或CMakeLists.txt:在protobuf的源码目录中,通常有一个CMa
recommend-type

SQL数据库基础入门:发展历程与关键概念

本文档深入介绍了SQL数据库的基础知识,首先从数据库的定义出发,强调其作为数据管理工具的重要性,减轻了开发人员的数据处理负担。数据库的核心概念是"万物皆关系",即使在面向对象编程中也有明显区分。文档讲述了数据库的发展历程,从早期的层次化和网状数据库到关系型数据库的兴起,如Oracle的里程碑式论文和拉里·埃里森推动的关系数据库商业化。Oracle的成功带动了全球范围内的数据库竞争,最终催生了SQL这一通用的数据库操作语言,统一了标准,使得关系型数据库成为主流。 接着,文档详细解释了数据库系统的构成,包括数据库本身(存储相关数据的集合)、数据库管理系统(DBMS,负责数据管理和操作的软件),以及数据库管理员(DBA,负责维护和管理整个系统)和用户应用程序(如Microsoft的SSMS)。这些组成部分协同工作,确保数据的有效管理和高效处理。 数据库系统的基本要求包括数据的独立性,即数据和程序的解耦,有助于快速开发和降低成本;减少冗余数据,提高数据共享性,以提高效率;以及系统的稳定性和安全性。学习SQL时,要注意不同数据库软件可能存在的差异,但核心语言SQL的学习是通用的,后续再根据具体产品学习特异性。 本文档提供了一个全面的框架,涵盖了SQL数据库从基础概念、发展历程、系统架构到基本要求的方方面面,对于初学者和数据库管理员来说是一份宝贵的参考资料。