[color=purple]Código correto no último post da página
Olá, boa tarde.
Bem, meu cérebro já fundiu, e não tenho mais paciência para pensar em uma saída em menos de… amm… 3 horas :shock:
por favooor… reparem no trabalho abaixo. Coisa simples porque comecei a pensar terça de manhã.
Ele compila perfeitamente, a sintaxe está certa… o problema é que ao executá-lo, uso o comando 1, para armazenar os dados de um novo veículo… aí, uso o comando 2, para exibir estes dados conforme uma comparação… e aí o programa da problema… o “valorB” fica null… e me impede de prosseguir…
Eu imagino qual seja o problema… devo estar atribuindo valores a variável “num”, mas não atribuindo a variável “num” às linhas do array.
Isso que ainda faltam ajustes… alias… se alguma alma gentil, caridosa, especialmente boazinha e de bom humor hoje, quiser me ajudar a implementar… do tipo, para o usuário não fazer besteiras… prometo que pago um sorvete
Abaixo o código em java:
[code]public class RegistroVeiculos
{
public static void main(String args[])
{
RegistroVeiculos a=new RegistroVeiculos();
a.menu();
}
public String v[][]=new String[500][7];
private int num;
public RegistroVeiculos()
{
num=0;
}
public RegistroVeiculos(int b)
{
num=b;
}
public int menu()
{
RegistroVeiculos b=new RegistroVeiculos(num);
System.out.println("~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~");
System.out.println("Morro Careca City - Registro de Veículos");
System.out.println("~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~");
for(int repete=2;repete>1;repete++)
{
System.out.println("\n\n-+Digite uma das opções do menu abaixo+-");
System.out.println("Menu:");
System.out.println("~Para inserir novos veículos digite \"1\"");
System.out.println("~Para exibir todos os veículos com fabricação maior que determinado ano digite \"2\"");
System.out.println("~Para exibir todos os veículos pertencenter a determinado proprietário digite \"3\"");
System.out.println("~Para exibir as placas de todos os veículos de determinado modelo digite \"4\"");
System.out.println("~Para exibir todos os veículos que sejam de combustível do tipo Flex (álcool e gasolina) digite \"5\"");
System.out.println("~Para exibir todos os veículos registrados digite \"6\"");
System.out.println("~Para sair do programa digite \"7\"\n\n");
Entrada e=new Entrada();
int menu=e.geti();
switch(menu)
{
case 1:
while(num<499)
{
System.out.print("Cpf Proprietário: ");
v[num][0]=e.gets();
System.out.print("Tipo Combustível: ");
v[num][1]=e.gets();
System.out.print("Modelo Veículo: ");
v[num][2]=e.gets();
System.out.print("Cor Veículo: ");
v[num][3]=e.gets();
System.out.print("Número Chassi Veículo: ");
v[num][4]=e.gets();
System.out.print("Ano Veículo: ");
v[num][5]=e.gets();
System.out.print("Placa Veículo: ");
v[num][6]=e.gets();
System.out.println(num);
num++;
System.out.println(num);
break;
}
break;
case 2:
System.out.println("Ano Desejado: ");
int ano=e.geti();
if(ano<2007 && ano>1901)
{
while(num<499)
{
String valorA=v[num][5];
int valorB=Integer.parseInt(valorA);
if(valorB>ano)
{
System.out.println(v[num][0]);
System.out.println(v[num][1]);
System.out.println(v[num][2]);
System.out.println(v[num][3]);
System.out.println(v[num][4]);
System.out.println(v[num][5]);
System.out.println(v[num][6]);
}
num++;
}
}
else
{
System.out.println("O ano precisa ser maior que 1901 e menor que 2007");
}
break;
case 3:
while(num<499)
{
System.out.println("Cpf Proprietário Desejado: ");
String valorA=v[num][0];
int valorB=Integer.parseInt(valorA);
int cpf=e.geti();
if(valorB==cpf)
{
System.out.println(v[num][1]);
System.out.println(v[num][2]);
System.out.println(v[num][3]);
System.out.println(v[num][4]);
System.out.println(v[num][5]);
System.out.println(v[num][6]);
}
else
{
System.out.println("Este cpf não consta nos registros");
}
num++;
}
break;
case 4:
while(num<499)
{
System.out.println("Modelo Desejado: ");
String modelo=e.gets();
if(v[num][2]==modelo)
{
System.out.println(v[num][6]);
}
num++;
}
break;
case 5:
while(num<499)
{
String combustivel="Flex";
if(v[num][1]==combustivel)
{
System.out.println(v[num][0]);
System.out.println(v[num][2]);
System.out.println(v[num][3]);
System.out.println(v[num][4]);
System.out.println(v[num][5]);
System.out.println(v[num][6]);
}
num++;
}
break;
case 6:
while(num<499)
{
System.out.println(v[num][0]);
System.out.println(v[num][1]);
System.out.println(v[num][2]);
System.out.println(v[num][3]);
System.out.println(v[num][4]);
System.out.println(v[num][5]);
System.out.println(v[num][6]);
num++;
}
break;
case 7:
{
repete=0;
System.out.println("Programa Encerrado - Volte Sempre!");
}
break;
default:
System.out.println("Comando \"Menu\" inválido\nDigite um número entre 1 e 7");
}
}
return num;
}
}[/code]
Anotações: Programa que cadastra veículos em uma cidade, exibe um menu simples.
Preciso ainda implementar com expressões de teste, para que o “ano” seja digitado em formato de ano, q o “cpf” seja digitado em formato de cpf… repetindo ateh que o usuário digite certo… isso eh simples… um while, juntamente com if funcionaria… mas minha cabeça tah dando tiuti jah.
Detalhe: Entrega para as 19:30 de… hoje
Agradeço a disposição desde já… se algm tiver disposição :shock:[/color]