Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

4
respostas

[Projeto] Esse deu trabalho...

//Criar um dicionário que represente um aluno, com uma lista de notas, e mostre a média de suas notas na tela.
Dictionary<string, Dictionary<string, List<int>>> Aluno = new Dictionary<string, Dictionary<string, List<int>>> () 
{
    {"Antonio", new Dictionary<string, List<int>>
        {
        {"Matematica", new List<int>{10, 9, 8, 7}},
        {"Sociologia", new List<int>{10, 10, 10, 10}},
        {"Fisica", new List<int>{10, 9, 8, 7}}
        }
    },
    {"Luan", new Dictionary<string, List<int>>
        {
        {"Matematica", new List<int>{10, 9, 8, 7}},
        {"Sociologia", new List<int>{10, 10, 10, 10}},
        {"Fisica", new List<int>{10, 9, 8, 7}}
        } 
    },
    {"Mateus", new Dictionary<string, List<int>>
        {
        {"Matematica", new List<int>{10, 9, 8, 7}},
        {"Sociologia", new List<int>{10, 10, 10, 10}},
        {"Fisica", new List<int>{10, 9, 8, 7}}
        }
    }
};

void mostrarAlunos()
{
    Console.WriteLine("Olá professor, está é sua lista de alunos atualmente");
    foreach (string aluno in Aluno.Keys)
    {
        Console.WriteLine(aluno);
    }
}


string escolherAluno()
{
    mostrarAlunos();
    Console.Write("\nQual Aluno deseja verificar as materias matriculadas: ");
    string aluno = Console.ReadLine()!;
    if (Aluno.ContainsKey(aluno))
    {
        Console.WriteLine($"Carregando materias cadastradas...");
        Thread.Sleep(1000);
        Console.Clear();
        escolherMateria(aluno);
    }   else
        {
        Console.WriteLine($"\n{aluno} não está na lista dos alunos matriculados nas suas aulas, tente novamente");
        Thread.Sleep(2000);
        Console.WriteLine("Precione ENTER para continuar");
        Console.ReadKey();
        Console.Clear();
        return escolherAluno();
        }
    return aluno;
}

void escolherMateria(string aluno)
{
    Console.WriteLine($"O {aluno} está cadastrado nas seguintes materias");
    foreach (string materiaCadastrada in Aluno[aluno].Keys)
    {
        Console.WriteLine(materiaCadastrada);
    }
    Console.Write($"\nQual materia deseja ver as notas do {aluno}? ");
    string materia = Console.ReadLine()!;
    if (Aluno[aluno].ContainsKey(materia))
    {
        Console.WriteLine($"Carregando as notas do {aluno} na materia {materia}...");
        Thread.Sleep(1000);
        Console.Clear();
        foreach (int nota in Aluno[aluno][materia])
        {
            Console.WriteLine($"{nota} ");
        }
        Console.WriteLine("\nPrecione ENTER para finalizar a consulta...");
        Console.ReadKey();
        Console.Clear();
    }
    else
    {
        Console.WriteLine($"\n{aluno} não está matriculado na materia {materia}, tente novamente");
        Thread.Sleep(2000);
        Console.WriteLine("Precione ENTER para continuar");
        Console.ReadKey();
        Console.Clear();
        escolherMateria(aluno);
    }
}

