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 = "";
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");
}
}
@ -241,6 +241,10 @@ public class Dados {
return chamada;
}
public String getChamada(){
return chamada;
}
public double coursePercent(String curso){
if (alunos.length == 0) {return -1;}

View file

@ -1,5 +1,5 @@
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 E2 = "Erro: Aluno nao encontrado.";
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 = "";
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:");
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:");
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:");
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:");
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:");
idade = input.nextInt();
input.nextLine(); //buffer clear
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:");
semestre = input.nextInt();
input.nextLine(); //buffer clear
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:");
ano = input.nextInt();
input.nextLine(); //buffer clear
@ -72,11 +72,11 @@ public class Gerenciador {
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:");
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:");
orientador = input.nextLine();}
@ -113,7 +113,7 @@ public class Gerenciador {
input.nextLine(); //buffer clear
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();
input.nextLine(); //buffer clear
if (naoestudadas < 0) {return Erro.E11;}
@ -146,7 +146,7 @@ public class Gerenciador {
public String percentualAlunos() {
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:");
curso = input.nextLine();
}
@ -165,7 +165,7 @@ public class Gerenciador {
public String criarChamada() {
this.dados.makeChamada();
if (chamada().length() == 0) {return Erro.E5;}
if (this.dados.getChamada().length() == 0) {return Erro.E5;}
return "Chamada criada com sucesso.";
}

View file

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

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.
----