目录

  • 一、系统要求
  • 二、用户信息
  • 三、主要代码
  • 四、效果图展示

一、系统要求

电影售票系统程序,应具备以下几点功能:

1.用户认证

系统用户分为用户、管理员两个角色,系统可根据不同用户角色权限进入不同界面,所有用户角色需要通过身份验证才能登录系统进行操作。

2.用户登录

主要实现用户登录系统可查看本人会员信息、购买影票、查看订票、影票退订、修改信息等功能。

3.管理登录

主要实现管理员登录系统可查看会员和管理信息、添加会员、注销会员、查看购票、影票出售、影票退订、查看影票余票和售票、增删管理、增删影片、修改信息等功能。

二、用户信息

数据信息行较多,如小伙伴需要可点击链接前往进行下载: 博客小程序—电影售票系统数据下载

三、主要代码

1.管理系统

import json,time,re
from managements import management_login
from users import users_login
from registered import registered
from back import back
read_movie = open('movie.json', 'r', encoding='utf-8')
movie = json.loads(read_movie.read())
read_user = open('user.json', 'r', encoding='utf-8')
user = json.loads(read_user.read())
read_management = open('management.json', 'r', encoding='utf-8')
management = json.loads(read_management.read())
read_ticket_record = open('ticket_record.json', 'r', encoding='utf-8')
ticket_record = json.loads(read_ticket_record.read())def movie_tickets():while True:permissions = input('请您选择用户操作(1.用户登录 2.注册用户 3. 找回密码 4.退出系统):')if permissions == '1':while True:login = input('请您选择登录权限(1.个人登录 2.管理登录 3.退出登录):')if login == '1':users_login(user, movie, ticket_record)elif login == '2':management_login(management, user, movie, ticket_record)elif login == '3':breakelif permissions == '2':registered(user)elif permissions == '3':back(management, user)elif permissions == '4':breakmovie_tickets()save = open('movie.json', 'w', encoding='utf-8')
json.dump(movie, save, ensure_ascii=False, indent=4)
save = open('user.json', 'w', encoding='utf-8')
json.dump(user, save, ensure_ascii=False, indent=4)
save = open('management.json', 'w', encoding='utf-8')
json.dump(management, save, ensure_ascii=False, indent=4)
save = open('ticket_record.json', 'w', encoding='utf-8')
json.dump(ticket_record, save, ensure_ascii=False, indent=4)

2.管理登录

