1
resposta

[Projeto] Desafio: hora da prática

  1. Criar um dicionário que represente um aluno, com uma lista de notas, e mostre a média de suas notas na tela.
var alunos =  new Dictionary<string, List<decimal>>();
alunos.Add("João", new List<decimal> {10m, 8.5m, 9.2m});

Console.WriteLine($"Média do aluno {alunos.First().Key} é: {Math.Round(alunos.First().Value.Average(),2)}");
  1. Criar um programa que gerencie o estoque de uma loja. Utilize um dicionário para armazenar produtos e suas quantidades em estoque e mostre, a partir do nome de um produto, sua quantidade em estoque.
var produtos = new Dictionary<string, int>();
produtos.Add("TV", 40);
produtos.Add("Radio", 20);

foreach(string produto in produtos.Keys)
{
    Console.WriteLine (produto);
}

Console.Write ("Selecione o produto que você deseja ver a quantidade: ");
string nomeProduto = Console.ReadLine()!;
int quantiaProduto = produtos[nomeProduto];

Console.WriteLine ($"A quantidade em estoque do produto {nomeProduto} é de {quantiaProduto}");
  1. Crie um programa que implemente um quiz simples de perguntas e respostas. Utilize um dicionário para armazenar as perguntas e as respostas corretas.
var perguntas = new Dictionary<string, string>();
perguntas.Add("Quanto é 4 + 4?", "Resposta: 8");
perguntas.Add("Quanto é 2 + 2?", "Resposta: 4");
perguntas.Add("Quanto é 1 + 1?", "Resposta: 2");

foreach (var item in perguntas)
{
    Console.WriteLine($"{item.Key} {item.Value}");

}
  1. Criar um programa que simule um sistema de login utilizando um dicionário para armazenar nomes de usuário e senhas.
var logins = new Dictionary<string, string>
       {
           ["teste"] = "123123",
           ["joaquim"] = "92038957",
           ["bia"] = "454583929"
       };

       foreach (var login in logins)
       {
           Console.WriteLine($"Login: {login.Key}\n" +
               $"Senha: {login.Value}");
       }
1 resposta

Oi, Eduardo! Como vai?

Agradeço por compartilhar.

Gostei bastante da forma como você utilizou Dictionary em diferentes cenários, principalmente no cálculo da média com Average() e Math.Round, que mostra um bom domínio de LINQ. No controle de estoque, também foi interessante ver a interação com o usuário usando Console.ReadLine(), deixando o programa mais dinâmico.

Uma dica interessante para o futuro é utilizar o método ContainsKey pra evitar erros caso o usuário digite um produto que não existe.


if(produtos.ContainsKey(nomeProduto))
{
    Console.WriteLine(produtos[nomeProduto]);
}
else
{
    Console.WriteLine("produto nao encontrado");
}

Esse código verifica se a chave existe no dicionário antes de acessar, evitando erros de execução.

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