Buscar

pti conceito de computação

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.");
}
}
}