import  time, re
operation = '''********欢迎使用漫漫影院系统*********1.查看信息  2.添加会员  3.注销会员 4.查看购票  5.影票出售  6.影票退订7.查看余票  8.增删管理  9.增删影片 10.销售记录 11.修改信息 12.退出系统
*********************************'''def management_login(a, b, c, d):account = input('请您输入账号:')password = input('请您输入密码:')if account in a:if a[account][0] == password:time.sleep(0.5)print('密码正确,登录成功!')while True:print(operation)choose = input('请您选择操作选项:')if choose == '1':while True:query = input('请你选择查询选项(1.查询会员 2.查询管理 3.退出查询):')if query == '1':for i in b:time.sleep(0.5)print('会员卡号:{}、会员昵称:{}、会员性别:{}、手机号码:{}'.format(i, b[i][1], b[i][2], b[i][3]))elif query =='2':for i in a:time.sleep(0.5)print('管理账号:{}、管理昵称:{}、管理性别:{}、手机号码:{}'.format(i, a[i][1], a[i][2], a[i][3]))elif query == '3':breakelif choose == '2':while True:add = input('是否需要添加会员(1.需要 2.退出):')if add == '2':breakelse:name = input('请您输入会员昵称:')gender = input('请您输入会员性别:')phone = input('请您输入手机号码:')password = input('请您输入登录密码:')account = []for i in b:account.append(int(i))account.sort()b[str(account[-1] + 1)] = [password, name, gender, phone]time.sleep(0.5)print('注册成功!')time.sleep(0.5)print('会员卡号:{}、登录密码:{}、会员昵称:{}、会员性别:{}、手机号码:{}'.format(str(account[-1] + 1), password,  name, gender,phone))elif choose == '3':while True:delete = input('是否需要注销会员(1.需要 2.取消):')if delete == '2':breakcancel = input('请您输入需要注销会员卡号:')if cancel not in b:print('卡号输入有误!')else:del b[cancel]time.sleep(0.5)print('会员注销成功!')elif choose == '4':while True:query = input('请您选择查询操作(1.查询个人 2.查询全部 3.退出查询):')if query == '1':query_personal = input('请您输入需要查询会员卡号:')if query_personal in d:for i in d[query_personal]:time.sleep(0.5)print('会员卡号:{}、会员昵称:{}、购票影片:{}、影厅座位:{}'.format(query_personal, b[query_personal][1], i, ' '.join(d[query_personal][i])))else:print('未查询到购票信息!')elif query == '2':for x in d:for y in d[x]:if x in b:time.sleep(0.5)print('会员卡号:{}、会员昵称:{}、购票影片:{}、影厅座位:{}'.format(x, b[x][1], y, ' '.join(d[x][y])))else:time.sleep(0.5)print('会员卡号:{}、会员昵称:{}、购票影片:{}、影厅座位:{}'.format(x, a[x][1], y, ' '.join(d[x][y])))elif query == '3':breakelif choose == '5':card_number = ''judge = input('是否有会员卡(1.有卡 2.无卡):')if judge == '1':card_number = input('请您输入会员卡号:')elif judge == '2':card_number = accounttime.sleep(0.5)print('*' * 3 + '电影放映表' + '*' * 3)for x, y in list(enumerate(c, 1)):print(x, y['name'])print('*' * 13)time.sleep(0.5)buy = int(input('请您选择电影场次:'))print('*' * 8 + '电影信息' + '*' * 8)print('影名:{}'.format(c[buy - 1]['name']))print('类别:{}'.format(c[buy - 1]['category']))print('导演:{}'.format(c[buy - 1]['director']))print('演员:{}'.format(c[buy - 1]['actor']))print('*' * 23)while True:time.sleep(0.5)print('*' * 13 + '影厅座位' + '*' * 13)for i in c[buy - 1]['seat']:print('  '.join(i))print('*' * 32)ticket = input('是否继续购票(1.继续 2.退出):')if ticket == '2':breakline_numbers = int(input('请您选择影厅行号:'))seat_numbers = int(input('请您选择影厅座号:'))if c[buy - 1]['seat'][line_numbers][seat_numbers] == '■':print('不好意思,座位已选!')else:c[buy - 1]['seat'][line_numbers][seat_numbers] = '■'time.sleep(0.5)print('购票成功,电影名:{} 座位号:{}排{}号'.format(c[buy - 1]['name'], line_numbers, seat_numbers))if card_number in d and c[buy - 1]['name'] in d[card_number]:d[card_number][c[buy - 1]['name']].append('{}排{}号'.format(line_numbers, seat_numbers))elif card_number in d and c[buy - 1]['name'] not in d[card_number]:d[card_number][c[buy - 1]['name']] = ['{}排{}号'.format(line_numbers, seat_numbers)]else:d[card_number] = {c[buy - 1]['name']: ['{}排{}号'.format(line_numbers, seat_numbers)]}elif choose == '6':while True:unsubscribe = input('是否需要退订影票(1.需要 2.退出):')if unsubscribe == '2':breakelse:card_number = input('请您输入会员卡号:')for i in d[card_number]:if card_number in b:time.sleep(0.5)print('卡号:{} 昵称:{} 影名:{} 座位:{}'.format(card_number, b[card_number][1], i, ' '.join(d[card_number][i])))else:time.sleep(0.5)print('卡号:{} 昵称:{} 影名:{} 座位:{}'.format(card_number, a[card_number][1], i, ' '.join(d[card_number][i])))name = dict(enumerate(d[card_number], 1))for i in name:print(i, name[i])movie_number = int(input('请您选择需要退票电影序号:'))number = dict(enumerate(d[card_number][name[movie_number]], 1))for i in number:print(i, number[i])seat_number = int(input('请您选择需要退票电影座位:'))message = re.findall(r'\d+', number[seat_number])for i in c:if name[movie_number] == i['name']:i['seat'][int(message[0])][int(message[1])] = '□'d[card_number][name[movie_number]].remove(number[seat_number])time.sleep(0.5)print('退票成功!')if not d[card_number][name[movie_number]]:del d[card_number][name[movie_number]]elif choose == '7':more_ticket = []for x in range(len(c)):number = 0for y in c[x]['seat']:number += y.count('□')more_ticket.append(number)time.sleep(0.5)print('影名:{}-余票:{}张'.format(c[x]['name'], more_ticket[x]))elif choose == '8':while True:options = input('请您选择操作选项(1.添加管理 2.删除管理 3.退出系统):')if options == '1':name = input('请您输入管理昵称:')gender = input('请您输入管理性别:')phone = input('请您输入手机号码:')password = input('请您输入登录密码:')account = []for i in a:account.append(int(i))account.sort()a[str(account[-1] + 1)] = [password, name, gender, phone]time.sleep(0.5)print('注册成功!')time.sleep(0.5)print('管理账号:{}、登录密码:{}、管理昵称:{}、管理性别:{}、手机号码:{}'.format(str(account[-1] + 1), password, name, gender, phone))elif options == '2':while True:delete = input('是否继续删除管理员(1.继续 2.退出):')if delete == '2':breakelse:card = input('请您输入删除管理员卡号:')del a[card]time.sleep(0.5)print('删除成功!')elif options == '3':breakelif choose == '9':while True:options = input('请您选择操作选项(1.添加影片 2.删除影片 3.退出系统):')if options == '1':name = input('请您输入影名:')category = input('请您输入类别:')director = input('请您输入导演:')actor = input('请您输入演员:')seat = [[' ', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' '],['1', '□', '□', '□', '□', '□', '□', '□', '□', '□', '1'],['2', '□', '□', '□', '□', '□', '□', '□', '□', '□', '2'],['3', '□', '□', '□', '□', '□', '□', '□', '□', '□', '3'],['4', '□', '□', '□', '□', '□', '□', '□', '□', '□', '4'],['5', '□', '□', '□', '□', '□', '□', '□', '□', '□', '5'],['6', '□', '□', '□', '□', '□', '□', '□', '□', '□', '6'],[' ', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' ']]c.append({'name': name, 'category': category, 'director': director, 'actor': actor,'seat': seat})time.sleep(0.5)print('添加影片成功!')elif options == '2':for x, y in list(enumerate(c, 1)):print(x, y['name'])delete = int(input('请您选择需要删除影片序号:'))c.pop(delete - 1)time.sleep(0.5)print('影片删除成功!')elif options == '3':breakelif choose == '10':sales_ticket = []for x in range(len(c)):number = 0for y in c[x]['seat']:number += y.count('■')sales_ticket.append(number)time.sleep(0.5)print('影名:{}-售出:{}张'.format(c[x]['name'], sales_ticket[x]))elif choose == '11':print('管理卡号:{}、管理昵称:{}、管理性别:{}、手机号码:{}'.format(account, a[account][1], a[account][2], a[account][3]))while True:continues = input('是否需要修改信息(1.需要 2.退出)')if continues == '2':breakelse:modify = input('请您选择修改选项(1.管理昵称 2.管理性别 3.手机号码):')if modify == '1':a[account][1] = input('请您输入管理昵称:')elif modify == '2':a[account][2] = input('请您输入管理性别:')elif modify == '3':a[account][3] = input('请您输入手机号码:')time.sleep(0.5)print('信息修改成功!')elif choose == '12':breakelse:print('密码错误,登录失败!')else:print('账号错误,请您核对!')

