tf_fundamentos/Gerenciador.java
2026-06-17 18:11:52 -03:00

205 lines
No EOL
5.5 KiB
Java

// TODO: buffer clears
import java.util.Scanner;
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;
boolean bolsista = false;
public Gerenciador(Dados dados) {
this.dados = dados;
}
public String cadastrarAluno() {
while (nome.length() == 0){
System.out.println("Insira o nome do aluno:");
nome = 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();}
while (matricula.length() == 0){
System.out.println("Insira a matricula do aluno:");
matricula = input.nextLine();}
while (idade == 0 ){
System.out.println("Insira a idade do aluno:");
idade = input.nextInt();
input.nextLine();} //buffer clear
while (semestre == 0){
System.out.println("Insira o semestre do aluno:");
semestre = 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);
System.out.println("O aluno é bolsista? (s/n)");
String resposta = input.nextLine().toLowerCase();
if (resposta.equals("s")){
return cadastrarBolsista(true, aluno);
}
return "Aluno cadastrado com sucesso.";
}
public String cadastrarBolsista(boolean resposta, Aluno alunoparametro) {
Aluno aluno;
if (resposta){
aluno = alunoparametro;
} 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;
}
while (projeto.length() == 0){
System.out.println("Insira o nome do projeto:");
String projeto = 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);
return this.dados.appendBolsista(bolsista);
}
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:");
int entregues = input.nextInt();
input.nextLine(); //buffer clear
acomp.setAtividadesEntregues(entregues);
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
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
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
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
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 String listarAlunos() {
return this.dados.listAlunos();
}
public String listarBolsistas() {
return this.dados.listBolsistas();
}
public String maiorNome(){
return this.dados.maiorNome();
}
public String vogaisNomes(){
return this.dados.totalVowels();
}
public String percentualAlunos() {
String curso = "";
while (curso.length() == 0){
System.out.println("Insira um curso:");
curso = input.nextLine();
}
return "O percentual de alunos matriculados nesse curso é de: " + this.dados.coursePercent(curso) + "%";
}
public String mediaIdadeAlunos() {
return this.dados.averageAge();
}
public String criarChamada() {
this.dados.makeChamada();
if (chamada().equals(Erro.E5))
return chamada();
return "Chamada criada com sucesso.";
}
public String chamada() {
return this.dados.printChamada();
}
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;
return acomp.getRiscoLabel();
}
public String relatorioRisco() {
return this.dados.riskReport();
}
public String altoRisco() {
return this.dados.riskReportHigh();
}
public String inovacao() {
return null;
}
}