-
estaAprovado(int posAluno):boolean
(Um método que permite verificar se
o aluno na posição posAluno da lista está ou não aprovado na disciplina. O método
retorna true se aprovado e false, caso contrário. Um aluno aprovado possui nota maior
OU igual a 6 e frequência maior ou igual a 75%).
-
exibirReprovados():void
(Um método que permite exibir todos os alunos aprovados na disciplina. Se não houverem alunos reprovados, então deve-se imprimir “Não
há alunos reprovados.”. Se não houver alunos matriculados na disciplina imprimir “Disciplina não possui alunos matriculados”).
-
exibirAprovados():void
(Um método que permite exibir todos os alunos aprovados. Se não houverem alunos aprovados, então deve-se imprimir “Não há alunos
aprovados.”. Se não houver alunos matriculados na disciplina imprimir “Disciplina
não possui alunos matriculados”).
public boolean estaAprovado( int posAluno, int frequenciaTotal) {
if(posAluno>=6 && frequenciaTotal>=75/100) {
return true;
}
else {
return false;
}
}
Como posso criar os public void exibirAprovado e public void exibirReprovado?
Usando o método estaAprovado, vc já consegue identificar quem está aprovado ou não. Com isso, vc basta vc percorrer a lista de alunos, chamando esse método, e apresentar os dados apenas do que esse método retornar true para exibirAprovado e false para exibirReprovado.
Imaginando que vc tenha uma lista de alunos, imagino algo mais ou menos assim:
for (int i = 0; i < alunos.size(); i++) {
if (estaAprovado(...)) {
// aluno aprovado, imprime dados
} else {
// aluno reprovado, imprime dados
}
}
Porém, tem algo que não entendi nesse método estaAprovado. O parâmetro posAluno seria a nota dele? Pois, pelo nome, parece mais um índice que indica a posição em algum array ou lista.
E esse método estaAprovado poderia ser simplificado para ficar assim:
public boolean estaAprovado(int posAluno, int frequenciaTotal) {
return posAluno >= 6 && frequenciaTotal >= (75/100); // é bom colocar os parênteses nesse cálculo
}
Obrigada!!
O Trabalho é muito extenso , como é minha primeira publicação , fiquei em dúvida se poderia postar ele completo. Aqui é quando o posAluno é mencionado:
addNota(int posAluno, double nota):boolean (Um método que permite
configurar para o aluno na posição posAluno a sua nota (nota) na disciplina. Retorne
verdadeiro ou falso se isso for possível. O valor para nota deve estar no intervalo [0,10])
Tenho essas listas : ArrayList alunos , ArrayList notas e ArrayList frequencias
Por ser um exercicio de POO, então vc não precisa ter 3 ArrayList para armazenar esses dados do aluno. Em vez disso, vc poderia ter uma classe Aluno com 3 propriedades:
public class Aluno {
private String nome;
private double nota;
private double frequencia;
}
Com isso, vc consegue manter todos os alunos com seus dados numa única lista:
List<Aluno> alunos = new ArrayList<>();
Acredito que vá deixar seu código mais simples. Por exemplo, no método está aprovado, em vez de receber a um posAluno e frequenciaTotal como parâmetro, poderia receber o Aluno diretamente:
public boolean estaAprovado(Aluno aluno) {
return aluno.getNota() >= 6 && aluno.getFrequencia() >= (75/100);
}
E pensando numa utilização ainda melhor de POO, vc poderia ter esse método estaAprovado criado diretamente na classe Aluno. Já que a aprovação, no seu exercício, está ligado diretamente ao aluno.
public class Aluno {
private String nome;
private double nota;
private double frequencia;
// getters and setters
public boolean estaAprovado() {
return this.nota >= 6 && this.frequencia >= (75/100);
}
}
Dessa forma, vc poderia verificar os alunos aprovados da lista assim:
for (Aluno aluno : alunos) {
if (aluno.estaAprovado()) {
// aluno aprovado, apresenta dados
}
}
Não tenho tanto conhecimento , estou na POO1. Estou seguindo a ordem dos exercícios e travei na parte de exibirAprovados e reprovados.
Só coloquei o trabalho pq acho que é obrigatório ter 3 ArrayList.
Entendi agora. Tenta postar o código que vc fez até agora pra gente ver.
package aluno;
public class Aluno {
//Atributos do Alunos
public int periodo;
public int ra;
public String nome;
public String curso;
//Construtor da classe Aluno.
public Aluno (int ra, String nome, String curso) {
this.periodo = 1;
setRa(ra);
setNome(nome);
setCurso(curso);
}
public Aluno (int periodo, int ra, String nome,String curso) {
setPeriodo(periodo);
setRa(ra);
setNome(nome);
setCurso(curso);
}
//Metodos
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome =nome;
}
public String getCurso() {
return this.curso;
}
public void setCurso(String curso) {
this.curso =curso;
}
public int getRa() {
return this.ra;
}
public void setRa(int ra) {
if (ra < 1000 || ra > 9999) {
System.out.println("RA inválido!");
} else {
this.ra = ra;
}
}
public int getPeriodo() {
return this.periodo;
}
public void setPeriodo(int periodo) {
this.periodo =periodo;
}
public void exibirAluno() {
System.out.println("Dados do Aluno");
System.out.println("Nome do Aluno:"+ this.nome);
System.out.println("Nome do Curso:"+ this.curso);
System.out.println("Numero do Registro Academico:"+ this.ra);
System.out.println("Periodo:"+this.periodo);
}
}
package funcionarios;
public class Professor {
//Atributos
public String nome;
public int suap;
// Construtores
public Professor (String nome , int suap) {
setNome(nome);
setSuap(suap);
}
// Metodos
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome=nome;
}
public int getSuap() {
return this.suap;
}
public void setSuap(int suap) {
if (suap >= 1000 && suap <= 9999) {
this.suap = suap;
} else {
System.out.println("Número de Suap inválido!");
}
}
public void exibirProfessor() {
System.out.println("/////Dados do Professor/////");
System.out.println("Nome do Professor:"+ nome);
System.out.println("Numero do Suap:"+ suap);
}
}
package academico;
import java.util.ArrayList;
import aluno.Aluno;
import funcionarios.Professor;
public class Disciplina {
//Atributos
public String nome;
public int periodo;
public int numAulasSemana;
public int numTotalAulas;
public int numSemanas;
Professor professor;
public ArrayList<Aluno> alunos;
public ArrayList<Double> notas;
public ArrayList<Integer> frequencias;
public ArrayList<Aluno> getNumeroAlunos;
public ArrayList<Double> posAluno;
public int frequenciaTotal;
// Construtor
public Disciplina(String nome, int periodo, int numAulasSemana, int numSemanas) {
setNome(nome);
setPeriodo(periodo);
setNumAulasSemana(numAulasSemana);
setNumSemanas(numSemanas);
this.numTotalAulas = getNumAulasSemana() * getNumSemanas();
alunos = new ArrayList<Aluno>();
notas = new ArrayList<Double>();
frequencias = new ArrayList<Integer>();
}
public Disciplina(String nome, int periodo, int numAulasSemana, int numSemanas, Professor professor) {
setNome(nome);
setPeriodo(periodo);
setNumAulasSemana(numAulasSemana);
setNumSemanas(numSemanas);
alunos = new ArrayList<Aluno>();
notas = new ArrayList<Double>();
frequencias = new ArrayList<Integer>();
this.numTotalAulas = getNumAulasSemana() * getNumSemanas();
this.professor = professor;
}
//Métodos
public int getNumSemanas() {
return numSemanas;
}
public void setNumSemanas(int numSemanas) {
this.numSemanas = numSemanas;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getPeriodo() {
return periodo;
}
public void setPeriodo(int periodo) {
this.periodo = periodo;
}
public int getNumAulasSemana() {
return numAulasSemana;
}
public void setNumAulasSemana(int numAulasSemana) {
this.numAulasSemana = numAulasSemana;
}
public int getNumeroAlunos() {
return getNumeroAlunos();
}
public void setNumeroAlunos() {
this.getNumeroAlunos = alunos;
}
public Professor getProfessor() {
return professor;
}
public void setProfessor(Professor professor) {
this.professor = null;
}
public void removerProfessor() {
this.professor = null;
}
public Aluno getAlunos(int i) {
return alunos.get(i);
}
public void setAlunos(ArrayList<Aluno> alunos) {
this.alunos = alunos;
}
public Double getNotas(int i) {
return notas.get(i);
}
public void setNotas(ArrayList<Double> notas) {
this.notas = notas;
}
public Integer getFrequencias(int i) {
return frequencias.get(i);
}
public void setFrequencias(ArrayList<Integer> frequencias) {
this.frequencias = frequencias;
}
public boolean matricularAluno(Aluno aluno) {
return alunos.add(aluno);
}
public boolean desmatricularAluno(int posAluno) {
return alunos.remove(posAluno) != null;
}
public boolean addNota(int posAluno, double nota) {
if (nota > 0 || nota < 10) {
this.posAluno = notas;
return true;
} else {
}
return false;
}
public boolean addFrequencia(int posAluno, int frequenciaTotal) {
int i = 0;
if (i > 0 || i < numTotalAulas) {
this.frequenciaTotal = getFrequencias(frequenciaTotal) * getNumSemanas();
return true;
} else {
return false;
}
}
public boolean estaAprovado(int posAluno, int frequenciaTotal) {
if (posAluno >= 6 && frequenciaTotal >= (75 / 100)) {
return true;
} else {
return false;
}
}
public void exibirReprovados() {
int frequenciaTotal = 0;
int posAluno = 0;
if (posAluno < 6 && frequenciaTotal < (75 / 100))
System.out.println("Alunos reprovados:" + alunos);
else {
System.out.println("Não há alunos reprovados");
}
if (getNumeroAlunos == null)
System.out.println("Disciplina não possui alunos matriculados");
}
public void exibirAprovados() {
int frequenciaTotal = 0;
int posAluno = 0;
if (posAluno >= 6 && frequenciaTotal >= (75 / 100))
System.out.println("Alunos aprovados:" + alunos);
else {
System.out.println("Não há alunos aprovados");
}
if (getNumeroAlunos == null)
System.out.println("Disciplina não possui alunos matriculados");
}
public void informacoesDisciplina() {
System.out.println("Dados da Disciplina:");
System.out.println("Nome:" + nome);
System.out.println("Periodo:" + periodo);
System.out.println("Numero de Aulas na Semana:" + numAulasSemana);
System.out.println("Numero de semanas:" + numSemanas);
System.out.println("Numero total de aulas:" + numTotalAulas);
System.out.println("Professor:");
professor.exibirProfessor();
}
public void exibirProfessor() {
System.out.println("Nome do Professor:" + professor);
if (professor == null)
System.out.println("Disciplina não possui profesor");
}
public double calcularMedia() {
this.mediaTotal= +((Aluno) alunos.get(i)).periodo getMedia
}
}
package main;
import java.util.ArrayList;
import java.util.Scanner;
import academico.Disciplina;
import aluno.Aluno;
import funcionarios.Professor;
public class Main {
public static void main(String args[]) {
try (Scanner leitura = new Scanner(System.in)) {
Aluno a1 = new Aluno(1111, "Adriana", "Matemática");
Aluno a2 = new Aluno(2222, "Adriano", "Matemática");
Aluno a3 = new Aluno(3333, "Alessandra", "Matemática");
Aluno a4 = new Aluno(4444, "Alessandro", "Matemática");
Aluno a5 = new Aluno(5555, "Bruna", "Matemática");
Aluno a6 = new Aluno(6666, "Bruno", "Matemática");
Aluno a7 = new Aluno(7777, "Carla", "Matemática");
Aluno a8 = new Aluno(8888, "Carlos", "Matemática");
Aluno a9 = new Aluno(9999, "Daniela", "Matemática");
Aluno a10 = new Aluno(1010, "Daniel", "Matemática");
Professor professor = new Professor("Einstein", 1879);
Disciplina disciplina = new Disciplina("Física", 1, 4, 9, professor);
int opcao = 0;
do {
System.out.println("--------------------------");
System.out.println("Digite a opção desejada:");
System.out.println("************************************");
System.out.println("1- Imprimir informações de um aluno");
System.out.println("************************************");
System.out.println("2- Imprimir informações da disciplina");
System.out.println("************************************");
System.out.println("3-Imprimir o professor resposável");
System.out.println("************************************");
System.out.println("4-Finalizar o programa");
System.out.println("************************************");
opcao = leitura.nextInt();
switch (opcao) {
case 1: {
a1.exibirAluno();
break;
}
case 2: {
disciplina.informacoesDisciplina();
break;
}
case 3: {
professor.exibirProfessor();
break;
}
case 4: {
System.out.println("Finalizando o programa...");
opcao = 4;
break;
}
default: {
System.out.println("Atenção!! Digite outro valor!");
break;
}
}
} while (opcao != 4);
}
}
}
Obviamente tem bastante erros , mas como disse, não entendo muito bem ( estou ate com dor de cabeça rs)
- No código da classe Main, reparei que vc cria os alunos, porém não os adiciona na Disciplina.
- Os métodos exibirReprovados e exibirAprovados da classe Disciplina deve usar os ArrayList de alunos, notas e frequencias para realizar a lógica. Veja como deve ficar o método exibirReprovados:
// Método que verifica se o aluno está aprovado
public boolean estaAprovado(int posAluno) {
Double nota = notas.get(posAluno);
Integer frequencia = frequencias.get(posAluno);
return (nota >= 6) && (frequencia >= (75 / 100));
}
public void exibirReprovados() {
if (alunos.isEmpty()) {
System.out.println("Disciplina não possui alunos matriculados");
return;
}
List<Aluno> alunosReprovados = new ArrayList<>();
for (int i = 0; i < alunos.size(); i++) {
if (!estaAprovado(i)) {
alunosReprovados.add(alunos.get(i));
}
}
if (alunosReprovados.isEmpty()) {
System.out.println("Não há alunos reprovados!");
return;
}
System.out.println(">> Lista de alunos reprovados: ");
for (Aluno aluno : alunosReprovados) {
System.out.println("- " + aluno.getNome());
}
}
Lembre-se: Para funcionar, os alunos devem ser adicionados na lista de alunos da disciplina pela classe Main.
Obrigada novamente Lucas ! Depois de fazer todos os métodos , vou adicioná-los no Main.
Vc poderia me orientar em como fazer o método calcularMedia ?
calcularMedia():double (Um método que retorna a média das notas de todos os
alunos matriculados na disciplina. Esse valor é a média total da turma)
Eu teria que chamar as notas de todos os alunos e dividir pela quantidade de alunos, mas não sei como fazer isso em códigos .
Faça um FOR nas notas fazendo a soma numa variável a parte (double soma = 0
). Depois divida pela quantidade de notas. A soma pode ser assim: soma += nota
(dentro do FOR).
Veja esse esquema:
1- declara soma;
2- percorra as notas fazendo a soma na variavel “soma”
3- divida soma pela quantidade de notas (media = somaNotas / quantidadeNotas)
4- imprime a média
acho que deu certo Lucas, obrigada pela ajuda
1 curtida