3.用户登录

import re, timedef users_login(x, y, z):account = input('请您输入账号:')password = input('请您输入密码:')if account in x:if x[account][0] == password:time.sleep(0.5)print('密码正确,登录成功!')while True:operation = input('请您选择操作(1.会员信息 2.购买影票 3.购票信息 4.影票退订 5.修改信息 6.退出系统):')if operation == '1':time.sleep(0.5)print('*' * 7 + '会员信息' + '*' * 7)print('会员卡号:{}'.format(account))print('会员昵称:{}'.format(x[account][1]))print('会员性别:{}'.format(x[account][2]))print('手机号码:{}'.format(x[account][3]))print('*' * 21)elif operation == '2':time.sleep(0.5)print('*' * 3 + '电影放映表' + '*' * 3)for a, b in list(enumerate(y, 1)):print(a, b['name'])print('*' * 13)buy = int(input('请您选择电影场次:'))time.sleep(0.5)print('*' * 8 + '电影信息' + '*' * 8)print('影名:{}'.format(y[buy - 1]['name']))print('类别:{}'.format(y[buy - 1]['category']))print('导演:{}'.format(y[buy - 1]['director']))print('演员:{}'.format(y[buy - 1]['actor']))print('*' * 23)while True:time.sleep(0.5)print('*' * 13 + '影厅座位' + '*' * 13)for i in y[buy - 1]['seat']:print('  '.join(i))print('*' * 32)choose = input('是否继续购票(1.继续 2.退出):')if choose == '2':breakline_numbers = int(input('请您选择影厅行号:'))seat_numbers = int(input('请您选择影厅座号:'))if y[buy - 1]['seat'][line_numbers][seat_numbers] == '■':print('不好意思,座位已选!')else:y[buy - 1]['seat'][line_numbers][seat_numbers] = '■'time.sleep(0.5)print('购票成功,电影名:{} 座位号:{}排{}号'.format(y[buy - 1]['name'], line_numbers, seat_numbers))if account in z and y[buy - 1]['name'] in z[account]:z[account][y[buy - 1]['name']].append('{}排{}号'.format(line_numbers, seat_numbers))elif account in z and y[buy - 1]['name'] not in z[account]:z[account][y[buy - 1]['name']] = ['{}排{}号'.format(line_numbers, seat_numbers)]else:z[account] = {y[buy - 1]['name']: ['{}排{}号'.format(line_numbers, seat_numbers)]}elif operation == '3':if account in z:for i in z[account]:time.sleep(0.5)print('卡号:{} 昵称:{} 影名:{} 座位:{}'.format(account, x[account][1], i,' '.join(z[account][i])))else:print('未查询到购票信息')elif operation == '4':if account in z:for i in z[account]:time.sleep(0.5)print('卡号:{} 昵称:{} 影名:{} 座位:{}'.format(account, x[account][1], i,' '.join(z[account][i])))print('未查询到订票信息')while True:unsubscribe = input('是否需要退订影票(1.需要 2.退出):')if unsubscribe == '2':breakelse:name = dict(enumerate(z[account], 1))for i in name:print(i, name[i])movie_number = int(input('请您选择需要退票电影序号:'))number = dict(enumerate(z[account][name[movie_number]], 1))for i in number:print(i, number[i])seat_number = int(input('请您选择需要退票电影座位:'))message = re.findall(r'\d+', number[seat_number])for i in y:if name[movie_number] == i['name']:i['seat'][int(message[0])][int(message[1])] = '□'z[account][name[movie_number]].remove(number[seat_number])time.sleep(0.5)print('退票成功!')if not z[account][name[movie_number]]:del z[account][name[movie_number]]elif operation == '5':time.sleep(0.5)print('*' * 7 + '会员信息' + '*' * 7)print('会员卡号:{}'.format(account))print('会员昵称:{}'.format(x[account][1]))print('会员性别:{}'.format(x[account][2]))print('手机号码:{}'.format(x[account][3]))print('*' * 21)while True:modify = input('是否继续修改(1.继续 2.退出):')if modify == '2':breakchoose = input('请您选择修改内容(1.会员昵称 2.会员性别 3.手机号码):')if choose == '1':x[account][1] = input('请输入会员昵称:')elif choose == '2':x[account][2] = input('请输入会员性别:')elif choose == '3':x[account][3] = input('请输入手机号码:')elif operation == '6':print('系统退出成功,欢迎下次使用!')breakelse:print('密码错误,登录失败!')else:print('账号错误,请您核对!')

