Skip to content

HugoNicolau/Java-POO-Hotel

Repository files navigation

🏨 Sistema de Gestão Hoteleira em Java

Este projeto é um sistema básico de gerenciamento de hotel desenvolvido em Java com foco em Programação Orientada a Objetos (POO). O sistema permite o cadastro de hóspedes e quartos, a realização de reservas com adição de serviços extras e a geração de faturas.


✨ Funcionalidades

  • Cadastro de hóspedes e quartos (simples e luxo)
  • Realização de reservas com verificação de disponibilidade
  • Adição de serviços extras por reserva
  • Geração de faturas com cálculo de valor total
  • Exibição de informações de hóspedes, quartos e reservas

🧱 Estrutura de Classes

  • Pessoa (abstrata) → Classe base com nome, CPF e telefone
  • Hospede → Subclasse de Pessoa com e-mail
  • Quarto (abstrata) → Representa um quarto genérico
    • QuartoSimples → Inclui tipo de cama
    • QuartoLuxo → Inclui cama, jacuzzi, varanda e café da manhã
  • Servico → Serviço avulso ou incluído na reserva
  • Reserva → Associa um hóspede a um quarto com um período e serviços
  • Fatura → Agrupa reservas e serviços cobrados
  • Hotel → Controla o cadastro e listagem de hóspedes, quartos e reservas

🛠️ Tecnologias Utilizadas

  • Java 17+
  • Orientação a Objetos
  • Collections API (List, Optional)
  • PlantUML (para diagrama de classes)

▶️ Como Executar

  1. Clone o repositório:
    git clone https://github.com/HugoNicolau/Java-POO-Hotel.git
  2. Compile o projeto:
    javac App.java
  3. Execute a aplicação:
    java App

Obs: o método main da classe App cria dados de exemplo para simular o uso do sistema.


📄 Exemplo de Saída

--- Fatura João ---
Reserva - Quarto Simples: 101, Capacidade: 2, Preço por Noite: R$150.0, Tipo de Cama: Casal - Total: R$...
Servico: Lavanderia - R$50.0
TOTAL: R$...

--- Fatura Maria ---
Reserva - Quarto Luxo: 201, Capacidade: 2, Preço por Noite: R$300.0, Tipo de Cama: King, Jacuzzi: Sim, Café da Manhã: Sim, Varanda: Sim - Total: R$...
TOTAL: R$...

📊 Diagrama UML

Você pode visualizar o diagrama completo de classes do projeto clicando no link abaixo:

🔗 Diagrama UML


🚀 Possíveis Melhorias Futuras

  • Persistência de dados em arquivos

  • Interface gráfica com JavaFX ou Swing

  • Testes automatizados com JUnit

  • Interface via terminal para interação dinâmica


📚 Aprendizados

Este projeto foi desenvolvido para praticar:

  • Conceitos de abstração, encapsulamento, herança e polimorfismo

  • Utilização de interfaces e classes abstratas

  • Organização e legibilidade de código orientado a objetos


📌 Autor

Desenvolvido por Hugo Nicolau como parte de estudos de Programação Orientada a Objetos com Java.

About

A project in java to apply Poo concepts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages