Duvida Vetor - Exercicio

10 respostas
N

Tenho que fazer o seguinte exercicio:

Escrever um programa que leia o nome e a nota de cada um de 100 alunos de um determinado curso. Determine e imprima as duas maiores notas, junto com nome dos alunos que obtiveram cada uma delas.

Segue meu codigo imprimindo uma das notas maiores e coloquei so tres alunos pra testar.
Minha duvida é:

Como que faço pra trazer a nota juntamente com o aluno?

import javax.swing.JOptionPane;


public class Exercicio12 {
	 public static void main(String args[]){  
	        //Declaração de Variáveis  
	        String nomeAluno[]= new String[3];
	        float nota[]= new float[3];  
	        float maior= 0;
	          
	        //Entrada de Dados do Usuário  
	        for(int i =0;i<3;i++){
	        	nomeAluno[i] = (JOptionPane.showInputDialog("Digite o nome do aluno"));    
		        nota[i] = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota do aluno"));
	        }
	        for(int i =0; i<3;i++){
	        	if(nota[i] >= maior){
	        		maior=nota[i];
	        		
	        	}
	        }
	        System.out.print(maior+""+nomeAluno);
}
}

10 Respostas

renamed

Olá.

Você pode criar uma classe Aluno que tenha como atributos nome e nota. Dai, ao invés de criar dois vetores, um com nome e outro com nota, você cria apenas um com os alunos.

Entendeu?

N

Entendi,

So criar uma classe alunos
Recebendo nota e nome?

renamed

Sim, a classe Aluno “guarda” dentro dela o nome e a nota de um aluno. Dai, você cria um vetor de alunos e depois descobre as duas maiores notas existentes.

L

Mensagem errada

renamed

Um exemplo? Você cria uma classe Aluno que tenha dois atributos… nome e nota.

Por exemplo, abaixo temos uma classe Pessoa que tem dois atributos: altura e peso.

public class Pessoa {
   private double altura;
   private double peso;

   // métodos get e set
}

Entendeu?

N

Agora sim, vou criar uma

public class Aluno{  
       private double Nota;  
       private String Nome;  
      
        public double getNota() {  
     return this.Nota;  
  }  
    public String getNome() {  
    return this.Nome;  
  }  
ublic void setNota (double Nota) {  
    this.Nota = Nota;  
  }  
  
  public void setNome (String Nome) {  
    this.Nome = Nome;  
  }  
}

Isso?

renamed

Boa, só tome cuidado com lic void setNota.

Além disso, costumamos colocar, em Java, nomes de classes com letras maiusculas (Aluno) e atributos com letra minúscula (private double nota; private String nome)

Entendeu? :smiley:

N

Ele vai setar minha nota né?
hehehehehehhe
Acho que entendi sim, agora é so criar as paradas na public void String args né?
e usar a classe Aluno

Fino demais!!!

N

Resolvido de forma mais simples:

Me corrijam se eu estiver errado:

import javax.swing.JOptionPane;

    public class Exercicio12 {  
         public static void main(String args[]){    
                //Declaração de Variáveis    
                String nomeAluno[]= new String[3];  
                float nota[]= new float[3];    
                float maior= 0;
                String nome="";
                    
                //Entrada de Dados do Usuário    
                for(int i =0;i<3;i++){  
                    nomeAluno[i] = (JOptionPane.showInputDialog("Digite o nome do aluno"));      
                    nota[i] = Float.parseFloat(JOptionPane.showInputDialog("Digite a nota do aluno"));  
                }  
                for(int i =0; i<3;i++){  
                    if(nota[i] >= maior){ 
                    	nome=nomeAluno[i];
                        maior=nota[i];  
                          
                    }  
                }  
             
            	  System.out.print("O nome do Aluno com a maior é: "+nome+" e a nota é: "+maior);  
              
    }  
    }
N

Alguem pra ajudar, não consigo pegar o segundo maior valor…
Deu pau
:lol:

Criado 18 de novembro de 2011
Ultima resposta 20 de nov. de 2011
Respostas 10
Participantes 3