4.注册用户

def registered(x):name = input('请您输入会员昵称:')gender = input('请您输入会员性别:')phone = input('请您输入手机号码:')password = input('请您输入登录密码:')account = []for i in x:account.append(int(i))account.sort()x[str(account[-1] + 1)] = [password, name, gender, phone]print('注册成功!')print('会员卡号:{}、登录密码:{}、会员昵称:{}、会员性别:{}、手机号码:{}'.format(str(account[-1] + 1), password, name, gender, phone))

5.找回密码

def back(x, y):account = input('请您输入登录账号:')if account in x:while True:need = input('是否需要找回密码(1.需要 2.取消):')if need == '2':breakphone = input('请您输入预留手机号码:')if phone == x[account][3]:x[account][0] = input('请您输入新密码:')print('号码正确,修改成功!')else:print('号码错误,请您核实!')elif account in y:while True:need = input('是否需要找回密码(1.需要 2.取消):')if need == '2':breakphone = input('请您输入预留手机号码:')if phone == y[account][3]:y[account][0] = input('请您输入新密码:')print('号码正确,修改成功!')else:print('号码错误,请您核实!')else:print('账号错误,请您核对!')

四、效果图展

以上就是基于Python实现电影售票系统的详细内容,如有疑问欢迎留言讨论!

