Como relacionar Registros Academicos com nomes de alunos?

Boa tarde galera, tenho uma dúvida: Como relacionar numeros com nomes no java?

Exemplo: Digite seu RA: 17733845
Seu RA é:17733845 --> seu nome é: Miguel Oliveira Dantas

Fiz o codigo abaixo, apareceram 03 erros.

[/**

  • @(#)ranome.java
  • ranome application
  • @author
  • @version 1.00 2009/4/23
    */
    //programa entre com seu RA, vincule com seu respectivo nome
    //exemplo: Digite seu RA: 17733845
    //seu RA é:17733845 --> seu nome é: Miguel Oliveira Dantas

import java.util.*;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;

public class ranome {

public static void main(String[] args) {
	String nome;
	int i=1;
	
	List ArrayList=new ArrayList();
	Map<Integer.String>registros=new HashMap<Integer,String>();
	for (int i = 1;i<=5;i++){
	ArrayList.add("Miguel Oliveira Dantas, RA: 17733845");
		ArrayList.add("Maria Aparecida Silva, RA: 17733004");
			ArrayList.add("Isabelle Silva Santos, RA: 24873845");
				ArrayList.add("Martins Silva de Aparecida, RA: 111004745");
					ArrayList.add("Isidoro Farias de Farias, RA: 010124845");
					int ra=Integer.parseInt(JOptionPane.showInputDialog("Digite seu RA"));
					registros.put(nome,ra);
	}
	StringBuilder saida=new StringBuilder("");
	for (Integer ra:registros.keySet()){
		saida.append("Nome:").append(registros.get(ra));
		saida.append("-RA:").append(ra).append("\n");}
		
		JOptionPane.showMessageDialog(null,saida.toString());
  	  		
		
	
	
}

}
]

Fala registro.put(123456, “nome”); ao invés de usar o add do arraylist. não é preciso usar este arraylist neste código

Ola Bruno, seria mais ou menos isto?
Troquei ArrayList.add por registro.put
E os import estao corretos?

[import java.util.*;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;

public class ranome {

public static void main(String[] args) {
String nome;
int i=1;

List ArrayList=new ArrayList();
Map<Integer.String>registros=new HashMap<Integer,String>();
for (int i = 1;i<=5;i++){
registro.put(“Miguel Oliveira Dantas, RA: 17733845”);
registro.put(“Maria Aparecida Silva, RA: 17733004”);
registro.put(“Isabelle Silva Santos, RA: 24873845”);
registro.put(“Martins Silva de Aparecida, RA: 111004745”);
registro.put(“Isidoro Farias de Farias, RA: 010124845”);
int ra=Integer.parseInt(JOptionPane.showInputDialog(“Digite seu RA”));
registros.put(nome,ra);
}
StringBuilder saida=new StringBuilder("");
for (Integer ra:registros.keySet()){
saida.append(“Nome:”).append(registros.get(ra));
saida.append("-RA:").append(ra).append("\n");}

JOptionPane.showMessageDialog(null,saida.toString());

}
}
]]

Obrigado Bruno.

Mapas usam o conceito de chaves e valores. Tendo a chave em mãos você pode obter o valor depois.

No caso a chave é o RA, e o valor é o nome da pessoa.

o método put do mapa funciona com chave e valor nessa order: map.put(key, value);

Bruno obrigado.

Só uma duvida é: map.put(key, value);
ou registro.put(123456, “nome”);

Eu coloquei o map.put.

Veja codigo abaixo:

