Ajuda cadastro em vetor

6 respostas
W

Boa tarde.
Estou iniciando o aprendizado em POO - java e gostaria que alguém me ajudasse a fazer este cadastro no vetor funcionar, ele cadastra sempre o último valor digitado em meu vetor (sobrepondo na mesma posição).

public static void main(String args [])
	{	int i = 1;
		String venda= null, venda2 = null;

		VendaProcessador vendproc [] = new VendaProcessador [10];
		venda = JOptionPane.showInputDialog (" CONTROLE DE VENDAS DE PROCESSADORES\n" +
				"\n1 -> Registro de Venda " +
				"\n2 -> Informações Gerenciais " +
				"\n9 -> Sair\n\n");

		while (Integer.parseInt(venda) != 9)
		{	
			switch(Integer.parseInt(venda))
			{
				case 1:
						String Sair = "S";
						JOptionPane.showMessageDialog(null,"Gravar na posição: "+String.valueOf(i));
						while (Sair.equals("S"))
						{
							vendproc[i] = new VendaProcessador();
							vendproc[i].VendProces();
							i++;							
							Sair = JOptionPane.showInputDialog("Deseja continuar a cadastrar (S/N)?");
					  		

						}	
				break;

6 Respostas

S

Repare que você não altera o valor de “venda” após entrar nos laços, ela sempre terá o valor inicial :-o

M

Amigo, usa o for para prencer o vetor, e o i nao pode ser iniciado com um pq a primeira posiçao do vetor é 0

ta ai o exempo com o seu codigo......

Abraços

public static void main(String args [])  
     {   int i;  
         String venda= null, venda2 = null;  
   
         VendaProcessador vendproc [] = new VendaProcessador [10];  
         venda = JOptionPane.showInputDialog (" CONTROLE DE VENDAS DE PROCESSADORES\n" +  
                 "\n1 -> Registro de Venda " +  
                 "\n2 -> Informações Gerenciais " +  
                 "\n9 -> Sair\n\n");  
   
         while (Integer.parseInt(venda) != 9)  
         {     
             switch(Integer.parseInt(venda))  
             {  
                 case 1:  
                         String Sair = "S";  
                         JOptionPane.showMessageDialog(null,"Gravar na posição: "+String.valueOf(i+1));  // i + 1 pq  sera 0 + 1 = 1
                         while (Sair.equals("S"))  
                         {  
                             for (i = 0; i<10; i++) { // i  = 0 pq o 1º indice do vetor é 0
                                 vendproc[i] = new VendaProcessador();  
                                 vendproc[i].VendProces();  
                                }
                             Sair = JOptionPane.showInputDialog("Deseja continuar a cadastrar (S/N)?");  
                         }     
                 break;
V

Amigo MarckW. Estou tentando fazer este programa com WelingtonMoraes. Somos da mesma turma. Eu testei a solucção que vc mandou e ao testar para cadastrar entrou num loop e não sai.

S

Posta o código todo. O que o método VendProces faz?

V

package processadores;
import javax.swing.JOptionPane;

public class RegistroVenda

{

//método para efetuar busca sequencial

static int sequencial(VendaProcessador func [], int tam, String SerieBusca)

{

int j = 0, x = 11;

while (j < tam)

{
if(func[j].getSerie().equals(SerieBusca))
//		   if(VendaProcessador.getSerie().equals(SerieBusca))

x = j;

j++;

}

return x;

}

public static void main(String args [])

{	int i = 0;
VendaProcessador vendproc [] = new VendaProcessador [300];
	
	String venda, venda2;
	
	
	venda = JOptionPane.showInputDialog (" CONTROLE DE VENDAS DE PROCESSADORES \n" +
			"\n1 -> Registro de Venda " +
			"\n2 -> Informações Gerenciais " +
			"\n9 -> Sair\n\n");
	
	
	

	while (Integer.parseInt(venda) != 9)
	{	
		switch(Integer.parseInt(venda))
		{
			case 1:
		//			String Sair = "S";
		//			while (Sair.equals("S"))
		//			{
						vendproc[i] = new VendaProcessador();
						vendproc[i].VendProces();
						i++;
				//  		Sair = JOptionPane.showInputDialog("Deseja continuar a cadastrar (S/N)?");

			//		}
					  
					
			break;
			
			case 2:
				venda2 = JOptionPane.showInputDialog ("digite o Número de Serie: ");
				
					if (sequencial(vendproc, i, venda2) == 11)
					JOptionPane.showMessageDialog(null,"Número Série não encontrado");
				else
					
					JOptionPane.showMessageDialog(null,	"\nNúmero de Serie:  " + String.valueOf(VendaProcessador.getSerie())+
							"\nMarca do Processador:  "+String.valueOf(VendaProcessador.getMarca())+
							"\nTamanho do Cache:  "+String.valueOf(VendaProcessador.getCache())+
							"\nData Fabricação:  "+String.valueOf(VendaProcessador.getDatafab())+
							"\nData da Venda:  "+String.valueOf(VendaProcessador.getDatvenda())+
							"\nValor de Custo:  "+String.valueOf(VendaProcessador.getValcusto())+
							"\nValor de Venda:  "+String.valueOf(VendaProcessador.getValvenda()));
					
					
				break;
				default:
					{
						JOptionPane.showMessageDialog(null,"Digite uma a Opção Correta!");
					}
			}				
		
		venda = JOptionPane.showInputDialog (" CONTROLE DE VENDAS DE PROCESSADORES \n" +
				"\n1 -> Registro de Venda " +
				"\n2 -> Informações Gerenciais " +
				"\n9 -> Sair\n\n");
	}
}

}

package processadores;

import javax.swing.JOptionPane;

public class VendaProcessador extends GetSet

{

public void VendProces()

{

String venda = JOptionPane.showInputDialog ("Digite o Número de Série: ");

GetSet.setSerie(venda);	

if (GetSet.getSerie().length() == 0)

{

JOptionPane.showMessageDialog (null,Campo em branco);

return;

}
venda = JOptionPane.showInputDialog(""+
	  					"\n Selecione a Marca do Processador: "+
	  					"\n\n1 - INTEL."+
					  	"\n2 - AMD.");	
					  	switch (Integer.parseInt(venda))
					  	{
					  		case 1:
					  			venda = "INTEL";
					  			break;
					  		case 2:
					  			venda = "AMD";
					  			break;
					  	}
			GetSet.setMarca(venda);
			if (GetSet.marca.length() == 0)
			{
				JOptionPane.showMessageDialog (null,"Campo em branco");
				return;
			}
	  		
	  		venda = JOptionPane.showInputDialog ("Digite a Quantidade de Cache: ");
	  		GetSet.setCache(venda);
	  		if (GetSet.cache.length() == 0)
			{
				JOptionPane.showMessageDialog (null,"Campo em branco");
				return;
			}
	  		
	  		venda = JOptionPane.showInputDialog ("Digite a Data de Fabricação: ");
	  		GetSet.setDatafab(venda);
	  		if (GetSet.datafab.length() == 0)
			{
				JOptionPane.showMessageDialog (null,"Campo em branco");
				return;
			}
	  		
	  		venda = JOptionPane.showInputDialog ("Digite a Data da Venda: ");
	  		GetSet.setDatvenda(venda);
	  		if (GetSet.datvenda.length() == 0)
			{
				JOptionPane.showMessageDialog (null,"Campo em branco");
				return;
			}
	  		
	  		venda = JOptionPane.showInputDialog ("Digite o Valor de Custo: ");
	  		GetSet.setValcusto(Double.parseDouble(venda));
	  		if (GetSet.valcusto == 0)
			{
				JOptionPane.showMessageDialog (null,"Campo em branco");
				return;
			}
	  		
	  		venda = JOptionPane.showInputDialog ("Digite o Valor de Venda: ");
	  		GetSet.setValvenda(Double.parseDouble(venda));	
	  		if (GetSet.valvenda == 0)
			{
				JOptionPane.showMessageDialog (null,"Campo em branco");
				return;
			}		  	
   }
}

package processadores;

public class GetSet
{

public static String serie;
static String marca;
static String cache;
static String datafab;
static String datvenda;
static double valcusto;
static double valvenda;
	
//construtor sem parametro
public GetSet()
{
	serie = "";
	marca = "";
	cache = "";
	datafab = "";
	datvenda = "";
	valcusto = 0.0;
	valvenda = 0.0;
}

//construtor com parametro
public GetSet(String ser, String mar, String cach, String datfab,
		String dvenda, double vcusto, double vvenda)
{
	serie = ser;
	marca = mar;
	cache = cach;
	datafab = datfab;
	datvenda = dvenda;
	valcusto = vcusto;
	valvenda = vvenda;
}

public static void setSerie(String ser)
{
	serie = ser;
}

public static String getSerie()
{
	return serie;
}

public static void setMarca(String mar)
{
	marca = mar;
}

public static String getMarca()
{
	return marca;
}

public static void setCache(String cach)
{
	cache = cach;
}

public static String getCache()
{
	return cache;
}
	
public static void setDatafab(String datfab)
{
	datafab = datfab;
}

public static String getDatafab()
{
	return datafab;
}

public static void setDatvenda(String dvenda)
{
	datvenda = dvenda;
}

public static String getDatvenda()
{
	return datvenda;
}

public static void setValcusto(double vcusto )
{
	valcusto = vcusto;
}

public static double getValcusto()
{
	return valcusto;
}

public static void setValvenda(double vvenda)
{
	valvenda = vvenda;
}

public static double getValvenda()
{
	return valvenda;
}

}


este é o trabalho que estamos fazendo

Desenvolver uma aplicação, em linguagem Java utilizando os conceitos de orientação a objetos que: registre as vendas mensais de processadores de uma empresa e permita obter informações gerenciais a partir das informações inseridas neste registro.

O menu geral da aplicação deverá ter o seguinte layout:

? Registro de Venda:

Receber as seguintes informações dos processadores: ?Número de série?, ?Marca? (Intel ou AMD), ?Quantidade de Cache?, ?Data de Fabricação? e ?Data da Venda?, ?Valor de Custo?, ?Valor de Venda?;

Incluir estrutura de repetição para que o usuário possa realizar o cadastro de várias informações de vendas de processadores. Caso o usuário deseje interromper o cadastramento, oferecer a possibilidade dentro da estrutura de repetição:
(Deseja interromper o cadastramento ? (S / N )).

? Informações Gerenciais

Emissão de relatório contendo a relação de processadores vendidos, por mês, totalizando Valor de Custo, Valor de Venda e lucro.

Utilize os conceitos de orientação a objetos.

M

blz… vou analisar seu codigo e te falo, é um problema simples,
certamente tem algum detalhe errado q faz com o q laço nao pare…

Criado 5 de abril de 2008
Ultima resposta 5 de abr. de 2008
Respostas 6
Participantes 4