Skip to content

FAyllan111/Cine_Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

🎬 Gerenciador de Cinemas (CLI)

1. Sobre o Projeto

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.


2. Tecnologias Utilizadas

  • 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

3. Funcionalidades e Regras de Negócio

O sistema foi projetado para ser intuitivo, interativo e resiliente a erros de entrada, aplicando validações e controles de fluxo.

🔧 Configuração Dinâmica

  • 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

🎟️ Criação de Salas

  • O usuário define a capacidade da sala
  • O sistema aloca dinamicamente uma lista de assentos:
    • 0 → Assento livre
    • 1 → Assento ocupado

🔒 Controle de Fluxo (Status do Cinema)

  • 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

💰 Cálculo de Meia-Entrada Individual

  • Regra de negócio baseada na idade:
    • idade < 18 → meia-entrada
    • idade ≥ 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

🧭 Interface e Experiência do Usuário (UX)

  • 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

4. Arquitetura Técnica

O projeto prioriza o Encapsulamento Funcional, onde cada função possui uma responsabilidade única, facilitando manutenção, leitura e futura refatoração para POO.

Estrutura Funcional

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

5. Conceitos de POO Aplicados (Forma Conceitual)

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:

  • Cinema
  • Sala
  • Ingresso

6. Execução do Projeto

Pré-requisitos

  • Python 3.x instalado

Execução

python cinema.py

7. Considerações Finais

Este 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.


🚀 Possíveis Evoluções Futuras

  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages