[Resolvido] Criar uma Tabela no Java - Aplicação via console

8 respostas
D

Pessoal…

Não sei por onde começar…
tenho que criar uma tabela para alocar Nomes, Matérias e Notas Bimestrais…
isso usando apenas o InputDialog para entrar com os valores e o MessengeDialog para apresentar os dados…
ou seja, tudo via console :shock:

Alguém me dá uma ideia de como fazer tal coisa… :slight_smile:

VALEU !

8 Respostas

C

seria legal se vc coloca-se um exemplo prático do que deseja imprimir como resultado para o pessoal aqui ajudar :smiley:

B

Danleonhart:
Pessoal…

Não sei por onde começar…
tenho que criar uma tabela para alocar Nomes, Matérias e Notas Bimestrais…
isso usando apenas o InputDialog para entrar com os valores e o MessengeDialog para apresentar os dados…
ou seja, tudo via console :shock:

Alguém me dá uma ideia de como fazer tal coisa… :slight_smile:

VALEU !

Cara, não entendi quase nada do que você quis dizer.

Se você vai usar dialogs para entrar com os dados e apresentá-los, você não vai estar fazendo isso via console.

E, geralmente(pelo menos em 100% dos casos que eu já vi, mas podem haver exceções), você não cria a tabela pela aplicação. A tabela já está criada e você apenas popula ela atráves da aplicação.

Explica melhor aí seu objetivo pra gente poder dar um help.

D

Seguinte…

Preciso criar um script que através de um “for”, vou colocar “Nomes” de alunos…e ligado a cada aluno, notas dos 4 bimestres…
pensei então em fazer com uma tabela, mas não uma tabela de Access ou SQL, uma tabela temporária.

Foi aí que li sobre JTable, mas não sei se é bem isso que preciso…
pois em outro exercício que fiz, utilizei 2 ArrayLists… um para os nomes e o outro para valores…
vejam:

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

public class Classificar {
// Criando Arrays para armazenar os valores:
  static ArrayList<String> lstPrd = new ArrayList<String>();
  static ArrayList<Double> lstPrecos = new ArrayList<Double>();

	public static void main(String[] args){
	  // Variáveis iniciais:
		String   nome = "";
		int      limite = 4;
		double   valor = 0;
     
	 // Iniciando o ciclo que receberá os valores:	
		 for (int n = 0; n <= limite; n++){
			 nome = JOptionPane.showInputDialog(null, "Informe o Nome do Produto:", "Nome do Produto :", 2);
			 valor = Double.parseDouble(JOptionPane.showInputDialog(null, "Informe a Quantidade :", "Quantidade :", 2));
	
	        // Adicionando valores aos Arrays:		 
			     lstPrd.add(n, nome);
			     lstPrecos.add(n, valor);
		 }
	
	// Variáveis de suporte: 
		String res = ""; 
		int tam = lstPrd.size();
		int b = 0;
	
	// Declarando variáveis que alocarão valores resgatados dos Arrays:		
		String produto = "";
		String valorP = "";
		
		// Resgatando valores dos Arrays:
		      while (b < tam){
			       produto = lstPrd.get(b);
			     // <= Aqui utilizo um método que criei para efetuar as comparações:  
			       valorP = Lucro(lstPrecos.get(b)); 
			       
			    // Estou alocando todo conteúdo recuperado do Array em uma variável
			    // que será apresentada no final do script:   
			       res = res + "Produto : " + produto + " " + valorP + "\n";
		       
			  // Incrementando valor:     
		       b++;    
		      }
		      
		     // Apresentando o resultado: 
		      JOptionPane.showMessageDialog(null, res, "Métodos de Entrada", 1);
	}
   
//Método para comparar os valores:
	public static String Lucro(double val){
		
/*======Lógica louca...
 * valor < 10       lucro 70% 
   de 10 a 30       lucro 50% 
   de 30 a 50       lucro 40%
   de 5 acima       lucro 30%     
                                 */	
     String resp = "";
     
		  if (val > 5 && val < 10){
			  resp = "30% de Lucro";
			  
		  }else if(val > 10 && val < 30){
			  resp = "50% de Lucro";
			  
		  }else if(val > 30 && val < 50){
			  resp = "40% de Lucro";
			  
		  }else if(val < 5){
			  resp = "70% de Lucro";
			  
		  }
		  
		  return resp;
	 }
			
}

Agora tenho que colocar Nomes, Bimestres e Notas…
Tipo assim:

Aluno Bimestre Nota
Paulo 1º 7.5

Entendem ?! :wink:

B

Você pode fazer uma classe de Aluno, que vai armazenar o aluno e suas respectivas notas, e fazer um ArrayList de Aluno. Eu faria algo do tipo:

public class Aluno {
   private String nome;
   private float[] notas = new float[4];
//você pode usar outra estrutura pra armazenar as notas, mas aí fica a seu critério, como serão sempre 4 notas eu ficaria com o array mesmo

   public void setNome(String nome) {
      this.nome = nome;
   }

   public String getNome() {
      return this.nome;
   }

   public void setNota(int bimestre, float nota) {
      this.notas[bimestre-1] = nota;
   }

   public float getNota(int bimestre) {
      return this.notas[bimestre-1];
   }

}

Daí na sua aplicação você faz um ArrayList. Pra inserir, use um objeto do tipo aluno, faça o setNome e o setNota pra cada bimestre e... pra pegar os dados, use os getters.

Qualquer dúvida só perguntar.

D

Obrigada Bianca Rosa :smiley:

Vou estudar e testar este seu exemplo…
como sou iniciante, ainda não li sobre o “this”…mas entendo um pouco do “return”

VALEUS !!! :slight_smile:

D

OK !

Comparo o “this” com o “Me” no Visual Basic :smiley:

Quanto a classe, funcionou perfeitamente com um aluno…
estou testando agora com vetor de alunos…posto a resposta.

Quanto aos métodos setNotas e getNotas não precisaram do “-1”…ficaram assim:

public void setNota(int bimestre, double nota){
		
		this.notas[bimestre] = nota;
	}
	
	public double getNota(int bimestre){
		return this.notas[bimestre];
	}
D

Bem, não sei, mas quero aprender :smiley:

Com este script preencho um Aluno com suas Notas bimestrais:

public static void AddAluno(){
		Alunos aln = new Alunos();
		
		aln.setNome(JOptionPane.showInputDialog(null, "Informe o nome do Aluno", "Nome do Aluno" , 1));
		
		  for (int x = 0; x < bim; x++){
			  
			  aln.setNota(x, Double.parseDouble(JOptionPane.showInputDialog("Informe a nota do " + (x + 1) + "º Bimestre")));
			  
		  }
	}

A classe Alunos é com base na informação que a Bianca Rosa passou…

Agora, como faço para criar o ArrayList para colocar 4 alunos (ou quantos quiser) com sua respectivas notas ???

Tipo assim:
[color=darkred] Jorge
1º Bimestre: 7.8
2º Bimestre: 8.5
3º Bimestre: 9.0
4º Bimestre: 7.0

Renata
1º Bimestre: 8.0
2º Bimestre: 8.5
3º Bimestre: 7.5
4º Bimestre: 9.5[/color]

E por aí vai…

D

Resolvido !

A classe Alunos:

public class Alunos {
     private String nome;
     public double notas[] = new double[4];
     
	public void setNome(String nome){
		
		this.nome = nome;
	}
	
	public String getNome(){
		return this.nome;
	}
	
	public void setNota(int bimestre, double nota){
		
		this.notas[bimestre] = nota;
	}
	
	public double getNota(int bimestre){
		return this.notas[bimestre];
	}
	
	public int SizeVetor(){
		return notas.length;
	}
}

O script da aplicação :

public class MediaCurso {
  static int alu = 5;
  static int bim = 4;
  static ArrayList<String> lstNomes = new ArrayList<String>();
  static ArrayList<Double> lstBim = new ArrayList<Double>();

	public static void main(String[] args) {
		
		IniApp();
		
	}

	
	public static void IniApp(){
		String nome = "", notas = "",  res = "", med = "";
		ArrayList<Alunos> arAlu = new ArrayList<Alunos>();
		  
		  for (int h = 0; h < alu; h++){
			  
			  Alunos ann = new Alunos();
			  ann.setNome(JOptionPane.showInputDialog(null, "Informe o nome do Aluno", "Nome do Aluno" , 1));
			      
			      for (int x = 0; x < bim; x++){
					  
					  ann.setNota(x, Double.parseDouble(JOptionPane.showInputDialog("Informe a nota do " + (x + 1) + "º Bimestre")));
					  
			      }  
			   
		      arAlu.add(h, ann);
		  }
		  
	// Começo a resgatar os valores salvos no Array:	  
		  for (int a = 0; a < arAlu.size(); a++){
			  nome = "Aluno : " + arAlu.get(a).getNome() + "\n";
			    
			      for (int r = 0; r < bim; r++){
			    	
			    	  notas = notas + (r + 1) + "º Bimestre : " + arAlu.get(a).getNota(r) + "\n";
			      }
			     med = "Média : " + MediaNota(arAlu.get(a).notas);
			     res = res + nome + notas + med + "\n \n";
			     nome = ""; notas = ""; med = "";
		  }
		
    // Imrprimo os resultados:		  
		 // JOptionPane.showMessageDialog(null, res);
		  System.out.println(res);

	}
	
	
	public static double MediaNota(double... nts){
	  double soma = 0, media = 0;
    
	    for (int p = 0; p < nts.length; p++){    
	            
	        soma = soma + nts[p];    
	                
	    }    
	    
	    media = soma / nts.length;
		return media;
	}
}

Obrigado a todos !

Criado 26 de fevereiro de 2012
Ultima resposta 29 de fev. de 2012
Respostas 8
Participantes 3