Este projeto é uma simulação de um sistema de vendas para uma loja de instrumentos musicais, desenvolvido como parte da disciplina de Programação Orientada a Objetos. O objetivo é aplicar os conceitos fundamentais de POO, como encapsulamento, herança, polimorfismo e abstração, para criar um sistema coeso e funcional.
- Linguagem: Java
- IDE: IntelliJ IDEA e VSCODE
- Controle de Versão: Git e GitHub
O sistema implementa o fluxo completo de cadastro e venda de produtos, gerenciado por um funcionário. As principais funcionalidades são:
-
Cadastro de Produtos:
- Permite o cadastro de dois tipos de produtos: Instrumentos (com atributos como tipo e marca) e Acessórios (com atributo de material), utilizando uma estrutura de herança a partir de uma classe abstrata
Produto. - Os produtos são organizados por uma
enumCategoria (CORDAS,PERCUSSAO, etc.).
- Permite o cadastro de dois tipos de produtos: Instrumentos (com atributos como tipo e marca) e Acessórios (com atributo de material), utilizando uma estrutura de herança a partir de uma classe abstrata
-
Gerenciamento de Vendas:
- Um
Funcionariopode iniciar uma novaVenda. - É possível adicionar múltiplos
ItemVendaa umaVenda, cada um com umProdutoe umaquantidadeespecífica. - O sistema calcula o
subtotalpara cada item e ovalorTotalpara a venda completa automaticamente.
- Um
-
Consulta de Dados:
- Permite consultar produtos cadastrados pelo código.
- Permite consultar vendas realizadas pelo ID.
- Exibe os detalhes completos de uma venda, incluindo todos os seus itens e o valor total formatado.
A arquitetura do sistema foi baseada no seguinte diagrama de classes UML:
Funcionario: Gerencia as listas de produtos e vendas.Venda: Contém uma lista deItemVenda.ItemVenda: Liga umProdutoa umaquantidade.Produto(Abstrata): A classe base para todos os produtos.Instrumento(Herda de Produto)Acessorio(Herda de Produto)
Categoria(Enum): Define os tipos de categoria dos produtos.