image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Luis Ramos
Luis Ramos02/10/2024 23:27
Compartilhe

1° Desafio de código: Agrupamento de Vendas por Categoria 2/2

    O Desafio

    O objetivo é implementar um sistema para gerenciar dados de vendas e calcular o total dessas vendas. Posteriormente, esses dados poderão ser exportados para o Power BI, permitindo uma análise detalhada. Temos duas classes já estruturadas: Venda e Relatorio. A classe Venda contém informações de cada transação, como produto, quantidade e valor. Já a classe Relatorio será responsável por adicionar essas vendas e calcular o total.

    A estrutura de classe e a Entrada segue o mesmo modelo do artigo anterior: "1° Desafio de código: Explorando Técnicas de POO com Python 1/2"

    Saída de Dados

    A saída será o valor total das vendas, calculado com base nas informações fornecidas.

    Implementação do Código

    Aqui está a implementação da classe Relatorio e a função principal (main), que permite a adição das vendas e o cálculo do total:

    class Venda:
      def __init__(self, produto, quantidade, valor):
        self.produto = produto
        self.quantidade = quantidade
        self.valor = valor

    class Relatorio:
      def __init__(self):
        self.vendas = []

      def adicionar_venda(self, venda):
        if instancia(venda, Venda):
          self.vendas.append(venda)
        else:
          print("Erro: O objeto não é uma instância da classe Venda.")

      def calcular_total_vendas(self):
        total = 0
        for venda in self.vendas:
          total += venda.quantidade * venda.valor
        return total

    def main():
      relatorio = Relatorio()
       
      for i in range(3):
        produto = input("Digite o nome do produto: ")
        quantidade = int(input("Digite a quantidade: "))
        valor = float(input("Digite o valor unitário: "))
        venda = Venda(produto, quantidade, valor)
        relatorio.adicionar_venda(venda)
       
      total_vendas = relatorio.calcular_total_vendas()
      print(f"Total de vendas: R$ {total_vendas:.2f}")

    Explicação do Código

    1. Método adicionar_venda:
    • Verifica se o objeto recebido é uma instância da classe Venda usando instancia(venda, Venda).
    • Se for, adiciona a venda à lista de vendas (self.vendas).
    • Caso contrário, exibe uma mensagem de erro.
    1. Método calcular_total_vendas:
    • Percorre todas as vendas na lista self.vendas.
    • Para cada venda, multiplica a quantidade pelo valor unitário e acumula o resultado na variável total.
    • Retorna o total calculado.
    1. Função main:
    • Recebe as informações de três vendas do usuário (produto, quantidade e valor).
    • Adiciona essas vendas ao relatório através do método adicionar_venda.
    • Após isso, utiliza o método calcular_total_vendas para obter o total de vendas e o exibe formatado com duas casas decimais.

    Conclusão

    Este sistema simples permite a gestão eficiente de vendas, verificando a validade das entradas e calculando corretamente o total de vendas. A flexibilidade do código permite fácil adaptação para a exportação dos dados para o Power BI, facilitando a análise de dados e a visualização das vendas em relatórios dinâmicos. A implementação da POO neste caso é essencial para organizar e reutilizar o código de forma eficiente e escalável.

    Compartilhe
    Comentários (0)