Cara, não devia mas fiz seu exercício inteiro, rs.
Achei bem bacana.
OBS: Assim como você, sou estudante, então algumas das minhas soluções podem não ser as melhores para o exercício.
Não sei se serve para você, porém o resultado foi exatamente o que você precisava (creio eu).
Classe Aluno
:
public class Aluno {
private String nome;
private String matricula;
private double nota1;
private double nota2;
Aluno(String nome, String matricula, double nota1, double nota2) {
this.nome = nome;
this.matricula = matricula;
this.nota1 = nota1;
this.nota2 = nota2;
}
public double calcularMedia() {
return (this.nota1 + this.nota2) / 2;
}
public String toString() {
return "Nome: " + this.nome + "\nMatrícula: " + this.matricula + "\nNota 1: " + this.nota1 + "\nNota 2: "
+ this.nota2;
}
// gets e sets
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public double getNota1() {
return nota1;
}
public void setNota1(double nota1) {
this.nota1 = nota1;
}
public double getNota2() {
return nota2;
}
public void setNota2(double nota2) {
this.nota2 = nota2;
}
}
Classe Turma
:
public class Turma {
private Aluno[] alunos = new Aluno[20];
private int proximoAluno = 0;
public boolean cadastrarAluno(String nome, String matricula, double nota1, double nota2) {
if (proximoAluno > alunos.length - 1) {
return false;
} else {
alunos[proximoAluno] = new Aluno(nome, matricula, nota1, nota2);
this.proximoAluno++;
return true;
}
}
public double pesquisarAluno(String matricula) {
for (int i = 0; i < proximoAluno; i++) {
if (alunos[i].getMatricula().equals(matricula)) {
return alunos[i].calcularMedia();
}
}
return 0.0;
}
public void listarAlunos() {
for (int i = 0; i < proximoAluno; i++) {
System.out.println(alunos[i].toString());
System.out.println();
}
}
public void exibirSituacao(){
for (int i = 0; i < proximoAluno; i++) {
System.out.println(alunos[i].getNome() + " - " + alunos[i].calcularMedia());
}
}
}
Classe Teste
, para testar o programa, é claro:
import java.util.Scanner;
public class Programa {
public static void main(String[] args) {
Turma t = new Turma();
Scanner s = new Scanner(System.in);
boolean rodando = true;
while(rodando){
System.out.println(
"------------- Menu -------------"
+ "\nDigite > 1 < para cadastrar alunos"
+ "\nDigite > 2 < para pesquisar alunos"
+ "\nDigite > 3 < para listar alunos"
+ "\nDigite > 4 < para exibir a situação dos alunos"
+ "\nDigite > 5 < para encerrar o programa");
int acao = s.nextInt();
if (acao == 1) {
System.out.print("Informe o nome do aluno -> ");
String nome = s.next();
System.out.print("Informe a matrícula do aluno -> ");
String matricula = s.next();
System.out.print("Informe a 1ª nota do aluno -> ");
double nota1 = s.nextDouble();
System.out.print("Informe a 2ª nota do aluno -> ");
double nota2 = s.nextDouble();
if (t.cadastrarAluno(nome, matricula, nota1, nota2))
System.out.println("\nAluno cadastrado!");
else
System.out.println("\nO limite de 20 alunos da turma foi atingido.");
} else if (acao == 2) {
System.out.print("\nInforme a matrícula para pesquisar o aluno -> ");
System.out.printf("%.2f", t.pesquisarAluno(s.next()));
System.out.println();
} else if (acao == 3) {
System.out.println("\n------ Listando ------");
t.listarAlunos();
System.out.println();
} else if (acao == 4) {
System.out.println("\n------ Situação ------");
t.exibirSituacao();
System.out.println();
} else if (acao == 5) {
System.out.println("\n\nFIM!!!");
rodando = false;
} else {
System.out.println("Comando inválido");
}
}
}
}
Saída da classe Teste
:
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
1
Informe o nome do aluno -> Matheus
Informe a matrícula do aluno -> rm76023
Informe a 1ª nota do aluno -> 8,7
Informe a 2ª nota do aluno -> 7,7
Aluno cadastrado!
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
1
Informe o nome do aluno -> Lucas
Informe a matrícula do aluno -> rm76024
Informe a 1ª nota do aluno -> 9,8
Informe a 2ª nota do aluno -> 5,4
Aluno cadastrado!
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
2
Informe a matrícula para pesquisar o aluno -> rm76023
8,20
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
3
------ Listando ------
Nome: Matheus
Matrícula: rm76023
Nota 1: 8.7
Nota 2: 7.7
Nome: Lucas
Matrícula: rm76024
Nota 1: 9.8
Nota 2: 5.4
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
4
------ Situação ------
Matheus - 8.2
Lucas - 7.6000000000000005
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
5
FIM!!!