From 823413293fae1c5f68b598fcb8be0a2994b852dc Mon Sep 17 00:00:00 2001 From: caioperschespindola Date: Wed, 17 Jun 2026 18:11:52 -0300 Subject: [PATCH 1/3] =?UTF-8?q?Valida=C3=A7=C3=A3o=20de=20entradas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Acompanhamento.java | 29 +++++---- Dados.java | 120 ++++++++++++++++++++++++++-------- Erro.java | 11 ++++ Gerenciador.java | 152 +++++++++++++++++++++++++++----------------- Menu.java | 66 +++++++------------ 5 files changed, 239 insertions(+), 139 deletions(-) create mode 100644 Erro.java diff --git a/Acompanhamento.java b/Acompanhamento.java index 0b564db..a465bbb 100644 --- a/Acompanhamento.java +++ b/Acompanhamento.java @@ -35,12 +35,15 @@ public class Acompanhamento { public String getRiscoLabel() { this.calcularRisco(); if (riscoPedagogico <= 3.3) { - return "BAIXO"; + return "O risco pedagógico deste aluno é BAIXO"; } if (riscoPedagogico > 3.3 && riscoPedagogico < 6.6) { - return "MODERADO"; + return "O risco pedagógico deste aluno é MODERADO"; } - return "ALTO"; + if (riscoPedagogico >= 6.6) { + return "O risco pedagógico deste aluno é ALTO"; + } + return Erro.E7; } public Aluno getAluno() { @@ -55,31 +58,35 @@ public class Acompanhamento { this.atividadesEntregues = atividadesEntregues; } - public void setAtividadesIA(int atividadesIA) { + public boolean setAtividadesIA(int atividadesIA) { if (atividadesIA > atividadesEntregues) { - System.out.println("AVISO: Você escolheu um número maior do que o total de atividades entregues."); + return true; } this.atividadesIA = atividadesIA; + return false; } - public void setAtividadesExplicadas(int atividadesExplicadas) { + public boolean setAtividadesExplicadas(int atividadesExplicadas) { if (atividadesExplicadas > atividadesEntregues) { - System.out.println("AVISO: Você escolheu um número maior do que o total de atividades entregues."); + return true; } this.atividadesExplicadas = atividadesExplicadas; + return false; } - public void setAtividadesSemAjuda(int atividadesSemAjuda) { + public boolean setAtividadesSemAjuda(int atividadesSemAjuda) { if (atividadesSemAjuda > atividadesEntregues) { - System.out.println("AVISO: Você escolheu um número maior do que o total de atividades entregues."); + return true; } this.atividadesSemAjuda = atividadesSemAjuda; + return false; } - public void setAtividadesNaoEstudadas(int atividadesNaoEstudadas) { + public boolean setAtividadesNaoEstudadas(int atividadesNaoEstudadas) { if (atividadesNaoEstudadas > atividadesEntregues) { - System.out.println("AVISO: Você escolheu um número maior do que o total de atividades entregues."); + return true; } this.atividadesNaoEstudadas = atividadesNaoEstudadas; + return false; } } \ No newline at end of file diff --git a/Dados.java b/Dados.java index 6ff1391..702e212 100644 --- a/Dados.java +++ b/Dados.java @@ -13,7 +13,11 @@ public class Dados { bolsistas = new Bolsista[]{}; } - public void appendAluno(Aluno aluno){ + public String appendAluno(Aluno aluno){ + if (checkDuplicate(aluno.getNome())){ + return Erro.E3; + } + int size = this.alunos.length; Aluno[] novoArray = new Aluno[size + 1]; @@ -24,9 +28,15 @@ public class Dados { novoArray[size] = aluno; this.alunos = novoArray; + + return "Aluno cadastrado com sucesso."; } - public void appendAcompanhamento(Acompanhamento acomp){ + public String appendAcompanhamento(Acompanhamento acomp){ + if (checkDuplicate(acomp.getAluno().getNome())){ + return Erro.E3; + } + int size = this.acompanhamentos.length; Acompanhamento[] novoArray = new Acompanhamento[size + 1]; @@ -37,9 +47,15 @@ public class Dados { novoArray[size] = acomp; this.acompanhamentos = novoArray; + + return "Acompanhamento cadastrado com sucesso."; } - public void appendBolsista(Bolsista bolsista){ + public String appendBolsista(Bolsista bolsista){ + if (checkDuplicate(bolsista.getNome())){ + return Erro.E3; + } + int size = this.bolsistas.length; Bolsista[] novoArray = new Bolsista[size + 1]; @@ -51,9 +67,21 @@ public class Dados { novoArray[size] = bolsista; this.bolsistas = novoArray; + return "Bolsista cadastrado com sucesso."; + } + private boolean checkDuplicate(String nome){ + for (int i = 0; i < alunos.length; i++){ + if (nome.equals(alunos[i].getNome())){ + return true; + } + } + + return false; + } + private int findAlunoIndex(String nome){ for (int i = 0; i < alunos.length; i++){ if (nome.equals(alunos[i].getNome())) @@ -63,7 +91,13 @@ public class Dados { } public Aluno findAluno(String nome){ - return alunos[findAlunoIndex(nome)]; + int index = findAlunoIndex(nome); + + if (index == -1){ + return null; + } + + return alunos[index]; } public Acompanhamento findAcompanhamento(String nome){ @@ -76,20 +110,33 @@ public class Dados { return null; } - public void listAlunos(){ + public String listAlunos(){ + if (alunos.length == 0) + return Erro.E5; + + String lista = ""; for (int i = 0; i < alunos.length; i++){ - System.out.println(alunos[i].getNome()); + lista = lista.concat(alunos[i].getNome() + "\n"); } + + return lista; } - public void listBolsistas(){ - for (int i = 0; i < alunos.length; i++){ - if (alunos[i].getBolsista()) - System.out.println(alunos[i].getNome()); + public String listBolsistas(){ + if (bolsistas.length == 0) + return Erro.E5; + + String lista = ""; + for (int i = 0; i < bolsistas.length; i++){ + lista = lista.concat(bolsistas[i].getNome()); } + + return lista; } - public void riskReport(){ + public String riskReport(){ + if (acompanhamentos.length == 0) + return Erro.E8; String relatorio = ""; @@ -98,11 +145,13 @@ public class Dados { relatorio = relatorio.concat(acompanhamentos[i].getRiscoLabel() + "\n"); } - System.out.println(relatorio); + return relatorio; } - public void riskReportHigh(){ + public String riskReportHigh(){ + if (acompanhamentos.length == 0) + return Erro.E8; String relatorio = ""; @@ -112,19 +161,28 @@ public class Dados { } } - System.out.println(relatorio); + if (relatorio.length() == 0) + return Erro.E9; + + return relatorio; } - public void maiorNome(){ + public String maiorNome(){ + if (alunos.length == 0) + return Erro.E5; + int k = 0; for (int i = 1; i < alunos.length; i++){ if (alunos[i].getNome().length() > alunos[k].getNome().length()) k = i; } - System.out.println(alunos[k].getNome()); + return alunos[k].getNome(); } - public double averageAge(){ + public String averageAge(){ + if (alunos.length == 0) + return Erro.E5; + double sum = 0; for (int i = 0; i < alunos.length; i++){ @@ -132,10 +190,12 @@ public class Dados { } sum = sum / alunos.length; - return sum; + return "Idade média dos alunos: " + sum; } - public int totalVowels(){ + public String totalVowels(){ + if (alunos.length == 0) + return Erro.E5; int sum = 0; @@ -149,7 +209,7 @@ public class Dados { } - return sum; + return "Numero total de vogais:" + sum; } private boolean isVowel(char a){ @@ -160,15 +220,23 @@ public class Dados { public void makeChamada(){ this.chamada = ""; - for (int i = 0; i < alunos.length; i++){ - this.chamada = this.chamada.concat(alunos[i].getMatricula() + " / "); - this.chamada = this.chamada.concat(alunos[i].getNome() + " / "); - this.chamada = this.chamada.concat(alunos[i].getCurso() + "\n"); + + if (alunos.length == 0){ + this.chamada = Erro.E5; + } else { + for (int i = 0; i < alunos.length; i++){ + this.chamada = this.chamada.concat(alunos[i].getMatricula() + " / "); + this.chamada = this.chamada.concat(alunos[i].getNome() + " / "); + this.chamada = this.chamada.concat(alunos[i].getCurso() + "\n"); + } } } - public void printChamada(){ - System.out.println(chamada); + public String printChamada(){ + if (chamada.length() == 0) + return Erro.E6; + + return chamada; } public double coursePercent(String curso){ diff --git a/Erro.java b/Erro.java new file mode 100644 index 0000000..48a5c0b --- /dev/null +++ b/Erro.java @@ -0,0 +1,11 @@ +public class Erro { + public static final String E1 = "Erro: Opção do menu inválida."; + public static final String E2 = "Erro: Aluno não encontrado."; + public static final String E3 = "Erro: Já existe um aluno com esse nome."; + public static final String E4 = "Erro: Você escolheu um número maior do que o total de atividades entregues."; + public static final String E5 = "Erro: Não existem alunos cadastrados."; + public static final String E6 = "Erro: Nenhuma chamada foi criada."; + public static final String E7 = "Erro: Não foi possível calcular o risco pedagógico."; + public static final String E8 = "Erro: Não existem acompanhamentos cadastrados."; + public static final String E9 = "Erro: Não existe nenhum aluno com risco alto."; +} diff --git a/Gerenciador.java b/Gerenciador.java index f72fa11..d4c5249 100644 --- a/Gerenciador.java +++ b/Gerenciador.java @@ -1,4 +1,4 @@ -// TODO: validação nos metodos com entrada +// TODO: buffer clears import java.util.Scanner; @@ -6,38 +6,45 @@ public class Gerenciador { private Dados dados; private static Scanner input = new Scanner(System.in); - String nome, local, curso, matricula, projeto, orientador; - int idade, semestre, ano; - boolean bolsista; + String nome, local, curso, matricula, projeto, orientador = ""; + int idade, semestre, ano = 0; + boolean bolsista = false; public Gerenciador(Dados dados) { this.dados = dados; } - public void cadastrarAluno() { - System.out.println("Insira o nome do aluno:"); - nome = input.nextLine(); + public String cadastrarAluno() { + while (nome.length() == 0){ + System.out.println("Insira o nome do aluno:"); + nome = input.nextLine();} - System.out.println("Insira o local de nascimento do aluno:"); - local = input.nextLine(); + while (local.length() == 0){ + System.out.println("Insira o local de nascimento do aluno:"); + local = input.nextLine();} + while (curso.length() == 0){ System.out.println("Insira o curso do aluno:"); - curso = input.nextLine(); + curso = input.nextLine();} - System.out.println("Insira a matricula do aluno:"); - matricula = input.nextLine(); + while (matricula.length() == 0){ + System.out.println("Insira a matricula do aluno:"); + matricula = input.nextLine();} - System.out.println("Insira a idade do aluno:"); - idade = input.nextInt(); - input.nextLine(); //buffer clear + while (idade == 0 ){ + System.out.println("Insira a idade do aluno:"); + idade = input.nextInt(); + input.nextLine();} //buffer clear - System.out.println("Insira o semestre do aluno:"); - semestre = input.nextInt(); - input.nextLine(); //buffer clear + while (semestre == 0){ + System.out.println("Insira o semestre do aluno:"); + semestre = input.nextInt(); + input.nextLine();} //buffer clear - System.out.println("Insira o ano do aluno:"); - ano = input.nextInt(); - input.nextLine(); //buffer clear + while (ano == 0){ + System.out.println("Insira o ano do aluno:"); + ano = input.nextInt(); + input.nextLine();} //buffer clear Aluno aluno = new Aluno(nome, idade, local, curso, matricula, semestre, ano, false); this.dados.appendAluno(aluno); @@ -45,12 +52,14 @@ public class Gerenciador { System.out.println("O aluno é bolsista? (s/n)"); String resposta = input.nextLine().toLowerCase(); if (resposta.equals("s")){ - cadastrarBolsista(true, aluno); - } + return cadastrarBolsista(true, aluno); + } + + return "Aluno cadastrado com sucesso."; } - public void cadastrarBolsista(boolean resposta, Aluno alunoparametro) { + public String cadastrarBolsista(boolean resposta, Aluno alunoparametro) { Aluno aluno; @@ -59,25 +68,32 @@ public class Gerenciador { } else { System.out.println("Insira o nome do aluno a quem você deseja cadastrar uma bolsa:"); aluno = this.dados.findAluno(input.nextLine()); + if (aluno == null) + return Erro.E2; } - System.out.println("Insira o nome do projeto:"); - String projeto = input.nextLine(); + while (projeto.length() == 0){ + System.out.println("Insira o nome do projeto:"); + String projeto = input.nextLine();} - System.out.println("Insira o nome do orientador:"); - String orientador = input.nextLine(); + while (orientador.length() == 0){ + System.out.println("Insira o nome do orientador:"); + String orientador = input.nextLine();} Bolsista bolsista = new Bolsista(aluno, projeto, orientador); aluno.setBolsista(true); - this.dados.appendBolsista(bolsista); + return this.dados.appendBolsista(bolsista); } - public void registrarAcompanhamento() { + public String registrarAcompanhamento() { System.out.println("Insira o nome do Aluno que você deseja registrar o acompanhamento:"); String nome = input.nextLine(); Aluno aluno = this.dados.findAluno(nome); + if (aluno == null) + return Erro.E2; + Acompanhamento acomp = new Acompanhamento(aluno, 0, 0, 0, 0, 0); System.out.println("Insira a quantidade de atividades entregues:"); @@ -88,84 +104,102 @@ public class Gerenciador { System.out.println("Insira a quantidade de atividades entregues nas quais foi declarado o uso de IA:"); int ia = input.nextInt(); input.nextLine(); //buffer clear - acomp.setAtividadesIA(ia); + if (acomp.setAtividadesIA(ia)) + return Erro.E4; System.out.println("Insira a quantidade de atividades entregues que o aluno soube explicar:"); int explicadas = input.nextInt(); input.nextLine(); //buffer clear - acomp.setAtividadesExplicadas(explicadas); + if (acomp.setAtividadesExplicadas(explicadas)) + return Erro.E4; System.out.println("Insira a quantidade de atividades entregues que foram feitas sem ajuda:"); int semajuda = input.nextInt(); input.nextLine(); //buffer clear - acomp.setAtividadesSemAjuda(semajuda); + if (acomp.setAtividadesSemAjuda(semajuda)) + return Erro.E4; System.out.println("Insira a quanntidade de atividades entregues que utilizarão estruturas não estudadas:"); int naoestudadas = input.nextInt(); input.nextLine(); //buffer clear - acomp.setAtividadesNaoEstudadas(naoestudadas); + if (acomp.setAtividadesNaoEstudadas(naoestudadas)) + return Erro.E4; + + if (ia + explicadas + semajuda + naoestudadas > entregues) + return Erro.E4; this.dados.appendAcompanhamento(acomp); + return "Acompanhamento registrado com sucesso."; } - public void listarAlunos() { - this.dados.listAlunos(); + public String listarAlunos() { + return this.dados.listAlunos(); } - public void listarBolsistas() { - this.dados.listBolsistas(); + public String listarBolsistas() { + return this.dados.listBolsistas(); } - public void maiorNome(){ - this.dados.maiorNome(); + public String maiorNome(){ + return this.dados.maiorNome(); } - public void vogaisNomes(){ - System.out.println("Numero total de vogais: " + this.dados.totalVowels()); + public String vogaisNomes(){ + return this.dados.totalVowels(); } - public void percentualAlunos() { + public String percentualAlunos() { + String curso = ""; - System.out.println("Insira um curso:"); - String curso = input.nextLine(); + while (curso.length() == 0){ + System.out.println("Insira um curso:"); + curso = input.nextLine(); + } - System.out.print("O percentual de alunos matriculados nesse curso é de: " + this.dados.coursePercent(curso) + "%\n"); + return "O percentual de alunos matriculados nesse curso é de: " + this.dados.coursePercent(curso) + "%"; } - public void mediaIdadeAlunos() { - System.out.println("Idade média dos alunos: " + this.dados.averageAge()); + public String mediaIdadeAlunos() { + return this.dados.averageAge(); } - public void criarChamada() { + public String criarChamada() { this.dados.makeChamada(); + + if (chamada().equals(Erro.E5)) + return chamada(); + + return "Chamada criada com sucesso."; } - public void chamada() { - this.dados.printChamada(); + public String chamada() { + return this.dados.printChamada(); } - public void calcularRisco() { + public String calcularRisco() { System.out.println("Insira o nome de um aluno:"); Acompanhamento acomp = this.dados.findAcompanhamento(input.nextLine()); + if (acomp == null) + return Erro.E2; - System.out.println("O risco pedagógico deste aluno é " + acomp.getRiscoLabel()); + return acomp.getRiscoLabel(); } - public void relatorioRisco() { + public String relatorioRisco() { - this.dados.riskReport(); + return this.dados.riskReport(); } - public void altoRisco() { - this.dados.riskReportHigh(); + public String altoRisco() { + return this.dados.riskReportHigh(); } - public void inovacao() { - + public String inovacao() { + return null; } } \ No newline at end of file diff --git a/Menu.java b/Menu.java index 3498d70..370ae54 100644 --- a/Menu.java +++ b/Menu.java @@ -12,9 +12,10 @@ public class Menu { gerenciador = new Gerenciador(dados); Scanner input = new Scanner(System.in); + String result = null; while (true) { System.out.println( - "Escolha uma opcao:" + "\n" + + "\fEscolha uma opcao:" + "\n" + "1 - Cadastro de Aluno" + "\n" + "2 - Cadastro de Bolsisa " + "\n" + "3 - Regisrar dados de acompanhamento" + "\n" + @@ -30,70 +31,49 @@ public class Menu { "13 - Relatorio geral de risco pedagogico" + "\n" + "14 - Alunos em alto risco" + "\n" + "15 - (Colocar inovacao aqui)" + "\n" + - "16 - Encerrar o programa"); - prompt(input.nextInt()); + "16 - Encerrar o programa\n\n" + + result); + + result = prompt(input.nextInt()); } } - public static void prompt(int option) { + public static String prompt(int option) { switch (option) { - - // passar parametros - - // String nome,int idade,String local, String curso, String matricula,int - // semestre,int ano ,bool bolsista, String projeto, String orientador - case 1: - gerenciador.cadastrarAluno(); // completar com o nome correto das gerenciadores - break; + return gerenciador.cadastrarAluno(); case 2: - gerenciador.cadastrarBolsista(false, null); - break; + return gerenciador.cadastrarBolsista(false, null); case 3: - gerenciador.registrarAcompanhamento(); - break; + return gerenciador.registrarAcompanhamento(); case 4: - gerenciador.listarAlunos(); - break; + return gerenciador.listarAlunos(); case 5: - gerenciador.listarBolsistas(); - break; + return gerenciador.listarBolsistas(); case 6: - gerenciador.maiorNome(); - break; + return gerenciador.maiorNome(); case 7: - gerenciador.vogaisNomes(); - break; + return gerenciador.vogaisNomes(); case 8: - gerenciador.percentualAlunos(); - break; + return gerenciador.percentualAlunos(); case 9: - gerenciador.mediaIdadeAlunos(); - break; + return gerenciador.mediaIdadeAlunos(); case 10: - gerenciador.criarChamada(); - break; + return gerenciador.criarChamada(); case 11: - gerenciador.chamada(); - break; + return gerenciador.chamada(); case 12: - gerenciador.calcularRisco(); - break; + return gerenciador.calcularRisco(); case 13: - gerenciador.relatorioRisco(); - break; + return gerenciador.relatorioRisco(); case 14: - gerenciador.altoRisco(); - break; + return gerenciador.altoRisco(); // TODO: IMPLEMENTAR INOVAÇÃO case 15: - gerenciador.inovacao(); - break; + return gerenciador.inovacao(); case 16: System.exit(0); - - default: - System.out.println("Opção inválida"); } + return Erro.E1; } } \ No newline at end of file From 7f1b293d70b991c72a497184d6774d3445d8edb5 Mon Sep 17 00:00:00 2001 From: Caio Espindola Date: Fri, 19 Jun 2026 16:37:37 -0300 Subject: [PATCH 2/3] Update Menu.java --- Menu.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Menu.java b/Menu.java index 370ae54..0b50625 100644 --- a/Menu.java +++ b/Menu.java @@ -12,7 +12,7 @@ public class Menu { gerenciador = new Gerenciador(dados); Scanner input = new Scanner(System.in); - String result = null; + String result = ""; while (true) { System.out.println( "\fEscolha uma opcao:" + "\n" + @@ -76,4 +76,4 @@ public class Menu { } return Erro.E1; } -} \ No newline at end of file +} From f462b4bd2f7e1b240aef2c30f981cf41fa51df08 Mon Sep 17 00:00:00 2001 From: caioperschespindola Date: Fri, 19 Jun 2026 16:49:01 -0300 Subject: [PATCH 3/3] fixed cadastrarAluno() --- Gerenciador.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gerenciador.java b/Gerenciador.java index d4c5249..92dabe7 100644 --- a/Gerenciador.java +++ b/Gerenciador.java @@ -6,8 +6,8 @@ public class Gerenciador { private Dados dados; private static Scanner input = new Scanner(System.in); - String nome, local, curso, matricula, projeto, orientador = ""; - int idade, semestre, ano = 0; + String nome = "", local = "", curso = "", matricula = "", projeto = "", orientador = ""; + int idade = 0, semestre = 0, ano = 0; boolean bolsista = false; public Gerenciador(Dados dados) {