Exemplo n.º 1
0
        static void Main(string[] args)
        {
            int limiteAlunos = 3;
            int limiteSalas  = 2;

            Aluno[] alunos = new Aluno[limiteAlunos];
            Sala[]  salas  = new Sala[limiteSalas];

            int alunosCadastrados = 0;
            int salasCadastradas  = 0;

            bool querSair = false;

            do
            {
                Console.Clear();
                #region MENU
                System.Console.WriteLine("===================================");
                Console.ForegroundColor = ConsoleColor.DarkRed;
                System.Console.WriteLine("        *** SENAIzinho ***         ");
                Console.ResetColor();
                System.Console.WriteLine("         Seja bem-vindo(a)         ");
                System.Console.WriteLine("===================================");
                System.Console.WriteLine("|| Digite sua opção:             ||");
                System.Console.WriteLine("||  1 - Cadastrar Aluno          ||");
                System.Console.WriteLine("||  2 - Cadastrar Sala           ||");
                System.Console.WriteLine("||  3 - Alocar Aluno             ||");
                System.Console.WriteLine("||  4 - Remover Aluno            ||");
                System.Console.WriteLine("||  5 - Listar Salas             ||");
                System.Console.WriteLine("||  6 - Listar Alunos            ||");
                System.Console.WriteLine("||  0 - Sair                     ||");
                System.Console.WriteLine("===================================");
                #endregion

                System.Console.Write("Código: ");
                int    codigo   = int.Parse(Console.ReadLine());
                string mensagem = "";

                switch (codigo)
                {
                    #region CADASTRAR_ALUNO
                case 1:
                    if (limiteAlunos != alunosCadastrados)
                    {
                        Aluno aluno = new Aluno();

                        System.Console.WriteLine("Digite o nome do aluno");
                        aluno.Nome = Console.ReadLine();

                        System.Console.WriteLine("Digite a data de nascimento (dd/mm/aaaa)");
                        aluno.DataNascimento = DateTime.Parse(Console.ReadLine());

                        System.Console.WriteLine("Digite o nome do curso");
                        aluno.Curso = Console.ReadLine();

                        alunos[alunosCadastrados] = aluno;

                        alunosCadastrados++;

                        MostrarMensagem($"Cadastro de {aluno.GetType().Name} feito com sucesso!", TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem($"Total de alunos foi excedido!", TipoMensagemEnum.ALERTA);
                    }

                    break;

                    #endregion
                    #region CADASTRAR_SALA
                case 2:
                    if (limiteSalas != salasCadastradas)
                    {
                        System.Console.WriteLine("Digite o número da sala");
                        int numeroSalaCadastrar = int.Parse(Console.ReadLine());

                        System.Console.WriteLine("Digite a capacidade total");
                        int capacidadeTotalCadastrar = int.Parse(Console.ReadLine());

                        Sala sala = new Sala(numeroSalaCadastrar, capacidadeTotalCadastrar);

                        salas[salasCadastradas] = sala;

                        salasCadastradas++;

                        MostrarMensagem($"Cadastro de {sala.GetType().Name} feito com sucesso!", TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem($"Número de salas foi excedido!", TipoMensagemEnum.ALERTA);
                    }

                    break;

                    #endregion
                    #region ALOCAR_ALUNO
                case 3:
                    ValidarAlocarOuRemover(alunosCadastrados, salasCadastradas);

                    System.Console.WriteLine("Digite o nome do aluno");
                    string nomeAluno       = Console.ReadLine();
                    Aluno  alunoRecuperado = ProcurarAlunoPorNome(nomeAluno, alunos);


                    if (alunoRecuperado == null)
                    {
                        MostrarMensagem($"Aluno {nomeAluno} não encontrado!", TipoMensagemEnum.ALERTA);
                        continue;
                    }

                    // Recupera o numero da sala
                    System.Console.WriteLine("Digite o número da sala");
                    int numeroSala = int.Parse(Console.ReadLine());

                    // Busca pela Sala correta
                    Sala salaRecuperada = ProcurarSalaPorNumero(numeroSala, salas);

                    if (salaRecuperada == null)
                    {
                        MostrarMensagem($"Sala {numeroSala} não encontrada!", TipoMensagemEnum.ALERTA);
                        continue;
                    }

                    if (salaRecuperada.AlocarAluno(alunoRecuperado, out mensagem))
                    {
                        MostrarMensagem(mensagem, TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem(mensagem, TipoMensagemEnum.ERRO);
                    }

                    break;

                    #endregion
                    #region REMOVER_ALUNO
                case 4:
                    ValidarAlocarOuRemover(alunosCadastrados, salasCadastradas);

                    System.Console.WriteLine("Digite o nome do aluno");
                    string nomeAlunoRemover = Console.ReadLine();

                    Aluno alunoRemover = ProcurarAlunoPorNome(nomeAlunoRemover, alunos);

                    if (alunoRemover == null)
                    {
                        MostrarMensagem($"Aluno {nomeAlunoRemover} não encontrado!", TipoMensagemEnum.ALERTA);
                        continue;
                    }

                    // Recupera o numero da sala
                    System.Console.WriteLine("Digite o número da sala");
                    int numeroSalaRemover = int.Parse(Console.ReadLine());

                    // Busca pela Sala correta
                    Sala salaRemover = ProcurarSalaPorNumero(numeroSalaRemover, salas);


                    if (salaRemover == null)
                    {
                        MostrarMensagem($"Sala {numeroSalaRemover} não encontrada!", TipoMensagemEnum.ALERTA);
                        continue;
                    }

                    if (salaRemover.RemoverAluno(alunoRemover.Nome, out mensagem))
                    {
                        MostrarMensagem(mensagem, TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem(mensagem, TipoMensagemEnum.ERRO);
                    }

                    break;

                    #endregion
                    #region LISTAR_SALAS
                case 5:
                    foreach (var item in salas)
                    {
                        if (item != null)
                        {
                            System.Console.WriteLine("-----------------------------------------------------");
                            System.Console.WriteLine($"Número da sala: {item.NumeroSala}");
                            System.Console.WriteLine($"Vagas disponíveis: {item.CapacidadeAtual}");
                            System.Console.WriteLine($"Alunos: {item.ExibirAlunos()}");
                            System.Console.WriteLine("-----------------------------------------------------");
                        }
                    }

                    System.Console.WriteLine("Aperte ENTER para voltar ao menu principal");
                    Console.ReadLine();
                    break;

                    #endregion
                    #region LISTAR_ALUNOS
                case 6:
                    foreach (var item in alunos)
                    {
                        if (item != null)
                        {
                            System.Console.WriteLine("-----------------------------------------------------");
                            System.Console.WriteLine($"Nome do aluno: {item.Nome}");
                            System.Console.WriteLine($"Curso: {item.Curso}");
                            System.Console.WriteLine("-----------------------------------------------------");
                        }
                    }
                    System.Console.WriteLine("Aperte ENTER para voltar ao menu principal");
                    Console.ReadLine();

                    break;
                    #endregion
                }
            } while (!querSair);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            int limiteAlunos = 3;
            int limiteSalas  = 2;

            Aluno[] alunos = new Aluno[limiteAlunos];
            Sala[]  salas  = new Sala[limiteSalas];

            int alunosCadastrados = 0;
            int salasCadastradas  = 0;

            bool querSair = false;

            do
            {
                Console.Clear();

                #region MENU
                // HEADER
                string[] itensMenu = Enum.GetNames(typeof(MenuEnum));
                string   barraMenu = "===================================";

                System.Console.WriteLine(barraMenu);
                Console.BackgroundColor = ConsoleColor.DarkRed;
                System.Console.WriteLine("        *** SENAIzinho ***         ");
                Console.ResetColor();
                System.Console.WriteLine("         Seja bem-vindo(a)         ");
                System.Console.WriteLine(barraMenu);
                System.Console.WriteLine("|| Digite sua opção:             ||");
                // BODY
                for (int i = 0; i < itensMenu.Length; i++)
                {
                    string espacosFim      = "";
                    string bordaLinha      = "||";
                    string paragrafoInicio = "   ";
                    string separadorOpcao  = " - ";

                    string nomeTratado = itensMenu[i].Replace("_", " ").ToLower();
                    nomeTratado = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(nomeTratado);
                    int espacoDezena = i / 10;

                    string numeroOpcao = (i + 1).ToString();

                    if (espacoDezena < 1)
                    {
                        paragrafoInicio = paragrafoInicio + " ";
                    }

                    int qntdeEspacos = barraMenu.Length - (bordaLinha.Length * 2) - paragrafoInicio.Length - numeroOpcao.Length - separadorOpcao.Length - nomeTratado.Length;

                    for (int j = 0; j < qntdeEspacos; j++)
                    {
                        espacosFim += " ";
                    }

                    System.Console.WriteLine($"{bordaLinha}{paragrafoInicio}{numeroOpcao}{separadorOpcao}{nomeTratado}{espacosFim}{bordaLinha}");
                }

                // FOOTER
                System.Console.WriteLine("||  0 - Sair                     ||");
                System.Console.WriteLine(barraMenu);
                #endregion

                System.Console.Write("Código: ");
                MenuEnum codigo = (MenuEnum)Enum.Parse(typeof(MenuEnum), Console.ReadLine());

                string mensagem;

                switch (codigo)
                {
                    #region CADASTRAR_ALUNO
                case MenuEnum.CADASTRAR_ALUNO:
                    if (limiteAlunos != alunosCadastrados)
                    {
                        Aluno aluno = new Aluno();

                        System.Console.WriteLine("Digite o nome do aluno");
                        aluno.Nome = Console.ReadLine();

                        System.Console.WriteLine("Digite a data de nascimento (dd/mm/aaaa)");
                        aluno.DataNascimento = DateTime.Parse(Console.ReadLine());

                        aluno.Curso = ExibirMenuCursos();

                        alunos[alunosCadastrados] = aluno;

                        alunosCadastrados++;

                        MostrarMensagem($"Cadastro de {aluno.GetType().Name} feito com sucesso!", TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem($"Total de alunos foi excedido!", TipoMensagemEnum.ALERTA);
                    }

                    break;

                    #endregion
                    #region CADASTRAR_SALA
                case MenuEnum.CADASTRAR_SALA:
                    if (limiteSalas != salasCadastradas)
                    {
                        System.Console.WriteLine("Digite o número da sala");
                        int numeroSalaCadastrar = int.Parse(Console.ReadLine());

                        System.Console.WriteLine("Digite a capacidade total");
                        int capacidadeTotalCadastrar = int.Parse(Console.ReadLine());

                        Sala sala = new Sala(numeroSalaCadastrar, capacidadeTotalCadastrar);

                        salas[salasCadastradas] = sala;

                        salasCadastradas++;

                        MostrarMensagem($"Cadastro de {sala.GetType().Name} feito com sucesso!", TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem($"Número de salas foi excedido!", TipoMensagemEnum.ALERTA);
                    }

                    break;

                    #endregion
                    #region ALOCAR_ALUNO
                case MenuEnum.ALOCAR_ALUNO:
                    ValidarAlocarOuRemover(alunosCadastrados, salasCadastradas);

                    System.Console.WriteLine("Digite o nome do aluno");
                    string nomeAluno       = Console.ReadLine();
                    Aluno  alunoRecuperado = ProcurarAlunoPorNome(nomeAluno, alunos);

                    if (alunoRecuperado == null)
                    {
                        MostrarMensagem($"Aluno {nomeAluno} não encontrado!", TipoMensagemEnum.ALERTA);
                        continue;
                    }

                    // Recupera o numero da sala
                    System.Console.WriteLine("Digite o número da sala");
                    int numeroSala = int.Parse(Console.ReadLine());

                    // Busca pela Sala correta
                    Sala salaRecuperada = ProcurarSalaPorNumero(numeroSala, salas);

                    if (salaRecuperada == null)
                    {
                        MostrarMensagem($"Sala {numeroSala} não encontrada!", TipoMensagemEnum.ALERTA);
                        continue;
                    }
                    if (salaRecuperada.AlocarAluno(alunoRecuperado, out mensagem))
                    {
                        MostrarMensagem(mensagem, TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem(mensagem, TipoMensagemEnum.ERRO);
                    }

                    break;

                    #endregion
                    #region REMOVER_ALUNO
                case MenuEnum.REMOVER_ALUNO:
                    ValidarAlocarOuRemover(alunosCadastrados, salasCadastradas);

                    System.Console.WriteLine("Digite o nome do aluno");
                    string nomeAlunoRemover = Console.ReadLine();

                    Aluno alunoRemover = ProcurarAlunoPorNome(nomeAlunoRemover, alunos);

                    if (alunoRemover == null)
                    {
                        MostrarMensagem($"Aluno {nomeAlunoRemover} não encontrado!", TipoMensagemEnum.ALERTA);
                        continue;
                    }

                    // Recupera o numero da sala
                    System.Console.WriteLine("Digite o número da sala");
                    int numeroSalaRemover = int.Parse(Console.ReadLine());

                    // Busca pela Sala correta
                    Sala salaRemover = ProcurarSalaPorNumero(numeroSalaRemover, salas);

                    if (salaRemover == null)
                    {
                        MostrarMensagem($"Sala {numeroSalaRemover} não encontrada!", TipoMensagemEnum.ALERTA);
                        continue;
                    }

                    if (salaRemover.RemoverAluno(alunoRemover.Nome, out mensagem))
                    {
                        MostrarMensagem(mensagem, TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem(mensagem, TipoMensagemEnum.ERRO);
                    }

                    break;

                    #endregion
                    #region LISTAR_SALAS
                case MenuEnum.LISTAR_SALAS:
                    foreach (var item in salas)
                    {
                        if (item != null)
                        {
                            System.Console.WriteLine("-----------------------------------------------------");
                            System.Console.WriteLine($"Número da sala: {item.NumeroSala}");
                            System.Console.WriteLine($"Vagas disponíveis: {item.CapacidadeAtual}");
                            System.Console.WriteLine($"Alunos: {item.ExibirAlunos()}");
                            System.Console.WriteLine("-----------------------------------------------------");
                        }
                    }

                    System.Console.WriteLine("Aperte ENTER para voltar ao menu principal");
                    Console.ReadLine();
                    break;

                    #endregion
                    #region LISTAR_ALUNOS
                case MenuEnum.LISTAR_ALUNOS:
                    foreach (var item in alunos)
                    {
                        if (item != null)
                        {
                            System.Console.WriteLine("-----------------------------------------------------");
                            System.Console.WriteLine($"Nome do aluno: {item.Nome}");
                            System.Console.WriteLine($"Curso: {item.Curso}");
                            System.Console.WriteLine("-----------------------------------------------------");
                        }
                    }
                    System.Console.WriteLine("Aperte ENTER para voltar ao menu principal");
                    Console.ReadLine();

                    break;
                    #endregion
                }
            } while (!querSair);
        }