[/**

  • @(#)ranome.java
  • ranome application
  • @author
  • @version 1.00 2009/4/23
    /
    //programa entre com seu RA, vincule com seu respectivo nome
    //exemplo: Digite seu RA: 17733845
    //seu RA é:17733845 --> seu nome é: Miguel Oliveira Dantas
    import java.util.
    ;
    import java.util.HashMap;
    import java.util.Map;
    import javax.swing.JOptionPane;

public class ranome {

public static void main(String[] args) {
	String nome;
	int i = 1;
	
	List ArrayList=new ArrayList();
	Map<Integer.String>registros=new HashMap<Integer,String>();
	for (int i = 1;i<=5;i++){
	map.put(17733845,"Gustavo Leonardo");
		map.put(11113845,"Rodrigo Viana");
			map.put(17789645,"Guiomar batista");
				map.put(002433845,"Vera Cruz");
					map.put(00033845,"Maria Aparecida");
					int ra=Integer.parseInt(JOptionPane.showInputDialog("Digite seu RA"));
					registros.put(nome,ra);
	}
	StringBuilder saida=new StringBuilder("");
	for (Integer ra:registros.keySet()){
		saida.append("Nome:").append(registros.get(ra));
		saida.append("-RA:").append(ra).append("\n");}
		
		JOptionPane.showMessageDialog(null,saida.toString());
  	  		
		
	
	
}

}
]

Não saia colocando código sem entender o que acontece primeiro.

O que você realmente precisa, nesta ordem:

-Montar uma lista de RAs e Nomes
-Solicitar um RA do usuário
-Obter o RA na lista.
-Responder com “´”, ou com o nome da Pessoa.

Com isso dito:

[code]
import java.util.*;
import javax.swing.JOptionPane;

public class RaNome{

public static void main(String[] args) {

    // -Montar uma lista de RAs e Nomes
    Map<Integer,String> registros = new HashMap<Integer,String>();
	map.put(17733845,"Gustavo Leonardo");
	map.put(11113845,"Rodrigo Viana");
	map.put(17789645,"Guiomar batista");
	map.put(002433845,"Vera Cruz");
	map.put(00033845,"Maria Aparecida");

    // -Solicitar um RA do usuário
    Integer ra = new Integer (JOptionPane.showInputDialog("Digite seu RA"));

    // -Obter o RA na lista.
    String nome = registros.get(ra);

    String saida = null; 

    // verifica se encontrou um nome associado ao RA.
    if (nome == null)
        saida = "RA não encontrado.";
    else    
        saida = "seu RA é: "+ ra + " --> seu nome é: " + nome;

    JOptionPane.showMessageDialog(null, saida); 
}

}[/code]

Obrigado Bruno foi falta de atenção.

Compilei o programa deu estes dois erros:

--------------------Configuration: RaNome1 - JDK version 1.6.0_13 - --------------------
C:\Documents and Settings\Meus documentos\JCreator Pro\MyProjects\RaNome\RaNome1\src\RaNome1.java:13: integer number too large: 002433845
map.put(002433845,“Vera Cruz”);
^
C:\Documents and Settings\Meus documentos\JCreator Pro\MyProjects\RaNome\RaNome1\src\RaNome1.java:14: integer number too large: 00033845
map.put(00033845,“Maria Aparecida”);
^
2 errors

Process completed.

[import java.util.*;
import javax.swing.JOptionPane;

public class RaNome1{  
      
    public static void main(String[] args) {  
  
        // -Montar uma lista de RAs e Nomes  
        Map<Integer,String> registros = new HashMap<Integer,String>();  
       map.put(17733845,"Gustavo Leonardo");  
       map.put(11113845,"Rodrigo Viana");  
       map.put(17789645,"Guiomar batista");  
       map.put(002433845,"Vera Cruz");  
       map.put(00033845,"Maria Aparecida");  
 
       // -Solicitar um RA do usuário  
       Integer ra = new Integer (JOptionPane.showInputDialog("Digite seu RA"));  
 
       // -Obter o RA na lista.  
       String nome = registros.get(ra);  
 
       String saida = null;   
 
       // verifica se encontrou um nome associado ao RA.  
     if (nome == null)  
           saida = "RA não encontrado.";  
       else      
          saida = "seu RA é: "+ ra + " --> seu nome é: " + nome;  
 
       JOptionPane.showMessageDialog(null, saida);   
   }  

}

]

Está ai o seu programa funcionando :

[code]import java.util.HashMap;
import java.util.Map;

import javax.swing.JOptionPane;

public class RaNome {
public static void main(String[] args) {

	         // -Montar uma lista de RAs e Nomes  
	         Map<Integer,String> registros = new HashMap<Integer,String>();  
	         registros.put(17733845,"Gustavo Leonardo");  
	         registros.put(11113845,"Rodrigo Viana");  
	         registros.put(17789645,"Guiomar batista");  
	         registros.put(2433845,"Vera Cruz");  
	         registros.put(33845,"Maria Aparecida");  
	   
	         // -Solicitar um RA do usuário  
	         Integer ra = new Integer (JOptionPane.showInputDialog("Digite seu RA"));  
	   
	         // -Obter o RA na lista.  
	         String nome = registros.get(ra);  
	   
	         String saida = null;   
	   
	         // verifica se encontrou um nome associado ao RA.  
	         if (nome == null)  
             saida = "RA não encontrado.";  
	        else      
	            saida = "seu RA é: "+ ra + " --> seu nome é: " + nome;  
	   
	         JOptionPane.showMessageDialog(null, saida);   
     }  

}
[/code]

Java reclamado que 00033845 é um inteiro muito grande… haha, vai saber…

Desculpe pelo código que não compilou, não testei mesmo.

Outra opção é usar Strings no lugar do RA, ou mesmo um próprio objeto do tipo RA para representá-lo.

E por favor, use as tags código para formatar o código.

Obrigadao0 jfabbio e bruno, na hora de colocar o código eu coloco nos[code], na hora aparece ele bem arrumado, mas depois que coloco no[code] vejo ele todo dessarumado!!.
Será que estou fazendo certo?

quando for postar coloque em code"[code]"

Entendi todo o código, só não entendi esta parte:

O que significa esta parte?

String saida = null;
Seria o return(null)?

if (nome == null)
se (nome == RA)

seria isto?

Null é o valor para referênciar objetos que ainda não existem, ou não encontrados.

Ola, galera ajuda a finalizar meu projetinnho !!

Fiz tudo certinho mas apareceu dois erros:

--------------------Configuration: roberto - JDK version 1.6.0_13 - --------------------
C:\Documents and Settings\Meus documentos\JCreator Pro\MyProjects\conta\roberto\src\roberto.java:45: cannot find symbol
symbol : method print(java.lang.String,int)
location: class java.io.PrintStream
System.out.print(“Parabens vc passou: %d\n”,c);
^
C:\Documents and Settings\Meus documentos\JCreator Pro\MyProjects\conta\roberto\src\roberto.java:49: cannot find symbol
symbol : method print(java.lang.String,int)
location: class java.io.PrintStream
System.out.print(“vc nao passou: %d\n”,c);
^
2 errors

Process completed.

Segue o código abaixo:

[import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class roberto {  
      public static void main(String[] args) {  
Scanner input = new Scanner(System.in); 
     int a,b,c,r;
     int i;
             
                // -Montar uma lista de RAs e Nomes    
                Map<Integer,String> registros = new HashMap<Integer,String>();    
                registros.put(17733845,"Gustavo Leonardo");    
                registros.put(11113845,"Rodrigo Viana");    
                registros.put(17789645,"Guiomar batista");    
                registros.put(2433845,"Vera Cruz");    
                registros.put(33845,"Maria Aparecida");    
            
                // -Solicitar um RA do usuário    
                Integer ra = new Integer (JOptionPane.showInputDialog("Digite seu RA"));    
            
                // -Obter o RA na lista.    
                String nome = registros.get(ra);    
            
                String saida = null;     
            
                // verifica se encontrou um nome associado ao RA.    
                if (nome == null)    
                saida = "RA não encontrado.";    
               else        
                   saida = "seu RA é: "+ ra + " --> seu nome é: " + nome;    
            
                JOptionPane.showMessageDialog(null,saida);   
                	
                	System.out.println("digite sua 1º nota:");
                	
                	a = input.nextInt();
                	
                		System.out.println("digite sua 2º nota:");
                		
                        b = input.nextInt();
                        
                           System.out.println("digite a nota do trabalho:");
                             c = input.nextInt();
                             
                             r =(a+b+c)/3;
                             
                             if (r >=6)
                             	
                              System.out.print("Parabens vc passou: %d\n",c);
      else
      
      
                             	 System.out.print("vc nao passou: %d\n",c);                              	
                                                      
                           System.exit(0);
                             		
                             	
                             
                
}      

} ]

Onde foi que eu errei?

Não existe o método print no System.out que tenha dois parâmetros.

Provavelmente você está procurando pelo printf