Pessoal , é o seguinte. Tenho um programa que cadastra os carros de uma garagem, usando um vetor. Ou seja, se o vetor é de tamanho 10, serão digitados 10 vezes, dados de um carro, como nome, marca, cilindros, peso, etc.
Agora, eu quero, no final deste cadastro, que haja a opção de imprimir qualquer carro que eu cadastrei.
Vamos supor, no final, se eu quiser os dados do 6 carro que cadastrei, eu digitaria um número, 6, e seria impresso os dados do sexto carro, via método get.
Mas não consigo fazer um switch que faça isso, gostaria que me ajudassem. Uma parte do código pra cadastrar, eu coloco embaixo.
[quote]public static void main (String args [])
{
Inicio IN = new Inicio ();
Leitura Lt = new Leitura ();
int vet1 = 1;
CarroPasseio Cp[] = new CarroPasseio [vet1];
Caminhao Cm[] = new Caminhao [vet1];
System.out.println ("\t###Bem vindo ao controle de vistorias de veiculos!###\n");
System.out.println (" *Entre com o tipo de veiculo para cadastrar e pressione enter ->");
System.out.println ("1- Para veiculos de passeio.\n"+"2- Para veiculos de carga.\n");
IN.setmenu (Integer.parseInt (Lt.entra ()));
if (IN.getmenu () == 1)
{
System.out.println ("Digite os dados dos veiculos de passeio: \n");
for (int i = 0; i < Cp.length; i++)
{
Cp[i] = new CarroPasseio ();
System.out.println ("Veiculo " +(i+1));
System.out.println ("Modelo do carro: ");
Cp[i].setmodelo (Lt.entra ());
System.out.println ("Potencia do carro: ");
Cp[i].setpotencia (Integer.parseInt (Lt.entra ()));
System.out.println ("Peso do carro: ");
Cp[i].setpeso (Integer.parseInt (Lt.entra ()));
System.out.println ("Velocidade maxima do carro: ");
Cp[i].setvelmax (Integer.parseInt (Lt.entra ()));
System.out.println ("Preco do carro: ");
Cp[i].setprecov (Double.parseDouble (Lt.entra ()));
System.out.println ("Cor do carro: ");
Cp[i].setcor (Lt.entra ());
System.out.println ("Numero de cilindros do carro: ");
Cp[i].setNumCilindro (Integer.parseInt (Lt.entra ()));
}
}
else if (IN.getmenu () == 2)
{
System.out.println ("Digite os dados dos veiculos de carga: \n");
for (int i = 0; i < Cm.length; i++)
{
Cm[i] = new Caminhao ();
System.out.println ("Veiculo " +(i+1));
System.out.println ("Numero de cilindros do caminhao: ");
Cm[i].setNumCilindro (Integer.parseInt (Lt.entra ()));
System.out.println ("Potencia do caminhao: ");
Cm[i].setpotencia (Integer.parseInt (Lt.entra ()));
System.out.println ("Peso do caminhao: ");
Cm[i].setpeso (Integer.parseInt (Lt.entra ()));
System.out.println ("Velocidade maxima do caminhao: ");
Cm[i].setvelmax (Integer.parseInt (Lt.entra ()));
System.out.println ("Preco do caminhao: ");
Cm[i].setprecov (Double.parseDouble (Lt.entra ()));
System.out.println ("Carga maxima do caminhao em toneladas: ");
Cm[i].setprecov (Double.parseDouble (Lt.entra ()));
System.out.println ("Altura maxima do caminhao: ");
Cm[i].setprecov (Integer.parseInt (Lt.entra ()));
System.out.println ("Comprimento do caminhao: ");
Cm[i].setprecov (Integer.parseInt (Lt.entra ()));
}
}
else
System.out.println ("Digite um numero valido!");
System.out.println ("\t\t######Cadastro terminado !######\n");
System.out.print ("Digite o numero do veiculo para consulta: ");
[/quote]
Estes atributos foram tirados de outra classe. Assim como a leitura. Como eu poderia fazer o switch?
int pos = Integer.parseInt (Lt.entra ());
if( (pos > 0) && (pos <= vet1)) {
// aqui você tem que saber se é um carro ou um caminhao
CarroPasseio carro = Cp[pos - 1];
//fazer a impressão dos dados de carro
}
Espero te ajudado!
Opa, Bruno, valeu. Através da sua dica, acabei chegando a solução, mas de outro modo. Agora, o problema está sendo o seguinte. O programa está funcionando quando eu defino um tamanho de vetor fixo, mas eu gostaria de colocar a opção de qual será o tamanho do vetor. Mas não tou conseguindo.
Também reduzi o tamanho através do switch. Deem uma olhada no código:
[quote]public class Inicio
{
public static void main (String args [])
{
Leitura Lt = new Leitura ();
System.out.println ("\t###Bem vindo ao controle de vistorias de veiculos!###\n");
System.out.println (" *Entre com o tipo de veiculo para cadastrar e pressione enter ->");
int x = Integer.parseInt (Lt.entra ("1- Para veiculos de passeio.\n" + "2- Para veiculos de carga.\n"));
switch (x)
{
case 1:
int vet1 = a;
CarroPasseio Cp[] = new CarroPasseio [vet1];
int a = Integer.parseInt (Lt.entra ("Digite a quantidade de veiculos para cadastrar: "));
System.out.println ("Digite os dados dos veiculos de passeio: \n");
for (int i = 0; i < Cp.length; i++)
{
Cp[i] = new CarroPasseio ();
System.out.println ("Veiculo " +(i+1));
Cp[i].setmodelo (Lt.entra ("Modelo do carro: "));
Cp[i].setpotencia (Integer.parseInt (Lt.entra ("Potencia do carro: ")));
Cp[i].setpeso (Integer.parseInt (Lt.entra ("Peso do carro: ")));
Cp[i].setvelmax (Integer.parseInt (Lt.entra ("Velocidade maxima do carro: ")));
Cp[i].setprecov (Double.parseDouble (Lt.entra ("Preco do carro: ")));
Cp[i].setcor (Lt.entra ("Cor do carro: "));
Cp[i].setNumCilindro (Integer.parseInt (Lt.entra ("Numero de cilindros do carro: ")));
}
break;
case 2:
int vet2 = b;
Caminhao Cm[] = new Caminhao [vet2];
int b = Integer.parseInt (Lt.entra ("Digite a quantidade de veiculos para cadastrar: "));
System.out.println ("Digite os dados dos veiculos de carga: \n");
for (int i = 0; i < Cm.length; i++)
{
Cm[i] = new Caminhao ();
System.out.println ("Veiculo " +(i+1));
Cm[i].setNumCilindro (Integer.parseInt (Lt.entra ("Numero de cilindros do caminhao: ")));
Cm[i].setpotencia (Integer.parseInt (Lt.entra ("Potencia do caminhao: ")));
Cm[i].setpeso (Integer.parseInt (Lt.entra ("Peso do caminhao: ")));
Cm[i].setvelmax (Integer.parseInt (Lt.entra ("Velocidade maxima do caminhao: ")));
Cm[i].setprecov (Double.parseDouble (Lt.entra ("Preco do caminhao: ")));
Cm[i].setCargaMaxima (Double.parseDouble (Lt.entra ("Carga maxima do caminhao em toneladas: ")));
Cm[i].setAlturaMaxima (Integer.parseInt (Lt.entra ("Altura maxima do caminhao: ")));
Cm[i].setcomprimento (Integer.parseInt (Lt.entra ("Comprimento do caminhao: ")));
}
break;
default:
System.out.println ("Digite um numero valido!");
break;
}
System.out.println ("\t\t######Cadastro terminado !######\n");
int y = Integer.parseInt (Lt.entra ("Digite o numero do veiculo cadastrado para consultar os dados: "));
switch (x)
{
case 1:
System.out.println ("Modelo: " + Cp[y - 1].getmodelo ());
System.out.println ("Potencia: " + Cp[y - 1].getpotencia () + " cavalos");
System.out.println ("Peso: " + Cp[y - 1].getpeso () + " kg");
System.out.println ("Velocidade maxima: " + Cp[y - 1].getvelmax () + " km/h");
System.out.println ("Preco" + "R$ " + Cp[y - 1].getprecov ());
System.out.println ("Cor: " + Cp[y - 1].getcor ());
System.out.println ("Numero de cilindros: " + Cp[y - 1].getNumCilindro ());
break;
case 2:
System.out.println ("Numero de cilindros: " + Cm[y - 1].getNumCilindro ());
System.out.println ("Potencia: " + Cm[y - 1].getpotencia () + " cavalos");
System.out.println ("Peso: " +Cm[y - 1].getpeso () + " kg");
System.out.println ("Velocidade maxima: " + Cm[y - 1].getvelmax () + " km/h");
System.out.println ("Preco" + "R$ " + Cm[y - 1].getprecov ());
System.out.println ("Carga maxima: "+ Cm[y - 1].getCargaMaxima () + " toneladas");
System.out.println ("Altura maxima: " + Cm[y - 1].getAlturaMaxima () + " metros");
System.out.println ("Comprimento: " + Cm[y - 1].getcomprimento () + " metros");
break;
}
}
[/quote]
Bem, não tou sabendo a posição certa pra por as linhas dessa opção de ter o tamanho do vetor. Tipo assim: se o usuário digita 5 carros para serem cadastrados, terei que ter as instruções para que o vetor seja nesse tamanho.