Turma de Alunos - Vetores e Matrizes em Java (Arrays)

6 respostas
javaarraylist
Tiago_Dias

Olá, sou novo aqui. Estou fazendo um exercício e estou enfrentando alguns problemas.
Faço ele em Java.

Essa parte eu consegui fazer:

Já esta… Estou enfrentando problemas já no início:

Caso alguém saiba como proceder.

Até o momento este é meu código:

public class Aluno

{

private String nome;

private String matricula;

private double nota1;

private double nota2;

private double calcularMedia;
public Aluno(String nome, String matricula){

setNome(nome);

setMatricula(matricula);

}
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 nota1){

this.nota2 = nota2;

}
public double calcularMedia(){

calcularMedia = (nota1+nota2)/2;

return calcularMedia;

}
public String toString(){

return "Nome: " + nome +

"/nMatrícula: " + matricula +

"/nNota 1: " + nota1 +

"/nNota 2: " + nota2;

}

}

6 Respostas

Dragoon

Qual sãos os problemas que está enfrentando?

Tiago_Dias

Não consigo criar a segunda parte, objeto Turma

matheus.cirillo

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

Tiago_Dias

Gostei muito da sua forma de fazer.
Parece ser bastante simples, estou ainda editando a minha com base nas formas de se fazer que vi aqui.

Obrigado mesmo! Fico feliz com a contribuição, o meu ainda não está dando certo, se puder ajudar.

Tiago_Dias

Nossa! Obrigado mesmo, mas assim como você quero aprender, tentei usar o seu como exemplo mas ainda não consegui fazer, e está apresentando alguns erros, Gostaria de entender realmente como se faz.

Veja o meu como esta:

6. Construtor e encapsulamento.rar (1.4 KB)

Vejo que o retorno está sendo obsoleto, acredito que são apenas detalhes que não estou conseguindo consertar.

Agradeço se puder ajudar.

matheus.cirillo

Claro.
Em qual método você está tendo problemas?

Criado 18 de dezembro de 2016
Ultima resposta 19 de dez. de 2016
Respostas 6
Participantes 3