Sem titulo

11 respostas
natanrs

Olá pessoal… sou neófito em Java e estou louco de vontade de aprender essa linguagem Java, resolvi fazer simples programa de Cadastro de Carros, onde posso incluir ate 10 carros, escolhendo o modelo e depois posso visualizar os carros cadastrados (sem utilizar banco, só fica mesmo na memória). Contudo estou com um problema, o quando eu pressiono a opção 2 que é para incluir carros, ele pergunta quantos carros eu desejo incluir, eu coloco q quantidade mais ele não entra no for. Vou anexar o código para que vejam! O que poderia ser?

Código: Classe Principal

class Principal{

public static void main(String args[]){

int op=0;

int i=0;

Carro[] auto = new Carro[i];

while (op!=3){

System.out.println("\n CADASTRO DE CARROS “);

System.out.println(”|> Legenda: “);

System.out.println(”|> Opcao 01 - Incluir Carros “);

System.out.println(”|> Opcao 02 - Exibe Carros Cadastrados");

System.out.println("|> Opcao 03 - Sair do Programa");

System.out.print("\n|> Escolha opcao …: “);

op = keyboard.readInt();

int x;

if (op==1) {

System.out.print(”|> Deseja incluir quantos carros: “);

i = keyboard.readInt();

if(i<=10){

for(x=0; x<auto.length; x++){

System.out.println(”");

System.out.print("> Digite o nome do Carro: “);

String nome=keyboard.readString();

System.out.print(”> Digite o numero de portas: “);

int num_p=keyboard.readInt();

System.out.print(”> Digite o ano de fabricacao: “);

int ano=keyboard.readInt();

System.out.print(”> Digite o tipo do carro: ");

String tipo=keyboard.readString();

Pneu p1,p2;

Motor m1,m2;

p1=new Pneu(1, Aro 16);

p2=new Pneu(2, Aro 20);

m1=new Motor(1, 500cv);

m2=new Motor(2, 700cv);

/<em>System.out.print("> Digite o codigo do pneu: “);

int cod_p=keyboard.readInt();

System.out.print(”> Digite o codigo do motor: ");

int cod_m=keyboard.readInt();</em>/

auto[x]=new Carro(nome,num_p,ano,tipo,p1,m1);

}
}else {System.out.println("\n|> Qtd Invalida! So eh permitido incluir ate dez carros!");}
		} if (op==2) {
			for(x=0;x<auto.length;x++){
			System.out.println(auto[x].toString());}
		} if (op==3) {
			System.exit(0);
		} else if (op<=0 || op>=4){
			System.out.println("Opcao Invalida!\n");
		}
	}
}

}

11 Respostas

renzonuccitelli

To vendo o código, mas da próxima vez que postar um código, use o botão Code no editor da mensagem. Isso tornará o código mais legível, como vc já deve ter notado em outros tópicos.

G

if (op==1) { System.out.print("|> Deseja incluir quantos carros: "); i = keyboard.readInt(); if(i<=10){

aqui ta dizendo que a opção de incuir é 1

renzonuccitelli

Quando você iniciou o vetor auto, colocou valor 0. então ele nunca entrará no laço. Quando vc ler o número de carros que deseja inserir, deve inicializar o vetor auto com esse valor, ou entao usar uma lista e ir adicionando os autos nelas, ou até mesmo inicializar o vetor auto com um valor grande…

G

OBS. para ficar mais claro de se visualizar o codigo utilize a barrinha que esta abaixo da barra de titulo onde vc escreve o assunto, lá ele ele tem uma opção que coloca o codigo de forma padronizada

renzonuccitelli

faz auto=new Carro[i]

logo depois da linha i=keyboard.readInt();

renzonuccitelli

Agora que vi, você quer no máximo 10, então inicializa o vetor com esse valor

G

tambem vc não não colocou as informações no lugar certo
cada uma vai precisar de um vetor para aparecer …caso queira fazer sem vc usar uma classe auxiliar

use um vetor de String para cada item para que ele possa guardar todas as informações

G
class Principal{ 
public static void main(String args[]){ 
int op=0; 
int i=0; 
Carro[] auto = new Carro[i]; 
while (op!=3){ 
System.out.println("\n CADASTRO DE CARROS "); 
System.out.println("|> Legenda: "); 
System.out.println("|> Opcao 01 - Incluir Carros "); 
System.out.println("|> Opcao 02 - Exibe Carros Cadastrados"); 
System.out.println("|> Opcao 03 - Sair do Programa"); 
System.out.print("\n|> Escolha opcao .........: "); 
op = keyboard.readInt(); 
int x; 
String geral;

if (op==1) { 
System.out.print("|> Deseja incluir quantos carros: "); 
i = keyboard.readInt(); 
if(i<=10){ 
for(x=0; x<auto.length; x++){ 
System.out.println(""); 
System.out.print("> Digite o nome do Carro: "); 
String nome=keyboard.readString(); 
System.out.print("> Digite o numero de portas: "); 
int num_p=keyboard.readInt(); 
System.out.print("> Digite o ano de fabricacao: "); 
int ano=keyboard.readInt(); 
System.out.print("> Digite o tipo do carro: "); 
String tipo=keyboard.readString(); 
Pneu p1,p2; 
Motor m1,m2; 
p1=new Pneu(1, "Aro 16"); 
p2=new Pneu(2, "Aro 20"); 
m1=new Motor(1, "500cv"); 
m2=new Motor(2, "700cv"); 
/*System.out.print("> Digite o codigo do pneu: "); 
int cod_p=keyboard.readInt(); 
System.out.print("> Digite o codigo do motor: "); 
int cod_m=keyboard.readInt();*/ 
auto[x]=new Carro(nome,num_p,ano,tipo,p1,m1); 
auto[x]=exibir==> para exibir cada pagina
geral=+auto[x].exibirgeral;
} 

}else {System.out.println("\n|> Qtd Invalida! So eh permitido incluir ate dez carros!");} 
} if (op==2) { 
for(x=0;x<auto.length;x++){ 
System.out.println(auto[x].toString());} 
} if (op==3) { 
System.exit(0); 
} else if (op<=0 || op>=4){ 
System.out.println("Opcao Invalida!\n"); 
} 
} 
} 
} 
public class carro(){
String nome, tipo, marca ....
public carro(String nome ,String marca,String fabri...){
this.nome=nome;
.
.
.
}
public void exibir(){
System.out.print("nome:"+nome ....);

}
public String exibirgeral(){
String a=''nome''+nome....;
return a;
}
}

vc faz o metodo de leitura geral depois na opção dois

natanrs

Vlew pessoal… vcs são demais!!! Eu só fiz colocar o auto = new Carro[i]; abaixo do i = keyboard.readInt(); Awe funcionou blza! Mas eu dxei o i sendo inicializado com 0, acontece a mesma coisa se ele for inicializado com 10. Qual a diferença disso?
Mas já está cadastrando e mostrando o resultado!

Vlew pessoal… Abraço!

By. Natanael R.

natanrs

Guilherme tbm vou fazer dessa maneira awe q vc mostrou! Vlew…!

Luiz_Aguiar

Leia esses topicos por favor!
http://www.guj.com.br/posts/list/15777.java
http://www.guj.com.br/posts/list/50115.java

Coloque sem um tirulo que tenha a ver com a sua duvida!
Obrigado!

Criado 19 de setembro de 2008
Ultima resposta 19 de set. de 2008
Respostas 11
Participantes 4