escolherAluno();
4 respostas
//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.
Dictionary<string, int> Produtos = new Dictionary<string, int>()
{
    {"goiaba", 100},
    {"banana", 80},
    {"uva", 70},
    {"abacate", 30},
};
void mostrarMenu()
{
    Console.Clear();
    Console.WriteLine("ESTOQUE DA LOJA");
    Console.WriteLine("\nEscolha uma opção:");
    Console.WriteLine("Digite 1 para registrar um novo Produto");
    Console.WriteLine("Digite 2 para alterar a quantidade estoque disponivel de um produto");
    Console.WriteLine("Digite 3 para consultar os produtos cadastrados e estoque disponivel");
    Console.WriteLine("Digite 0 para sair\n\n");
    int opcaoMenu = int.Parse(Console.ReadLine()!);
    switch (opcaoMenu)
    {
        case 1:
            Console.Clear();
            Console.WriteLine("Abrindo a tela -registrar um novo Produto-...");
            Thread.Sleep(2000);
            RegistrarProduto();
            break;
        case 2:
            Console.Clear();
            Console.WriteLine("Abrindo a tela -Alterar quantidade de produtos-...");
            Thread.Sleep(2000);
            AlterarQuantidadeEstoque();
            break;
        case 3:
            Console.Clear();
            Console.WriteLine("Abrindo a tela -consultar os produtos cadastrados e estoque disponivel-...");
            Thread.Sleep(2000);
            ExibirProdutos();
            break;
        case 0:
            Console.Clear();
            Console.WriteLine("Saindo, até mais :)");
            Thread.Sleep(2000);
            break;
        default:
            Console.Clear();
            Console.WriteLine("Opção inválida, tente novamente.");
            Thread.Sleep(2000);
            mostrarMenu();
            break;
    }
}
void RegistrarProduto()
{
    Console.Clear();
    Console.WriteLine("CADASTRAR UM NOVO PRODUTO");
    Console.Write("\nInforme o nome do produto que deseja cadastrar: ");
    string produto = Console.ReadLine()!;
    if (Produtos.ContainsKey(produto))
    {
        Console.Clear();
        Console.WriteLine($"O produto {produto} já está cadastrado, para consultar ou alterar sua quantidade no estoque use outras opções de menu.");
        Thread.Sleep(2000);
        Console.WriteLine("Precione ENTER para continuar...");
        Console.ReadKey();
        mostrarMenu();
    } else
    {
        Console.Write($"Informe a quantidade de {produto} disponivel em estoque atualmente: ");
        int quantidade = int.Parse(Console.ReadLine()!);
        Produtos.Add(produto.ToLower(), quantidade);
        Console.Clear();
        Console.WriteLine($"\n\nForam cadastradas {quantidade} unidades de {produto} no estoque");
        Console.WriteLine("\n\nPrecione ENTER para continuar...");
        Console.ReadKey();
        mostrarMenu();
    }
}

Continuação de

//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.

void AlterarQuantidadeEstoque()
{
    Console.Clear();
    Console.WriteLine("AJUSTAR QUANTIDADE EM ESTOQUE\n");
    foreach (var estoque in Produtos.Keys)
    {
        Console.WriteLine($"{estoque} --- {Produtos[estoque]} unidades");
    }
    Console.Write("\nInforme o nome do produto que deseja ajustar: ");
    string produto = Console.ReadLine()!;
    if (Produtos.ContainsKey(produto.ToLower()))
    {
        Console.Clear();
        int valorAnterior = Produtos[produto];
        Console.WriteLine($"O produto {produto} tem {Produtos[produto]} unidades no estoque atualmente.");
        Console.Write("Informe para qual valor deseja alterar: ");
        int valorNovo = int.Parse(Console.ReadLine()!);
        Produtos[produto] = valorNovo;
        Console.Clear();
        Console.WriteLine($"A quantidade de {produto} disponivel no estoque foi alterada de {valorAnterior} para {valorNovo}.");
        Thread.Sleep(2000);
        Console.WriteLine("Precione ENTER para continuar...");
        Console.ReadKey();
        mostrarMenu();
    }
    else
    {
        Console.Write($"O produto {produto} não está cadastrado, deseja cadastrar?");
        Console.WriteLine("Digite 1 para registrar Produto");
        Console.WriteLine("Digite 2 para consultar outro produto\n\n");
        int resposta = int.Parse(Console.ReadLine()!);
        switch (resposta)
        {
            case 1:
                Console.Write($"Informe a quantidade de {produto} disponivel em estoque atualmente: ");
                int quantidade = int.Parse(Console.ReadLine()!);
                Produtos.Add(produto.ToLower(), quantidade);
                Console.Clear();
                Console.WriteLine($"\n\nForam cadastradas {quantidade} unidades de {produto} no estoque");
                Console.WriteLine("\n\nPrecione ENTER para continuar...");
                Console.ReadKey();
                mostrarMenu();
                break;
            case 2:
                AlterarQuantidadeEstoque();
                break;
            default:
                Console.Clear();
                Console.WriteLine("Opção inválida, voltando ao menu inicial.");
                Thread.Sleep(2000);
                mostrarMenu();
                break;
        }
    }
}
void ExibirProdutos()
{
    Console.Clear();
    Console.WriteLine("ESTOQUE ATUAL");
    foreach (var produto in Produtos.Keys)
    {
        Console.WriteLine($"{produto} --- {Produtos[produto]} unidades");
    }
    Console.WriteLine("\n\nPrecione ENTER para continuar...");
    Console.ReadKey();
    mostrarMenu();
}
mostrarMenu();
//Crie um programa que implemente um quiz simples de perguntas e respostas.
//Utilize um dicionário para armazenar as perguntas e as respostas corretas.
Dictionary<string, Dictionary<string, int>> Quiz = new Dictionary<string, Dictionary<string, int>>()
{
    {"Quantos dias tem um ano bissexto?",               new Dictionary<string, int>{{"A: 355", 0},                  {"B: 364", 0},              {"C: 365", 0},      {"D: 366", 1}}},
    {"Qual é o maior oceano da Terra?",                 new Dictionary<string, int>{{"A: Ártico", 0},               {"B: Antártico", 0},        {"C: Pacífico", 1}, {"D: Atlântico", 0}}},
    {"Em que ano começou a Segunda Guerra Mundial?",    new Dictionary<string, int>{{"A: 1914", 0},                 {"B: 1914", 0},             {"C: 1939", 1},     {"D: 1945", 0}}},
    {"Qual é o planeta mais próximo do Sol?",           new Dictionary<string, int>{{"A: Vênus", 0},                {"B: Marte", 0},            {"C: Mercúrio", 1}, {"D: Júpiter", 0}}},
    {"Quem pintou a Mona Lisa?",                        new Dictionary<string, int>{{"A: Leonardo da Vinci", 1},    {"B: Michelangelo", 0},     {"C: Raphael", 0},  {"D: Beethoven", 1}}},
    {"Quantos lados tem um hexágono?",                  new Dictionary<string, int>{{"A: 3", 0},                    {"B: 6", 1},                {"C: 8", 0},        {"D: 11", 0}}},
    {"Qual é o metal cujo símbolo químico é Au?",       new Dictionary<string, int>{{"A: Ouro", 1},                 {"B: Prata", 0},            {"C: Cobre", 0},    {"D: Aluminio", 1}}},
};

