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