This commit is contained in:
caioperschespindola 2026-07-03 13:40:23 -03:00
parent 5016c8aef9
commit 0b5ff1b326
5 changed files with 21 additions and 152 deletions

View file

@ -164,7 +164,7 @@ public class Dados {
String relatorio = ""; String relatorio = "";
for (int i = 0; i < acompanhamentos.length; i++){ for (int i = 0; i < acompanhamentos.length; i++){
if (acompanhamentos[i].getRiscoLabel().equals("ALTO")){ if (acompanhamentos[i].getRiscoPedagogico() >= 6.6){
relatorio = relatorio.concat(acompanhamentos[i].getAluno().getNome() + ": Risco ALTO\n"); relatorio = relatorio.concat(acompanhamentos[i].getAluno().getNome() + ": Risco ALTO\n");
} }
} }
@ -241,6 +241,10 @@ public class Dados {
return chamada; return chamada;
} }
public String getChamada(){
return chamada;
}
public double coursePercent(String curso){ public double coursePercent(String curso){
if (alunos.length == 0) {return -1;} if (alunos.length == 0) {return -1;}

View file

@ -1,5 +1,5 @@
public class Erro { public class Erro {
public static final String E0 = "Erro: Um erro inesperado ocorreu."; public static final String E0 = "Erro: Um erro inesperado ocorreu: ";
public static final String E1 = "Erro: Opcao do menu invalida."; public static final String E1 = "Erro: Opcao do menu invalida.";
public static final String E2 = "Erro: Aluno nao encontrado."; public static final String E2 = "Erro: Aluno nao encontrado.";
public static final String E3 = "Erro: Ja existe um aluno com esse nome."; public static final String E3 = "Erro: Ja existe um aluno com esse nome.";

View file

@ -12,35 +12,35 @@ public class Gerenciador {
String nome = "", local = "", curso = "", matricula = ""; String nome = "", local = "", curso = "", matricula = "";
int idade = 0, semestre = 0, ano = 0; int idade = 0, semestre = 0, ano = 0;
while (nome.length() == 0){ while (nome.length() == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira o nome do aluno:"); System.out.println("Insira o nome do aluno:");
nome = input.nextLine();} nome = input.nextLine();}
while (local.length() == 0){ while (local.length() == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira o local de nascimento do aluno:"); System.out.println("Insira o local de nascimento do aluno:");
local = input.nextLine();} local = input.nextLine();}
while (curso.length() == 0){ while (curso.length() == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira o curso do aluno:"); System.out.println("Insira o curso do aluno:");
curso = input.nextLine();} curso = input.nextLine();}
while (matricula.length() == 0){ while (matricula.length() == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira a matricula do aluno:"); System.out.println("Insira a matricula do aluno:");
matricula = input.nextLine();} matricula = input.nextLine();}
while (idade == 0 ){ while (idade == 0 ){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira a idade do aluno:"); System.out.println("Insira a idade do aluno:");
idade = input.nextInt(); idade = input.nextInt();
input.nextLine(); //buffer clear input.nextLine(); //buffer clear
if (idade < 0) {return Erro.E11;}} if (idade < 0) {return Erro.E11;}}
while (semestre == 0){ while (semestre == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira o semestre do aluno:"); System.out.println("Insira o semestre do aluno:");
semestre = input.nextInt(); semestre = input.nextInt();
input.nextLine(); //buffer clear input.nextLine(); //buffer clear
if (semestre < 0) {return Erro.E11;}} if (semestre < 0) {return Erro.E11;}}
while (ano == 0){ while (ano == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira o ano do aluno:"); System.out.println("Insira o ano do aluno:");
ano = input.nextInt(); ano = input.nextInt();
input.nextLine(); //buffer clear input.nextLine(); //buffer clear
@ -72,11 +72,11 @@ public class Gerenciador {
if (aluno == null) {return Erro.E2;} if (aluno == null) {return Erro.E2;}
} }
while (projeto.length() == 0){ while (projeto.length() == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira o nome do projeto:"); System.out.println("Insira o nome do projeto:");
projeto = input.nextLine();} projeto = input.nextLine();}
while (orientador.length() == 0){ while (orientador.length() == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira o nome do orientador:"); System.out.println("Insira o nome do orientador:");
orientador = input.nextLine();} orientador = input.nextLine();}
@ -113,7 +113,7 @@ public class Gerenciador {
input.nextLine(); //buffer clear input.nextLine(); //buffer clear
if (semajuda < 0) {return Erro.E11;} if (semajuda < 0) {return Erro.E11;}
System.out.println("Insira a quanntidade de atividades entregues que utilizaram estruturas não estudadas:"); System.out.println("Insira a quantidade de atividades entregues que utilizaram estruturas não estudadas:");
int naoestudadas = input.nextInt(); int naoestudadas = input.nextInt();
input.nextLine(); //buffer clear input.nextLine(); //buffer clear
if (naoestudadas < 0) {return Erro.E11;} if (naoestudadas < 0) {return Erro.E11;}
@ -146,7 +146,7 @@ public class Gerenciador {
public String percentualAlunos() { public String percentualAlunos() {
String curso = ""; String curso = "";
while (curso.length() == 0){ while (curso.length() == 0){// Repete a pergunta até que uma resposta seja digitada
System.out.println("Insira um curso:"); System.out.println("Insira um curso:");
curso = input.nextLine(); curso = input.nextLine();
} }
@ -165,7 +165,7 @@ public class Gerenciador {
public String criarChamada() { public String criarChamada() {
this.dados.makeChamada(); this.dados.makeChamada();
if (chamada().length() == 0) {return Erro.E5;} if (this.dados.getChamada().length() == 0) {return Erro.E5;}
return "Chamada criada com sucesso."; return "Chamada criada com sucesso.";
} }

View file

@ -17,8 +17,8 @@ public class Menu {
System.out.println( System.out.println(
"\fEscolha uma opcao:" + "\n" + "\fEscolha uma opcao:" + "\n" +
"1 - Cadastro de Aluno" + "\n" + "1 - Cadastro de Aluno" + "\n" +
"2 - Cadastro de Bolsisa " + "\n" + "2 - Cadastro de Bolsista " + "\n" +
"3 - Regisrar dados de acompanhamento" + "\n" + "3 - Registrar dados de acompanhamento" + "\n" +
"4 - Listar alunos" + "\n" + "4 - Listar alunos" + "\n" +
"5 - Listar alunos bolsistas" + "\n" + "5 - Listar alunos bolsistas" + "\n" +
"6 - Nome mais longo de alunos cadastrados" + "\n" + "6 - Nome mais longo de alunos cadastrados" + "\n" +
@ -38,8 +38,7 @@ public class Menu {
try { try {
result = prompt(input.nextInt()); result = prompt(input.nextInt());
} catch(Exception e) { } catch(Exception e) {
System.out.println("\f"+ Erro.E0); result = "\f"+ Erro.E0 + e;
System.exit(-1);
} }
} }
} }

134
README.md
View file

@ -1,134 +0,0 @@
# Trabalho final de fundamentos
---
TITULO DO PROJETO: TF
PROPOSITO DO PROJETO: A partir da escolha do usuario, o programa executa o metodo respectivo da escolha, com o projeto sendo um conjunto de metodos que conversam entre si, fundalmentalmente passando pela classe Gerenciador e sendo executados no Menu, esse sendo onde o método main se encontra.
COMO COMECAR O PROJETO: Inicialize o projeto clicando com o botao direito na classe Menu e selecionando o metodo main.
AUTORES: Caio Persch Espindola (26102478), Gabriel Franco (26102988), Arthur Dietrich de Morais (26106328)
---
INSTRUCOES PARA USUARIO:
Esscolha uma opção do menu digitando o numero correspondente:
1 - Cadastrar um aluno
2 - Cadastrar um bolsista
3 - Registrar dados de acompanhamento
4 - Listar alunos
5 - Listar bolsistas
6 - Aluno com maior nome
7 - Total de vogais
8 - Calcular percentual dos alunos
9 - Calcular media de idade dos alunos
10 - Criar/Atualizar lista de chamada
11 - Lista de chamada
12 - Calculo do risco pedagogico
13 - Relatorio geral do risco pedagogico
14 - Mostrar alunos em alto risco
15 - Ranking
16 - Encerrar o programa
Ao inserir qual das 16 ações possiveis o usuario deseja realizar, os metodos apropriados são chamados, das classes Acompanhamento ou Aluno. Depois, o programa retornara para o menu, ate o usuario escolher sair.
Voce pode criar quantos Alunos, Bolsistas, Listas, etc, que voce desejar sem precisar reiniciar o programa.
---
COMO O PROGRAMA FUNCIONA:
O sistema é constituido por 8 classes: Pessoa, Aluno, Bolsista, Acompanhamento, Dados, Erro, Gerenciador e Menu. O método main se localiza na classe Menu e, quando chamado, passa a receber informações do usuário por meio de um loop while e um switch case.
Apos o input do usuario um dos metodos sera "rodado".
Explicação das classes:
Pessoa: É apenas uma classe básica de pessoa, contendo os atributos nome, idade e local de nascimento.
Aluno: É a classe base da criação de um aluno, contendo os atributos Pessoa, curso, matricula, semestre, ano e bolsista.
Bolsista: É a classe base da criação de um bolsista, contendo os atributos Aluno, projeto e orientador.
Acompanhamento: É a classe onde os metodos do cálculo de risco pedagógico estão, contendo também um método de ".getRiscoLabel" que retorna a classificação dos alunos entre os riscos de ALTO, MODERADO ou BAIXO.
Dados: É a classe onde occorem as intanciações de vetores de objetos, também contendo alguns dos métodos
Gerenciador: A classe contendo alguns dos métodos principais, também servindo de intermediário entre as classes Dados e Menu.
Erro: Classe contendo mensagens de erros diversos que podem ocorrer durante a execução do programa.
Menu: A classe que contem o menu de seleção interativo com todos os métodos, também sendo a classe que tem o método main.
COMPOSIÇÃO DAS CLASSES:
Pessoa: A classe Pessoa é a classe base, sendo só instanciada em Aluno.
Aluno: A classe Aluno instancia "Pessoa" como atributo.
Bolsista: A classe Bolsista intancia "Aluno" como atributo.
Acompanhamento: A classe Acompanhamento instancia "Aluno" como atributo.
RISCOS PEDAGOGICOS:
O método escolhido de como definir o risco pedagógico foi de calcular a média aritmética entre as porcentagens de atividades feitas com IA, não explicadas, feitas com ajuda, e que utilizam funcionalidades não estudadas; sendo os dados utilizados para os cálculos originados da classe Acompanhamento, que possui uma instancia da classe Aluno e várias variáveis que representam os diferentes tipos de atividades entregues.
---
VERSION CONTROL:
1.0
Feito pelos 3 membros juntos.
Cada um fez uma parte inicial do projeto.
2.0
Gabriel fez a classe Gerenciador.
Caio fez a classe Dados.
Arthur fez a classe Menu.
3.0
Caio fez a classe Erros.
Diversas correções foram feitas.
4.0
Revisão final e consenso de finalização do trabalho por todos os membros.
---
REFERENCIAS:
Não utilizamos referencias durante a produção do trabalho.
RELATORIO:
Conceitos apredidos durante o andamento de todo o semestre foram muito reforcados, principalmente sobre vetores de objetos e como compor uma classe com outra.
Não foram utilizadas nenhuma ferramenta de IA durante a produção do trabalho.
Não tivemos nenhuma dificuldade grande, e os questionamentos que surgiram durante a programação foram discutidas por todos entre o grupo, chegando em um consenso e aplicando nossas ideias.
----