cinema
|

CINEMA EM PYTHON (DESAFIO #2)

SITUAÇÃO PROBLEMA DO CINEMA

Como proprietária de um cinema, enfrento problemas com reservas de assentos incorretas e gestão ineficiente de ingressos durante horários de pico. Preciso de um programa para permitir aos clientes reservarem assentos precisos e personalizados, melhorando a experiência do cliente e a eficiência operacional.

REQUISITOS DO PROGRAMA DO CINEMA

  • O programa deve ser desenvolvido em python;
  • O programa deve conter 5 filmes disponíveis;
  • Em cada filme, será possível escolher um assento de 1 a 20;
  • Deve informar o valor do ingresso de acordo com a quantidade de assentos;
  • Ao final do pedido perguntar qual forma de pagamento (Pix, dinheiro, cartão);
  • Quando o pedido for concluído, gerar uma nota fiscal com os detalhes do pedido.

ENTRADAS

  • Qual o filme escolhido?
  • Qual o(s) assento(s) escolhido(s)?
  • Qual a forma de pagamento? 

FUNÇÃO EXIBIR FILMES

				
					def exibir_filmes():
    filmes = {
        1: "Filme A",
        2: "Filme B",
        3: "Filme C",
        4: "Filme D",
        5: "Filme E"
    }
    print("Filmes disponíveis:")
    for numero, nome in filmes.items():
        print(f"{numero}. {nome}")
    return filmes
				
			

FUNÇÃO ESCOLHER FILME

				
					def escolher_filme(filmes):
    while True:
        try:
            escolha_filme = int(input("Escolha o número do filme (1-5): "))
            if escolha_filme < 1 or escolha_filme > 5:
                print("Número de filme inválido. Tente novamente.")
                continue
            return filmes[escolha_filme]
        except ValueError:
            print("Entrada inválida. Tente novamente.")

				
			

FUNÇÃO CALCULAR VALORES ASSENTOS

				
					def calcular_valor_assentos(quantidade_assentos):
    preco_por_assento = 15.0  # Valor do ingresso por assento
    return preco_por_assento * quantidade_assentos
				
			

FUNÇÃO GERAR NOTA FISCAL

				
					def gerar_nota_fiscal(filme, assentos, valor_total, pagamento):
    nota = (
        f"--- NOTA FISCAL ---\n"
        f"Filme: {filme}\n"
        f"Assentos: {', '.join(map(str, assentos))}\n"
        f"Valor Total: R$ {valor_total:.2f}\n"
        f"Forma de Pagamento: {pagamento}\n"
        f"--------------------"
    )
    print(nota)
				
			

FUNÇÃO ESCOLHER ASSENTOS

				
					def escolher_assentos():
    while True:
        try:
            assentos = input("Digite os números dos assentos escolhidos (1-20), separados por vírgula: ")
            assentos = list(map(int, assentos.split(',')))
            assentos_validos = True
            assentos_ja_escolhidos = []
            for assento in assentos:
                if assento < 1 or assento > 20:
                    print("Número de assento inválido. Tente novamente.")
                    assentos_validos = False
                    break
                if assento in assentos_ja_escolhidos:
                    print("Você não pode escolher assentos duplicados. Tente novamente.")
                    assentos_validos = False
                    break
                assentos_ja_escolhidos.append(assento)
            if assentos_validos:
                return assentos
        except ValueError:
            print("Entrada inválida. Tente novamente.")
				
			

FUNÇÃO ESCOLHER FORMA DE PAGAMENTO

				
					def escolher_forma_pagamento():
    while True:
        pagamento = input("Escolha a forma de pagamento (Pix, dinheiro, cartão): ").strip().lower()
        if pagamento not in ['pix', 'dinheiro', 'cartão']:
            print("Forma de pagamento inválida. Tente novamente.")
            continue
        return pagamento.capitalize()
				
			

FUNÇÃO MAIN

				
					def main():
    filmes = exibir_filmes()
    filme_escolhido = escolher_filme(filmes)
    
    assentos = escolher_assentos()
    quantidade_assentos = len(assentos)
    valor_total = calcular_valor_assentos(quantidade_assentos)
    
    pagamento = escolher_forma_pagamento()
    
    gerar_nota_fiscal(filme_escolhido, assentos, valor_total, pagamento)
    print("Reserva concluída com sucesso!")

if __name__ == "__main__":
    main()
				
			

Caso o Python ainda não esteja instalado em seu dispositivo, clique no botão abaixo para realizar a instalação.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *