0
respostas

[Projeto] Resoluções dos Desafios - Dicionário e Listas em C#

1. Média de notas de alunos

Criei um Dictionary<string, List<double>> para armazenar o nome dos alunos e suas notas. Depois, usei Average() para calcular a média de cada um.

Código:

Console.WriteLine("------------ Resolvendo Médias de Alunos ------------ \n");
Dictionary<string, List<double>> notasAlunos = new Dictionary<string, List<double>>();
notasAlunos["João"] = new List<double> { 8.5, 9.0, 7.5 };
notasAlunos["Maria"] = new List<double> { 7.0, 8.0, 6.5 };

foreach (var aluno in notasAlunos)
{
    var media = notasAlunos[aluno.Key].Average();
    Console.WriteLine($"Média de {aluno.Key} é: {media}");
}

Resultado esperado:

Média de João é: 8.3333
Média de Maria é: 7.1666

2. Controle de estoque

Descrição:Simulei um estoque de loja com um Dictionary<string, int> e consultei a quantidade de um item pelo nome.

Código:

Console.WriteLine("\n------------ Resolvendo Estoque de Produtos ------------ \n");
Dictionary<string, int> estoqueProdutos = new Dictionary<string, int> {
    { "camisas", 20 },
    { "bermudas", 10 },
    { "sapatos", 80 },
};

string produto = "bermudas";

if (estoqueProdutos.ContainsKey(produto))
{
    Console.WriteLine($"O produto {produto}, contém {estoqueProdutos[produto]} unidades em estoque");
}

Resultado esperado:

O produto bermudas, contém 10 unidades em estoque

3. Quiz interativo

Descrição:Implementei um quiz simples usando um Dictionary<string, string>, verificando se a resposta do usuário está correta.

Código:

Console.WriteLine("\n------------ Resolvendo Quiz  ------------ \n");
Dictionary<string, string> quiz = new Dictionary<string, string>
{
    { "Qual é o elemento químico representado pela sigla 'O'?", "Oxigênio" },
    { "Em que ano o homem pisou na Lua pela primeira vez?", "1969" },
    { "Qual é o animal terrestre mais rápido do mundo?", "Guepardo" },
    { "Quantos segundos tem um minuto?", "60" },
    { "Qual é o autor da obra 'Dom Quixote'?", "Miguel de Cervantes" }
};

int pontos = 0;
foreach (var pergunta in quiz)
{
    Console.WriteLine(pergunta.Key);
    Console.Write("Sua resposta: ");
    string resposta = Console.ReadLine()!;

    if(resposta.ToLower() == quiz[pergunta.Key].ToLower())
    {
        Console.WriteLine("Você acertou!!!\n");
        pontos++;
    }
    else
    {
        Console.WriteLine($"Errado!, a resposta correta é: {quiz[pergunta.Key]}\n");
    }
}

Console.WriteLine($"Sua pontuação final foi: {pontos}");

Resultado esperado:(Depende das respostas, mas o formato será similar a:)

Qual é o elemento químico representado pela sigla 'O'?
Sua resposta: Oxigênio
Você acertou!!!

...
Sua pontuação final foi: 4

4. Sistema de login

Descrição:Criei um sistema de login simples usando Dictionary<string, string> para armazenar usuários e senhas.

Código:

Console.WriteLine("\n------------ Resolvendo Login  ------------ \n");
Dictionary<string, string> usuarios = new Dictionary<string, string>
{
    { "usuario1", "senha1" },
    {"usuario2", "senha2" }
};

Console.WriteLine("Sistema de Login");
Console.Write("Informe seu usuario: ");
string nomeUsuario = Console.ReadLine()!;

Console.Write("Informe sua senha: ");
string senha =  Console.ReadLine()!;

if (usuarios.ContainsKey(nomeUsuario) && usuarios[nomeUsuario] == senha)
{
    Console.WriteLine("Login realizado com sucesso!");
}
else
{
    Console.WriteLine("Nome do usuario ou senha incorretos!");
}

Resultado esperado (exemplo):

Informe seu usuario: usuario1
Informe sua senha: senha1
Login realizado com sucesso!