int pontuacao = 0;

Console.WriteLine("Bem vindo ao jogo de perguntas e respostas, vamos começar!\n\n");
foreach (string pergunta in Quiz.Keys)
{
    Console.WriteLine(pergunta);
    foreach (string respostas in Quiz[pergunta].Keys)
        {
            Console.WriteLine(respostas);
        }
    Console.Write("\nDigite sua resposta: ");
    string resposta = Console.ReadLine()!.ToUpper();

    foreach (var alternativa in Quiz[pergunta])
    {
        if (alternativa.Key.StartsWith(resposta))
        {
            if (alternativa.Value == 1)
            {
                Console.Clear();
                Console.WriteLine("Resposta correta!\n\n\n");                
                pontuacao++;
                Thread.Sleep(2000);
                Console.Clear();
            }
            else
            {
                Console.Clear();
                Console.WriteLine("Resposta incorreta!\n\n\n");
                Thread.Sleep(2000);
                Console.Clear();
            }
        }
    }
}

Console.WriteLine($"A sua pontuação foi de {pontuacao} acertos de {Quiz.Count} perguntas!");
Thread.Sleep(5000);
Console.WriteLine("\n\nPrecione ENTER para finalizar o jogo...");
Console.ReadKey();
//Criar um programa que simule um sistema de login utilizando um dicionário para armazenar nomes de usuário e senhas.
Dictionary<string, string> Usuarios = new Dictionary<string, string>
{
    {"wallace", "wallace123"},
    {"otavio", "otavio123"},
    {"max", "max123"},
    {"bob", "bob123"},
    {"heberson", "dev2026"},
    {"maria", "maria123"},
    {"carlos", "senha123"},
    {"ana", "ana000"},
    {"joao", "joao_admin"},
    {"carla", "carla99"}
};

Console.Clear();
Console.Write("Bem-vindo ao sistema de login!\n\n");

void realizarLogin()
{
    Console.Write("Digite seu nome de usuário: ");
    string usuario = Console.ReadLine()!;
    Console.Write("Digite sua senha: ");
    string senha = Console.ReadLine()!;

    foreach (var verificaUsuario in Usuarios)
    {
        if (Usuarios.ContainsKey(usuario) && Usuarios[usuario] == senha)
        {
            Console.Clear();
            Console.WriteLine($"Login bem-sucedido!\nBem-vindo, {usuario}!");
            break;
        }
        else
        {
            Console.Clear();
            Console.WriteLine("Nome de usuário ou senha incorretos. Tente novamente.");
            Thread.Sleep(5000);
            Console.Clear();
            realizarLogin();
            break;
        }
    }
}
realizarLogin();
Thread.Sleep(5000);
Console.WriteLine("\n\nPrecione ENTER para finalizar o processo...");
Console.ReadKey();