1
resposta

[Projeto] Faça como eu fiz: controle de estoque

Resolução:


class Produto
{
    public string Nome { get; }
    public int QuantidadeEstoque { get; private set; }
    public Produto(string nome, int quantidadeEstoque)
    {
        Nome = nome;
        QuantidadeEstoque = quantidadeEstoque;
    }

    public void Retirar(int qtdRetirada)
    {
        if (qtdRetirada <= QuantidadeEstoque)
        {
            Console.WriteLine($"Retirando {qtdRetirada} do estoque total: {QuantidadeEstoque}");
            QuantidadeEstoque -= qtdRetirada;
            Console.WriteLine($"Estoque atual: {QuantidadeEstoque}");
        }
        else
        {
            Console.WriteLine($"Erro: Estoque insuficiente para retirada de {qtdRetirada} unidades.");
        }
    }

    public void ExibirDetalhes()
    {
        Console.WriteLine($"\nProduto: {Nome}");
        Console.WriteLine($"Estoque atual: {QuantidadeEstoque}");
    }
}

program.cs

Console.Clear();
Console.Write("Insira a quantidade que deseja retirar: ");
int quantidade;
int.TryParse(Console.ReadLine()!, out quantidade);

Produto prod1 = new("PC Gamer", 70);

prod1.Retirar(quantidade);

prod1.ExibirDetalhes();
1 resposta

Oi, Christopher! Como vai?

Agradeço por compartilhar.

Sua resolução ficou bem organizada, com a classe Produto, o uso de private set em QuantidadeEstoque e a validação antes de retirar itens do estoque. Um ponto de ajuste é adicionar o ; no final da propriedade QuantidadeEstoque, ficando public int QuantidadeEstoque { get; private set; }.

Uma dica interessante para o futuro é validar se o valor digitado no Console.ReadLine() foi convertido corretamente com int.TryParse, evitando que uma entrada inválida vire 0 sem aviso. Veja este exemplo:

Console.Write("Insira a quantidade que deseja retirar: ");

if (int.TryParse(Console.ReadLine(), out int quantidade))
{
    Produto prod1 = new("PC Gamer", 70);
    prod1.Retirar(quantidade);
    prod1.ExibirDetalhes();
}
else
{
    Console.WriteLine("Valor invalido. Digite apenas numeros.");
}

O código verifica se o texto digitado pode ser convertido para número antes de chamar o metodo Retirar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!