1
resposta

Estoque de produtos

AcoesMercado acoes = new AcoesMercado();

while (true)
{
    Console.Clear();
    Console.WriteLine("Estoque do seu Zé!!\n");
    Console.WriteLine("1 - Adicionar produto");
    Console.WriteLine("2 - Listar produtos");
    Console.WriteLine("3 - Excluir produto");
    Console.WriteLine("0 - Sair");

    int opcao = int.Parse(Console.ReadLine() ?? "0");

    switch (opcao)
    {
        case 1:
            acoes.AdicionarProduto();
            break;
        case 2:
            acoes.ListarProdutos();
            break;
        case 3:
            acoes.ExcluirProdutos();
            break;
        case 0:
            return;
        default:
            Console.WriteLine("Opção inválida!");
            Console.ReadLine();
            break;
    }
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;

namespace Banco
{
    public class AcoesMercado
    {
        private List<Mercado> ListandoProd = new List<Mercado>();

        public void AdicionarProduto()
        {
            Mercado adicaoProduto = new Mercado();

            Console.WriteLine("Digite o nome do produto que deseja adicionar ao sistema: \n");
            adicaoProduto.Produto = Console.ReadLine();
            Console.Clear();

            Console.WriteLine("Digite a marca do produto: \n");
            adicaoProduto.Marca = Console.ReadLine();
            Console.Clear();

            Console.WriteLine("Digite a quantidade: \n");
            adicaoProduto.Quantidade = int.Parse(Console.ReadLine()  ?? "0");
            Console.Clear();

            adicaoProduto.InicializarEstoque();

            ListandoProd.Add(adicaoProduto);
            Console.WriteLine("Produto adicionado com sucesso!\n");
            Console.Clear();
            Thread.Sleep(1000);
        }

        public void ListarProdutos()
        {
            if (ListandoProd.Count == 0)
            {
                Console.WriteLine("Nenhum produto cadastrado !\n");
                Console.ReadLine();
                return;
            }
            int i = 1;
            foreach (var item in ListandoProd)
            {
                Console.WriteLine($"{i}.Produto: {item.Produto} | Marca: {item.Marca} | Quantidade: {item.Quantidade} | Disponíveis: {item.DisponiveisEmEstoque}\n");
                i ++;
            }
            Console.ReadLine() ;

        }

        public void ExcluirProdutos()
        {
            ListarProdutos();

            Console.WriteLine("Digite o número do produto que deseja excluir: \n");
            int indice = int.Parse((Console.ReadLine() ?? "0"));

            int posicao = indice - 1;

            if (posicao < 0 || posicao >= ListandoProd.Count)
            {
                Console.WriteLine("Indice Inválido!");
                Console.ReadLine();
                return;
            }

            ListandoProd.RemoveAt(posicao);
            Console.WriteLine("Produto removido de acordo !");

        }
    }
}
1 resposta

Olá, Mateus! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de switch para organizar as opções do menu, utilizou muito bem listas genéricas (List<T>) para armazenar os produtos e ainda compreendeu a importância de métodos separados, deixando o código mais modular e fácil de manter.

Uma dica interessante para o futuro é implementar um tratamento de exceções para entradas inválidas, evitando que o programa quebre caso o usuário digite algo inesperado. Assim:

try
{
    int opcao = int.Parse(Console.ReadLine() ?? "0");
    // lógica do switch aqui
}
catch (FormatException)
{
    Console.WriteLine("Entrada inválida! Digite apenas números.");
    Console.ReadLine();
}

Isso faz com que o sistema seja mais robusto e ofereça uma melhor experiência para o usuário.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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