Python电影票购票系统

dianying = {1: {'name': '战 狼', 'money': '99元'},
            2: {'name': '金刚川', 'money': '79元'},
            3: {'name': '功 夫', 'money': '78元'},
            4: {'name': '大闹天宫', 'money': '80元'}}

zuoweibiao = {1: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'},
              2: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'},
              3: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'},
              4: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'},
              5: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'},
              6: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'},
              7: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'},
              8: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'},
              9: {'列1': '有座', '列2': '有座', '列3': '有座', '列4': '有座', '列5': '有座', '列6': '有座', '列7': '有座', '列8': '有座'}, }

piaoku = {1: {}}


def select():
    print('编号\t\t电影名\t\t价格')
    l = list(dianying.keys())
    for x in l:
        s1 = dianying.get(x)
        s2 = list(s1.values())
        print('%d\t\t%s\t\t%s' % (x, s2[0], s2[1]))


def selectzuowei():
    print('排\t\t1列\t\t2列\t\t3列\t\t4列\t\t5列\t\t6列\t\t7列\t\t8列')
    l = list(zuoweibiao.keys())
    for x in l:
        s1 = zuoweibiao.get(x)
        s2 = list(s1.values())
        print('%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s' % (
            x, s2[0], s2[1], s2[2], s2[3], s2[4], s2[5], s2[6], s2[7]))


def dingpiao():
    while True:
        select()
        id = int(input('(输入0退出)请输入您选择的电影的编号:'))
        if id == 0:
            break
        elif id == 1:
            name = '战 狼'
            zhangshu = int(input('(输入0退出)请输入几张票:'))
            if zhangshu == 0:
                continue
            else:
                piaojia = 99 * zhangshu
                zuowei = dingzuo(zuoweibiao, zhangshu)
                if zuowei == []:
                    continue
                else:
                    m = {'name': name, 'piaojia': piaojia, 'zhangshu': zhangshu, 'zuowei': zuowei}
                    l1 = len(piaoku)
                    l2 = list(piaoku.keys())
                    newpiaoku = {l2[l1 - 1] + 1: m}
                    piaoku.update(newpiaoku)
                    print('订票成功!')
                    break
        elif id == 2:
            name = '金刚川'
            zhangshu = int(input('(输入0退出)请输入几张票:'))
            if zhangshu == 0:
                continue
            else:
                piaojia = 79 * zhangshu
                zuowei = dingzuo(zuoweibiao, zhangshu)
                m = {'name': name, 'piaojia': piaojia, 'zhangshu': zhangshu, 'zuowei': zuowei}
                l1 = len(piaoku)
                l2 = list(piaoku.keys())
                newpiaoku = {l2[l1 - 1] + 1: m}
                piaoku.update(newpiaoku)
                print('订票成功!')
                break
        elif id == 3:
            name = '功 夫'
            zhangshu = int(input('(输入0退出)请输入几张票:'))
            if zhangshu == 0:
                continue
            else:
                piaojia = 78 * zhangshu
                zuowei = dingzuo(zuoweibiao, zhangshu)
                m = {'name': name, 'piaojia': piaojia, 'zhangshu': zhangshu, 'zuowei': zuowei}
                l1 = len(piaoku)
                l2 = list(piaoku.keys())
                newpiaoku = {l2[l1 - 1] + 1: m}
                piaoku.update(newpiaoku)
                print('订票成功!')
                break
        elif id == 4:
            name = '大闹天宫'
            zhangshu = int(input('(输入0退出)请输入几张票:'))
            if zhangshu == 0:
                continue
            else:
                piaojia = 80 * zhangshu
                zuowei = dingzuo(zuoweibiao, zhangshu)
                m = {'name': name, 'piaojia': piaojia, 'zhangshu': zhangshu, 'zuowei': zuowei}
                l1 = len(piaoku)
                l2 = list(piaoku.keys())
                newpiaoku = {l2[l1 - 1] + 1: m}
                piaoku.update(newpiaoku)
                print('订票成功!')
                break
        else:
            print('没有这个选项!请重新输入')
            continue



