예제 #1
0
        static void Main(string[] args)
        {
            int    opcao;
            string nome;
            string curso;
            int    numeroSala;

            List <Aluno> alunos        = new List <Aluno> ();
            string       filePathAluno = "aluno.csv";

            alunos = initListAluno(@filePathAluno);

            List <Sala> salas        = new List <Sala> ();
            string      filePathSala = "sala.csv";

            salas = initListSala(@filePathSala);

            do
            {
                Console.Clear();
                System.Console.WriteLine("Bem-vindo ao SENAIzinho");
                System.Console.WriteLine();
                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 - Verificar Salas");
                System.Console.WriteLine("6 - Verificar Alunos");
                System.Console.WriteLine("0 - Sair");
                System.Console.Write("Opção: ");
                opcao = int.Parse(Console.ReadLine());

                switch (opcao)
                {
                case 1:
                    if (alunos.Count < 100)
                    {
                        Console.Clear();
                        System.Console.Write("Nome do Aluno Completo: ");
                        nome = Console.ReadLine();
                        System.Console.Write("Data de Nascimento: ");
                        DateTime dataNasc = DateTime.Parse(Console.ReadLine());
                        System.Console.WriteLine("Curso: ");
                        curso = Console.ReadLine();
                        Aluno aluno1 = new Aluno();
                        alunos.Add(aluno1);
                    }
                    else
                    {
                        System.Console.WriteLine("Não há vagas");
                    }
                    break;

                case 2:
                    if (salas.Count < 10)
                    {
                        Console.Clear();
                        System.Console.Write("Digite o número da sala: ");
                        numeroSala = int.Parse(Console.ReadLine());
                        Sala sala1 = new Sala();
                        salas.Add(sala1);
                    }
                    else
                    {
                        System.Console.WriteLine("Não há mais espaço para salas");
                    }
                    break;

                case 3:
                    Console.Clear();
                    System.Console.Write("Nome do Aluno Completo: ");
                    nome = Console.ReadLine();
                    System.Console.WriteLine("Sala que o aluno será alocado: ");
                    numeroSala = int.Parse(Console.ReadLine());


                    break;

                case 4:
                    int index = 0;
                    do
                    {
                        Console.Clear();
                        System.Console.Write("Digite o ID do Aluno ou x para terminar");
                        System.Console.WriteLine("ID: ");
                        string id = Console.ReadLine();

                        if (id.ToLower() == "x")
                        {
                            break;
                        }
                        else
                        {
                            index = int.Parse(id) - 1;
                        }

                        if ((index < 0) || (index > alunos.Count - 1))
                        {
                            Console.WriteLine("ID inválido");
                            Console.WriteLine("Pressione <enter> para continuar");
                            Console.ReadLine();
                        }
                        else
                        {
                            alunos.RemoveAt(index);
                        }
                    }while(true);
                    break;

                case 5:
                    ListaItensSala(salas);
                    break;

                case 6:
                    ListaItensAluno(alunos);
                    break;

                case 0:
                    System.Console.WriteLine("Tchau!");
                    break;

                default:
                    Console.WriteLine("Opção Inválida");
                    Console.ReadLine();
                    break;
                }
            }while(opcao != 0);
        }
예제 #2
0
        static void Main(string[] args)
        {
            int limiteAlunos = 5;
            int limiteSalas  = 2;

            // int limiteProfessores = 2;

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

            int alunosCadastrados = 0;
            int salasCadastradas  = 0;

            string[] itensMenu = Enum.GetNames(typeof(MenuEnum));

            bool querSair = false;

            do
            {
                Console.Clear();
                string barraMenu = "===================================";
                System.Console.WriteLine(barraMenu);
                Console.ForegroundColor = 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:             ||");

                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}");
                }

                System.Console.WriteLine("||            0 - Sair           ||");
                System.Console.WriteLine(barraMenu);

                string mensagem = "";

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

                switch (codigo)
                {
                    #region CADASTRO_ALUNOS
                case MenuEnum.CADASTRAR_ALUNO:
                    if (limiteAlunos != alunosCadastrados)
                    {
                        System.Console.WriteLine("Digite o Nome do aluno");
                        Aluno aluno = new Aluno(Console.ReadLine());
                        System.Console.WriteLine("Digite a data de nascimento (dd/mm/aaaa)");
                        aluno.DataNascimento      = DateTime.Parse(Console.ReadLine());
                        aluno.Curso               = ExibirMenuCurso();
                        alunos[alunosCadastrados] = aluno;
                        alunosCadastrados++;
                        MostrarMensagem($"\nCadastro de {aluno.GetType().Name} concluído!", TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem($"\nLimite de alunos atingido!", TipoMensagemEnum.ERRO);
                    }
                    break;

                    #endregion
                    #region CADASTRO_SALAS
                case MenuEnum.CADASTRAR_SALA:
                    if (limiteSalas != salasCadastradas)
                    {
                        System.Console.WriteLine("Digite o número da sala");
                        int numSala = int.Parse(Console.ReadLine());
                        System.Console.WriteLine("Digite a capacidade total");
                        int  capacidadeTotal = int.Parse(Console.ReadLine());
                        Sala sala            = new Sala(numSala, capacidadeTotal);
                        salas[salasCadastradas] = sala;
                        salasCadastradas++;
                        MostrarMensagem($"Cadastro de {sala.GetType().Name} concluído!", TipoMensagemEnum.SUCESSO);
                    }
                    else
                    {
                        MostrarMensagem($"Limite de salas atingido!", TipoMensagemEnum.ERRO);
                    }
                    break;

                    #endregion
                    #region ALOCAR_ALUNO
                case MenuEnum.ALOCAR_ALUNO:
                    if (!ValidarAlocarOuRemover(alunosCadastrados, salasCadastradas))
                    {
                        continue;
                    }
                    System.Console.WriteLine("Digite o Nome do aluno");
                    string NomeAluno       = Console.ReadLine();
                    Aluno  alunoRecuperado = ProcurarAlunoPorNome(alunos, NomeAluno);
                    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(salas, NumeroSala);
                    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:
                    if (!ValidarAlocarOuRemover(alunosCadastrados, salasCadastradas))
                    {
                        continue;
                    }
                    System.Console.WriteLine("Digite o Nome do aluno");
                    string NomeAlunoRemover = Console.ReadLine();
                    Aluno  alunoRemover     = ProcurarAlunoPorNome(alunos, NomeAlunoRemover);
                    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(salas, NumeroSalaRemover);
                    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
                case 0:
                    querSair = true;
                    MostrarMensagem("Até logo!", TipoMensagemEnum.DESTAQUE);
                    break;

                default:
                    MostrarMensagem("Código inválido",

                                    TipoMensagemEnum.ERRO);
                    break;
                }
            } while (!querSair);
        }