如何用Python实现电影售票系统

本文介绍了使用Python开发电影售票系统的过程,包括系统要求、用户信息管理、主要代码实现及功能展示。系统功能涵盖用户认证、登录、购票、管理等,提供数据下载链接和关键模块的代码示例。
摘要由CSDN通过智能技术生成

目录

一、系统要求

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

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':
                    break
 
        elif permissions == '2':
            registered(user)
        elif permissions == '3':
            back(management, user)
        elif permissions == '4':
            break
 
 
movie_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':
                            break
 
                elif choose == '2':
                    while True:
                        add = input('是否需要添加会员(1.需要 2.退出):')
                        if add == '2':
                            break
                        else:
                            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':
             
#这只是一个半成品,只是实现了,一个完整的订票过程,对于,如果刷票,自己研究 #简单过程 # 第一、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 -*-,(当然,自己转换也是可以的) # 出于这一个控制台信息,所以,识别码的图片在脚本同一目录 #得到头信息
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

知阅码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值