def dingzuo(zuoweibiao, zhangshu):
    zuowei = []
    for i in range(zhangshu):
        while True:
            selectzuowei()
            x = int(input('(输入0退出)请输入您选择座位的排:'))
            if x == 0:
                break
            else:
                if 0 < x < 10:
                    y = int(input('(输入0退出)请输入您选择座位的列:'))
                    if x == 0:
                        break
                    else:
                        if 0 < x < 9:
                            s = zuoweibiao.get(x)
                            s2 = list(s.values())
                            if y == 1:
                                if s2[1] == '没座':
                                    print('这个座位有人了!请重新选择!')
                                    continue
                                else:
                                    genggai(zuoweibiao, x, y)
                                    break
                            elif y == 2:
                                if s2[2] == '没座':
                                    print('这个座位有人了!请重新选择!')
                                    continue
                                else:
                                    genggai(zuoweibiao, x, y)
                                    break
                            elif y == 3:
                                if s2[3] == '没座':
                                    print('这个座位有人了!请重新选择!')
                                    continue
                                else:
                                    genggai(zuoweibiao, x, y)
                                    break
                            elif y == 4:
                                if s2[4] == '没座':
                                    print('这个座位有人了!请重新选择!')
                                    continue
                                else:
                                    genggai(zuoweibiao, x, y)
                                    break
                            elif y == 5:
                                if s2[5] == '没座':
                                    print('这个座位有人了!请重新选择!')
                                    continue
                                else:
                                    genggai(zuoweibiao, x, y)
                                    break
                            elif y == 6:
                                if s2[6] == '没座':
                                    print('这个座位有人了!请重新选择!')
                                    continue
                                else:
                                    genggai(zuoweibiao, x, y)
                                    break
                            elif y == 7:
                                if s2[7] == '没座':
                                    print('这个座位有人了!请重新选择!')
                                    continue
                                else:
                                    genggai(zuoweibiao, x, y)
                                    break
                            elif y == 8:
                                if s2[8] == '没座':
                                    print('这个座位有人了!请重新选择!')
                                    continue
                                else:
                                    genggai(zuoweibiao, x, y)
                                    break
                        else:
                            print('没有这个选项!请重新输入')
                            continue
                else:
                    print('没有这个选项!请重新输入')
                    continue
        if x ==0:
            break
        else:
            zuowei1 = (x, y)
            zuowei.append(zuowei1)
    return zuowei


def genggai(zuoweibiao, x, y):
    yuanzuowei = zuoweibiao.get(x)
    a = '没座'
    if y == 1:
        yuanzuowei.update(列1=a)
    elif y == 2:
        yuanzuowei.update(列2=a)
    elif y == 3:
        yuanzuowei.update(列3=a)
    elif y == 4:
        yuanzuowei.update(列4=a)
    elif y == 5:
        yuanzuowei.update(列5=a)
    elif y == 6:
        yuanzuowei.update(列6=a)
    elif y == 7:
        yuanzuowei.update(列7=a)
    elif y == 8:
        yuanzuowei.update(列8=a)
    print('选座成功!')
    selectzuowei()


def selectpiao():
    panduan = len(list(piaoku.values()))
    if panduan > 1:
        print('编号\t\t电影名\t\t票价\t\t张数\t\t座位')
        l = list(piaoku.keys())
        l.pop(0)
        for x in l:
            s1 = piaoku.get(x)
            s2 = list(s1.values())
            print('%d\t\t%s\t\t%d\t\t%d\t\t' % (x - 1, s2[0], s2[1], s2[2]), s2[3])
    else:
        print('您还没有订票呢!')


def tueizuo(x, y):
    yuanzuowei = zuoweibiao.get(x)
    a = '有座'
    if y == 1:
        yuanzuowei.update(列1=a)
    elif y == 2:
        yuanzuowei.update(列2=a)
    elif y == 3:
        yuanzuowei.update(列3=a)
    elif y == 4:
        yuanzuowei.update(列4=a)
    elif y == 5:
        yuanzuowei.update(列5=a)
    elif y == 6:
        yuanzuowei.update(列6=a)
    elif y == 7:
        yuanzuowei.update(列7=a)
    elif y == 8:
        yuanzuowei.update(列8=a)


def tuenpiao():
    panduan = len(list(piaoku.values()))
    if panduan > 1:
        selectpiao()
        xuhao = int(input('(输入0退出)请输入要退票的编号:'))
        if xuhao == 0:
            print('退出成功')
        else:
            s1 = piaoku.get(xuhao + 1)
            s2 = list(s1.values())
            a = s2[2]
            for i in range(a):
                x = s2[3][i][0]
                y = s2[3][i][1]
                tueizuo(x, y)
            piaoku.pop(xuhao + 1)
            print('退票成功!')
    else:
        print('您还没有订票!')


def jiezhang():
    l = list(piaoku.keys())
    l.pop(0)
    money = 0
    for x in l:
        s1 = piaoku.get(x)
        s2 = list(s1.values())
        money += s2[1]
    while True:
        print('您一共花费:%d元' % money)
        money1 = int(input('(输入-1退出)请输入钱数:'))
        if money1 == -1:
            break
        else:
            money2 = money1 - money
            if money2 > 0:
                print('支付成功!找您:%d元。 欢迎下次再来!' % money2)
                break
            elif money2 == 0:
                print('支付成功!欢迎下次再来!')
                break
            else:
                print('您支付的金额不足!请重新支付!')
                continue


while True:
    print('********欢迎来到电影购票系统********')
    print('1.查看热映电影')
    print('2.订票')
    print('3.查看订单')
    print('4.退票')
    print('5.结账')
    print('6.退出')
    num = int(input('请输入选择功能的编号:'))
    if num == 1:
        select()
        continue
    elif num == 2:
        dingpiao()
        continue
    elif num == 3:
        selectpiao()
        continue
    elif num == 4:
        tuenpiao()
        continue
    elif num == 5:
        jiezhang()
    elif num == 6:
        print('欢迎再次使用!拜拜!')
        print('=================================')
        break
    else:
        print('没有这个选项!请重新输入')
        continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值