Como relacionar Registros Academicos com nomes de alunos?

14 respostas
C

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());
  	  		
		
	
	
}

}
]

14 Respostas

B

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

C

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.

B

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);

C

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());
  	  		
		
	
	
}

}
]

B

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:

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); 
    }
}
C

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);   
   }

}

]

fabbio_2k

Está ai o seu programa funcionando :

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);   
	     }  
		 
}
B

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.

C

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?

sidcazi

quando for postar coloque em code"[code]"

C

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?

B

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

C

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?

B

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

Provavelmente você está procurando pelo printf

Criado 23 de abril de 2009
Ultima resposta 28 de abr. de 2009
Respostas 14
Participantes 5