namespace ListaDeCompras;
class Program
{
// Definindo o tamanho máximo do array
const int TamanhoMaximo = 10;
static void Main(string[] args)
{
Produto[] produtos = new Produto[TamanhoMaximo];
int contadorDeProdutos = 0;// Contador para rastrear o número de produtos
while (true)
{
// Exibir as opções
Console.WriteLine("Escolha as opções:");
Console.WriteLine("1. Adicionar Produtos");
Console.WriteLine("2. Visualizar lista de Produtos");
Console.WriteLine("3. Calcular Media do Produtos");
Console.WriteLine("4. Remover Produto");
Console.WriteLine("5. Sair do Sistema");
// Ler a escolha do usuário
string choice = Console.ReadLine();
// Estrutura de controle de escolhas
// Estrutura de controle de escolhas
switch (choice)
{
case "1":
AdicionarProdutos(produtos, ref contadorDeProdutos);
break;
case "2":
VisualizarListaDeProdutos(produtos, contadorDeProdutos);
break;
case "3":
CalcularMediaDosProdutos(produtos, contadorDeProdutos);
break;
case "4":
RemoverProduto(produtos, ref contadorDeProdutos);
break;
case "5":
return;
default:
Console.WriteLine("Escolha inválida. Por favor, tente novamente.");
break;
}
}
static void AdicionarProdutos(Produto[]produtos,ref int contadorDeProdutos)
{
if (contadorDeProdutos >= TamanhoMaximo)
{
Console.WriteLine("Limite máximo de produtos atingido.");
return;
}
Console.WriteLine("Digite o Nome do produto:");
string nome = Console.ReadLine().Trim();
Console.WriteLine("Digite o Preço do Produto:");
double preco;
while (!double.TryParse(Console.ReadLine().Trim(), out preco))
{
Console.WriteLine("Ano inválido, por favor insira um número inteiro:");
}
Produto newProduto = new Produto(nome, preco);
produtos[contadorDeProdutos]= newProduto;
contadorDeProdutos++;
Console.WriteLine("Produto Adicionado com Sucesso!!!");
}
static void VisualizarListaDeProdutos(Produto[] produtos, int contadorDeProdutos)
{
Console.WriteLine("Produtos:");
for (int i = 0; i < contadorDeProdutos; i++)
{
Produto produto = produtos[i];
Console.WriteLine($"{i + 1}. Nome do Produto: {produto.Nome}, Preco em R$: {produto.Preco}");
}
}
static void CalcularMediaDosProdutos(Produto[] produtos,int contadorDeProdutos)
{
if (contadorDeProdutos == 0)
{
Console.WriteLine("Nenhum produto na lista para calcular a media.");
}
double soma = 0;
for (int i = 0; i < contadorDeProdutos; i++)
{
soma += produtos[i].Preco;
}
double media = soma / contadorDeProdutos;
Console.WriteLine($"A media dos preços dos produtos é:{media:F2}");
}
static void RemoverProduto(Produto[] produtos, ref int contadorDeProdutos)
{
if (contadorDeProdutos == 0)
{
Console.WriteLine("Nenhum produto para remover.");
return;
}
Console.WriteLine("Digite o número do produto que deseja remover:");
VisualizarListaDeProdutos(produtos,contadorDeProdutos); // Removido 'ref'
int index;
if (int.TryParse(Console.ReadLine().Trim(), out index) && index > 0 && index <= contadorDeProdutos)
{
// Shift dos elementos do array para preencher o espaço removido
for (int i = index - 1; i < contadorDeProdutos - 1; i++)
{
produtos[i] = produtos[i + 1];
}
produtos[contadorDeProdutos - 1] = null; // Limpar o último elemento
contadorDeProdutos--;
Console.WriteLine("Produto removido com sucesso.");
}
else
{
Console.WriteLine("Índice inválido. Por favor, tente novamente.");
}
}
}
}