用 Python 实现电影订票系统 | 内附源码
一、效果展示
电影
二、整体结构图
三、代码分解
infos.py
一部电影的详细信息适合用 字典 结构来存储,我们可以给字典里添加多个键值对来保存电影的名称、座位表和宣传时用的字符画,比如电影《泰坦尼克号》的详细信息就可以按下面的形式保存到字典 titanic 中:
infos = [{
[video(video-2UqV47AV-1648108859515)(type-csdn)(url-https://live.csdn.net/v/embed/192263)(image-https://video-community.csdnimg.cn/vod-84deb4/bd174f1f15164b04ab3f3585db6c1650/snapshots/6c202799238b4c7abb2637b91e214e29-00002.jpg?auth_key=1648108741-025211d10b814c0f938c0d00a002379f-0-4fb1c01c16bee03fb13dea31b7176948)(title-电影)]'name': '泰坦尼克号','symbol': '''
+==================== 泰坦尼克号 =====================+▄▄▄▄▄▪ ▄▄▄▄▄ ▄▄▄· ▐ ▄ ▪ ▄▄· •██ ██ •██ ▐█ ▀█ •█▌▐█ ██ ▐█ ▌▪▐█.▪ ▐█· ▐█. ▪▄█▀▀█ ▐█▐▐▌ ▐█· ██ ▄▄▐█▌ ·▐█▌ ▐█▌· ▐█ ▪▐▌ ██▐█▌ ▐█▌ ▐███▌▀▀▀ ▀▀▀ ▀▀▀ ▀ ▀ ▀▀ █ ▪▀▀▀ ·▀▀▀
+===================== Titanic =====================+
''','seats': [['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '●', '○', '○', '●'],['○', '○', '●', '○', '●', '○', '○', '○'],['○', '○', '●', '○', '○', '○', '○', '●'],['○', '○', '●', '○', '○', '○', '●', '○'],['●', '○', '○', '○', '●', '●', '●', '●']]},{'name': '雨人','symbol': '''
+====================== 雨人 =======================+,---. .--. ,-..-. .-. .--. .-. .-. | .-.\ / /\ \ |(|| \| | |\ /| / /\ \ | \| | | `-'/ / /__\ \(_)| | | |(\ / |/ /__\ \| | | | ( | __ || || |\ | (_)\/ || __ || |\ | | |\ \ | | |)|| || | |)| | \ / || | |)|| | |)| |_| \)\|_| (_)`-'/( (_) | |\/| ||_| (_)/( (_) (__) (__) '-' '-' (__)
+===================== Rain Man ====================+
''','seats': [['○', '○', '○', '○', '●', '○', '○', '●'],['○', '○', '○', '●', '●', '○', '○', '○'],['○', '●', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '●', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '○']]},{'name': '卡门','symbol': '''
+======================= 卡门 =======================+▄█▄ ██ █▄▄▄▄ █▀▄▀█ ▄███▄ ▄ █▀ ▀▄ █ █ █ ▄▀ █ █ █ █▀ ▀ █ █ ▀ █▄▄█ █▀▀▌ █ ▄ █ ██▄▄ ██ █ █▄ ▄▀ █ █ █ █ █ █ █▄ ▄▀ █ █ █ ▀███▀ █ █ █ ▀███▀ █ █ █ █ ▀ ▀ █ ██ ▀
+====================== Carmen =====================+
''','seats': [['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '●', '●', '○', '○', '●', '●'],['○', '○', '○', '○', '○', '○', '●', '○'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '●', '○', '○', '○', '●']]},{'name': '机器人总动员','symbol': '''
+==================== 机器人总动员 ===================+(`\ .-') /` ('-. ('-. `.( OO ),' ( OO ).-. _( OO) ,--./ .--. / . --. / ,--. ,--. (,------. | | | | \-. \ | |.-') | |.-') | .---' | | | |,.-'-' | | | | OO ) | | OO ) | | | |.'.| |_)\| |_.' | | |`-' | | |`-' |(| '--. | | | .-. |(| '---.'(| '---.' | .--' | ,'. | | | | | | | | | | `---. '--' '--' `--' `--' `------' `------' `------'
+====================== WALL·E =====================+
''','seats': [['●', '○', '○', '○', '○', '○', '○', '○'],['●', '○', '○', '○', '○', '○', '○', '●'],['○', '○', '●', '○', '●', '○', '●', '○'],['○', '○', '○', '○', '○', '○', '○', '●'],['○', '○', '○', '○', '●', '○', '○', '○'],['●', '●', '○', '○', '○', '●', '○', '○']]},{'name': '黑客帝国','symbol': '''
+===================== 黑客帝国 =====================+________ __ ___ __ _ /_ __/ /_ ___ / |/ /___ _/ /______(_) __/ / / __ \/ _ \ / /|_/ / __ `/ __/ ___/ / |/_// / / / / / __/ / / / / /_/ / /_/ / / /> < /_/ /_/ /_/\___/ /_/ /_/\__,_/\__/_/ /_/_/|_|
+==================== The Matrix ===================+
''','seats': [['○', '●', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '●', '●', '○', '○', '●'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '●'],['○', '○', '●', '○', '○', '○', '○', '○']]},
]
seat_book.py
选座系统,需要实现下面这两样需求:
展示所有座位的预订状态,方便用户查看哪些座位还可以预订;
根据用户输入的座位号完成预订。
可以把选座系统抽象成一个类:SeatBooking,这个类包含了两种方法,check_bookings() 用于展示所有座位的预订状态,book_seat() 用于完成预订。
import timeclass SeatBooking:# 展示所有座位的预订信息def check_bookings(self, seats):print("正在为您查询该场次电影的预订状态...")time.sleep(0.7)print('从上到下为 1~6 排,从左至右为 1~8 座')print("======================")for row in seats:time.sleep(0.1)print(' '.join(row))print("======================")time.sleep(0.7)# 获取符合要求的行索引def get_row(self):input_row = input("预订第几排的座位呢?请输入 1~6 之间的数字")valid_row = [str(i + 1) for i in range(6)]while input_row not in valid_row:input_row = input('没有按要求输入哦,请输入 1~6 之间的数字')row = int(input_row) - 1return row# 获取符合要求的列索引def get_col(self):input_column = input('预订这一排的第几座呢?请输入 1~8 之间的数字')valid_column = [str(i + 1) for i in range(8)]while input_column not in valid_column:input_column = input('没有按要求输入哦,请输入 1~8 之间的数字')column = int(input_column) - 1return column# 预订指定座位def book_seat(self, seats):while True:row = self.get_row()column = self.get_col()# 指定座位没有被预订if seats[row][column] == '○':print("正在为您预订指定座位...")time.sleep(0.7)seats[row][column] = '●'print("预订成功!座位号:{}排{}座".format(row + 1, column + 1))break # 结束循环,退出选座# 指定座位已经被预订了else:print("这个座位已经被预订了哦,试试别的吧")time.sleep(0.7)# 预订最靠前的座位def book_seat_at_front(self, seats):print("正在为您预订最靠前的座位...")time.sleep(0.7)# 外循环:遍历 seats 的行for row in range(6):# 内循环:遍历 seats 的列for column in range(8):# 若碰到没有被预订的座位if seats[row][column] == '○':seats[row][column] = '●' # 预订该座位print("预订成功!座位号:{}排{}座".format(row + 1, column + 1))return # 结束函数的执行,返回到它被调用的地方# 没有在循环内部结束程序,说明不存在没有被预订的座位print("非常抱歉
用 Python 实现电影订票系统 | 内附源码相关推荐
- java计算机毕业设计火车订票系统(附源码、数据库)
java计算机毕业设计火车订票系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...
- 计算机毕业设计SSM电影院订票系统【附源码数据库】
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- C语言版-数据结构-期末课程设计-大作业(航空客运订票系统)附源码+实验文档
设计题目:航空客运订票系统 本项目涉及到的知识:指针.结构体数组.链表.参数传递 [问题描述]航空客运订票的业务活动包含查询航线和客票预订信息,可以办理订.退票等,用c语言设计一个程序模拟实现. 一. ...
- spring boot火车票订票系统 毕业设计-附源码171538
火车票订票系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题 ...
- 基于JAVA航空订票系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA航空订票系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA航空订票系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
- 我制作了一个基于Python 的电影订票系统
文章目录 一.效果展示 二.整体结构图 三.代码分解 3.1 infos.py 3.2 seat\_book.py 3.3 film\_selector.py 3.4 main.py 一.效果展示 通 ...
- Python毕设-【人脸签到系统】附源码/Python练手项目/Python毕业设计
本人承诺只做技术分享,永不收费. V----------------->:专栏详情 文章目录 本人承诺只做技术分享,永不收费. V----------------->:专栏详情 一.背景 ...
- 基于微信小程序电影院选座订票系统 计算机毕设源码26840
摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,电影院选座订票系统小程序被用户普遍使用,为方 ...
- 如何解决和异地女朋友一起看电影的需求?(内附源码)
一.这是一件悲伤的故事 我是一名程序员,我和我的女友是异地恋,so sad!!! 一次视频时,她突然来了一句:"我们已经很久没有一起看电影了吧......" "呃...好 ...
- 计算机毕业设计SSM电影网上购票系统【附源码数据库】
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
最新文章
- slf4j 日志监控
- 有了jsRender,妈妈再也不用担心我用jq拼接DOM拼接的一团糟了、页面整齐了、其他伙伴读代码也不那么费劲了...
- Use After Free Tutorial
- JavaScript模块化开发整理
- 香港商务及经济发展局长:看好物联网发展
- macOS Sierra U盘USB启动安装盘方法教程 (全新安装 Mac 系统)
- win10 VScode配置GCC(MinGW)
- OllyDbg笔记-初识PE文件(nag窗口破解)
- 前端基础部分错题记录
- 团队-爬取豆瓣电影TOP250-简单团队一阶段互评
- hp dl360安装rhel6.4时找不到硬盘
- Linux 命令(30)—— scp 命令
- cmd 命令 之 dir 之 强化使用
- 试用版:springboot集成pageoffice实现word在线预览可编辑
- oracle多表查询员工和上级,oracle多表查询之经典面试题
- 建筑有言丨如果大学有一个最好的专业,那就是建筑学
- [python]python的注释格式
- 图标(Icon)和图标按钮(IconButton)
- 数字电路反相器符号_逻辑非门真值表教程和反相器振荡器等效
- HIR夏季挑战赛作品紧急优化
热门文章