如何用Python实现电影售票系统相关推荐

  1. 基于Python实现电影售票系统

    目录 一.系统要求 二.用户信息 三.主要代码 一.系统要求 电影售票系统程序,应具备以下几点功能: 1.用户认证 系统用户分为用户.管理员两个角色,系统可根据不同用户角色权限进入不同界面,所有用户角 ...

  2. python eureka服务发现_Spring Cloud版——电影售票系统—Eureka微服务注册与发现

    一.服务提供者与服务消费者 使用微服务构建的是分布式系统,微服务之间通过网络进行通信.我们使用服务提供者与服务消费者来描述微服务之间的调用关系. 名称 定义 服务提供者 服务的被调用方(为其他服务提供 ...

  3. 计算机毕业设计Java电影售票系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java电影售票系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java电影售票系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...

  4. 电影售票系统遇到的问题

    电影售票系统遇到的问题(*暂时名字) 实现分页 <el-pagination@size-change="handleSizeChange"@current-change=&q ...

  5. 移动电影售票系统案例分析

    智能手机及移动互联网的普及,手机购票成为网络购物常见的应用形式之一.本项目名称为:本项目名称为:XX 票务(可以是电影票.演出票-)销售系统,系统目标是实现在线票务发布,销售,验票等一站式票务服务,要 ...

  6. javaweb JAVA JSP电影院在线订票系统 JSP电影购票系统 JSP电影售票系统 JSP电影票预订系统)

    javaweb JAVA JSP电影院在线订票系统 JSP电影购票系统  JSP电影售票系统  JSP电影票预订系统) protected void doGet(HttpServletRequest ...

  7. java web电影售票系统

    电影售票系统是基于web的电影购票网站,注册 登录用户可在线浏览热映电影信息,电影排行 榜,查看附近影院,支持在线购票,实时支付 等.该系统U界面简洁大方,操作简单,实时 更新电影影院数据. 运行环境 ...

  8. 基于python的火车票售票系统/基于django火车票务网站/火车购票系统

    摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,火车票售票系统当然也不能排除在外.火车票售票系统是以实际运用为开发背景,运用软件工 ...

  9. MonkeyEye电影售票系统--活动图

    案例来源:SYSU SE305 课程大作业.互联网售票软件是比较常见的软件系统.通常由多个零售系统和多个供给系统系统. 机票.酒店房间.电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型 ...

  10. Moviebooking电影售票系统--活动图

    案例来源:SYSU SE305 课程大作业.互联网售票软件是比较常见的软件系统.通常由多个零售系统和多个供给系统系统. 机票.酒店房间.电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型 ...

最新文章

  1. 系统搜索功能不能使用,弹出“无法找到运行搜索助理需要的一个文件”
  2. 超1亿人选择朋友圈三天可见,背后的原因值得深思
  3. 漂亮简洁的宇宙人404单页html源码
  4. 6-3 递增的整数序列链表的插入 (10 分)
  5. 新能源汽车累计补贴审核情况出炉:比亚迪、吉利两家独大
  6. 游戏筑基开发之单链表及其增删改查(C语言)
  7. 饿了么:日订单量超900万的架构设计及演进之路
  8. hudson构建配置
  9. WPF 实现无边框窗口两种方法
  10. 瑞吉外卖——菜品展示功能(移动端)
  11. oracle Error: PLS-00905: 对象 HBH.QRY_QUERYDATA 无效
  12. 安卓动画的简单实现方法(Animation和AnimationDrawable)
  13. EBS MO_GLOBAL包的分析
  14. 〖ChatGPT实践指南 - 零基础扫盲篇③〗- 开始使用 ChatGPT 并访问 OpenAI 获取 API Keys
  15. miniui展示日历能点击_南怀瑾先生2021日历,人生难题问南师!
  16. 30种常用管理工具模型整理分享(上)
  17. Git Bash中出现:error: failed to push some refs to ‘https://gitee.com/xxx/xxx.git‘错误的解决方法
  18. 搭建DNS服务器做域名解析
  19. android获取一天的毫秒时间,Android关于获取时间的记录(小结)
  20. thinkpad笔记本自带相机分辨率设置

热门文章

  1. K8S 还没用,K9S 又是什么鬼?
  2. wps office2019PC版和Mac版_来试试这款政府版WPS吧
  3. 使用PLSQL导出oracle表结构,表数据;导入数据
  4. python安卓脚本精灵使用教程_按键精灵安卓按键初体验—乱斗西游2自动签到
  5. HTML三种对密码加密的方法
  6. scratch动态三角形拖动/自制素材/少儿编程scratch教研教案课件课程素材脚本
  7. W3Cschoool菜鸟教程
  8. hive和oracle常用函数汇总及报错解决方法总结
  9. 面试必问的 Redis:数据结构和基础概念
  10. android 动画方式,Android动画实现方式的汇总