Este projeto é uma aplicação de linha de comando (CLI) desenvolvida em Python como parte de um estudo pessoal prático, com foco na transição da programação estruturada para os primeiros conceitos de Programação Orientada a Objetos (POO).
O sistema simula a operação básica de um cinema, abrangendo desde a configuração de infraestrutura (criação de salas e definição de preços) até a operação comercial (venda de ingressos com regras de negócio e controle de status).
O principal objetivo é validar os fundamentos estudados em Python por meio de um software funcional, original e completo, aproximando o aprendizado de um cenário real.
- Linguagem: Python 3.x
- Bibliotecas padrão:
os— Integração com o sistema operacional (limpeza do console)
- Paradigma:
- Programação Estruturada com foco em Modularização
- Base conceitual para migração futura para POO
O sistema foi projetado para ser intuitivo, interativo e resiliente a erros de entrada, aplicando validações e controles de fluxo.
- Definição do nome do cinema e do valor base do ingresso em tempo de execução
- Possibilidade de alterar o valor do ingresso durante a execução do sistema
- O usuário define a capacidade da sala
- O sistema aloca dinamicamente uma lista de assentos:
0→ Assento livre1→ Assento ocupado
- Implementação de uma regra de bloqueio operacional:
- Não é possível vender ingressos se o cinema estiver fechado
- Não é possível vender ingressos se a sala ainda não tiver sido criada
- Regra de negócio baseada na idade:
idade < 18→ meia-entradaidade ≥ 18→ entrada inteira
- Em uma mesma operação de compra, o sistema permite:
- Ingressos com valores diferentes
- Acúmulo correto do valor total da venda
- Limpeza do terminal a cada interação principal
- Pausas controladas com
input()para facilitar a leitura - Mensagens claras para erros, validações e confirmações
O projeto prioriza o Encapsulamento Funcional, onde cada função possui uma responsabilidade única, facilitando manutenção, leitura e futura refatoração para POO.
| Função | Conceito Aplicado |
|---|---|
menu |
Controle de fluxo e navegação |
informacoes_cinema |
Manipulação de estado e atualização de dados |
status_cinema |
Validação de entrada e controle de estado |
criar_sala |
Alocação dinâmica de estrutura de dados |
exibir_assentos |
Iteração com enumerate para conversão de índices técnicos em numeração comercial |
venda_ingresso |
Uso de acumuladores, validações e atualização de estado |
resumo_compra |
Consolidação e apresentação de dados |
principal |
Orquestração do fluxo geral da aplicação |
Embora o projeto ainda utilize funções, diversos conceitos fundamentais de POO já estão presentes de forma implícita:
- Estado: Cinema aberto ou fechado
- Entidades Conceituais: Cinema, Sala, Assentos
- Responsabilidade Única: Cada função executa apenas uma tarefa específica
- Base para Encapsulamento: Regras e comportamentos isolados em funções
Essa estrutura facilita uma evolução natural para classes, como:
CinemaSalaIngresso
- Python 3.x instalado
python cinema.pyEste projeto representa uma etapa importante no processo de aprendizado em Python, demonstrando:
- Capacidade de estruturar um sistema completo
- Aplicação prática de regras de negócio
- Pensamento organizado e escalável
- Preocupação com clareza, validação e experiência do usuário
O projeto serve como base sólida para estudos avançados em Programação Orientada a Objetos (POO) e evolução para aplicações mais complexas.
- Refatoração completa para POO
- Implementação de múltiplas salas
- Persistência de dados (arquivos ou banco de dados)
- Relatórios de vendas
- Interface gráfica ou aplicação web
- Testes automatizados