Olá a todos,
Tenho um aplicativo que pede o nome, a primeira e segunda nota de alguns alunos, até a pessoa deixar o campo do nome em branco, depois ele mostra os nomes em ordem alfabética, com a primeira e segunda nota, e embaixo a média. Após mostrar a média de todos alunos, ele mostra a média geral. Consegui fazer, mas gostaria de fazê-lo usando Maps, o problema é que no final do aplicativo, as notas que estão relacionadas com os alunos, não são as mesmas digitadas, os nomes ficam em ordem alfabética, porém as notas ficam todas invertidos por conta disso.
O que eu fiz é isso, gostaria que alguém me falasse o que eu estou fazendo de errado.
PS.: Quero fazer usando Maps, abraço à todos e obrigdo pela atenção
import java.util.*;
import javax.swing.*;
public class Alunos {
public static void main(String[] args) {
ArrayList<String> Alunos = new ArrayList<String>();
ArrayList Nota1 = new ArrayList();
ArrayList Nota2 = new ArrayList();
ArrayList Media = new ArrayList();
ArrayList Aprovacao = new ArrayList();
Map mapaDeNotas = new HashMap();
Map mapaDeMedias = new HashMap();
Map mapaDeAprovacao = new HashMap();
String nome;
double nota1, nota2, media, mediageral = 0;
do {
nome = JOptionPane.showInputDialog(null,"Informe o nome do aluno ou aperte <Enter> com o campo em branco para encerrar o programa: ");
if (!nome.equals("")) {
Alunos.add(nome);
Collections.sort(Alunos);
nota1 = Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a primeira nota do aluno"));
Nota1.add(nota1);
mapaDeNotas.put( nota1, nome);
nota2 = Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a segunda nota do aluno "));
Nota2.add(nota2);
mapaDeNotas.put( nota2, nome);
media = (nota1+nota2) /2;
Media.add(media);
mapaDeMedias.put(nome, media);
if ( media >=6) {
Aprovacao.add("Aprovado!");
mapaDeAprovacao.put(nome, "Aprovado!");
}
else {
Aprovacao.add("Reprovado!");
mapaDeAprovacao.put(nome, "Reprovado!");
}
mediageral +=media;
}
} while (!nome.equals(""));
for (int i = 0; i < Alunos.size(); i++) {
JOptionPane.showMessageDialog(null, "Aluno " + Alunos.get(i)+ "\nPrimeira nota: " + Nota1.get(i) + "\nSegunda nota: "+ Nota2.get(i) + "\nMédia: " + Media.get(i) + "\n"+ Aprovacao.get(i));
}
if(Alunos.size()!=0) {
JOptionPane.showMessageDialog(null, "Média geral da turma: "+ mediageral / Alunos.size());
}
}
}