Prévia do material em texto
using System; using System.Collections.Generic; namespace EstoqueApp { class Produto { public string Nome { get; set; } public double Preco { get; set; } public int Quantidade { get; set; } public Produto(string nome, double preco, int quantidade) { Nome = nome; Preco = preco; Quantidade = quantidade; } } class Estoque { private List<Produto> produtos; public Estoque() { produtos = new List<Produto>(); } public void AdicionarProduto(Produto produto) { produtos.Add(produto); } public List<Produto> ListarProdutos() { return produtos; } public bool RemoverProduto(string nome) { Produto produto = produtos.Find(p => p.Nome.ToLower() == nome.ToLower()); if (produto != null) { produtos.Remove(produto); return true; } return false; } public bool EntradaEstoque(string nome, int quantidade) { Produto produto = produtos.Find(p => p.Nome.ToLower() == nome.ToLower()); if (produto != null) { produto.Quantidade += quantidade; return true; } return false; } public bool SaidaEstoque(string nome, int quantidade) { Produto produto = produtos.Find(p => p.Nome.ToLower() == nome.ToLower()); if (produto != null && produto.Quantidade >= quantidade) { produto.Quantidade -= quantidade; return true; } return false; } } class Program { static Estoque estoque = new Estoque(); static void Main(string[] args) { bool sair = false; do { Console.WriteLine("Selecione uma opção:"); Console.WriteLine("[1] Novo [4] Entrada Estoque"); Console.WriteLine("[2] Listar Produtos [5] Saída Estoque"); Console.WriteLine("[3] Remover Produtos [0] Sair"); string opcao = Console.ReadLine(); switch (opcao) { case "1": NovoProduto(); break; case "2": ListarProdutos(); break; case "3": RemoverProduto(); break; case "4": EntradaEstoque(); break; case "5": SaidaEstoque(); break; case "0": sair = true; break; default: Console.WriteLine("Opção inválida!"); break; } Console.WriteLine(); } while (!sair); } static void NovoProduto() { Console.WriteLine("Digite o nome do produto:"); string nome = Console.ReadLine(); Console.WriteLine("Digite o preço do produto:"); double preco = double.Parse(Console.ReadLine()); Console.WriteLine("Digite a quantidade inicial do produto:"); int quantidade = int.Parse(Console.ReadLine()); Produto novoProduto = new Produto(nome, preco, quantidade); estoque.AdicionarProduto(novoProduto); Console.WriteLine("Novo produto adicionado!"); } static void ListarProdutos() { Console.WriteLine("Lista de produtos:"); foreach (Produto produto in estoque.ListarProdutos()) { Console.WriteLine($"Nome: {produto.Nome} - Preço: {produto.Preco:C} - Quantidade: {produto.Quantidade}"); Console.WriteLine($"Nome: {produto.Nome} - Preço: {produto.Preco:C} - Quantidade: {produto.Quantidade}"); } } static void RemoverProduto() { Console.WriteLine("Digite o nome do produto a ser removido:"); string nome = Console.ReadLine(); bool removido = estoque.RemoverProduto(nome); if (removido) Console.WriteLine("Produto removido com sucesso!"); else Console.WriteLine("Produto não encontrado."); } static void EntradaEstoque() { Console.WriteLine("Digite o nome do produto:"); string nome = Console.ReadLine(); Console.WriteLine("Digite a quantidade de entrada:"); int quantidade = int.Parse(Console.ReadLine()); bool entrada = estoque.EntradaEstoque(nome, quantidade); if (entrada) Console.WriteLine("Entrada de estoque registrada com sucesso!"); else Console.WriteLine("Produto não encontrado."); } static void SaidaEstoque() { Console.WriteLine("Digite o nome do produto:"); string nome = Console.ReadLine(); Console.WriteLine("Digite a quantidade de saída:"); int quantidade = int.Parse(Console.ReadLine()); bool saida = estoque.SaidaEstoque(nome, quantidade); if (saida) Console.WriteLine("Saída de estoque registrada com sucesso!"); else Console.WriteLine("Produto não encontrado ou quantidade insuficiente em estoque."); } } }