Sistema de vendas para um aeroporto

9 respostas
Jeanfbs

Olá pessoal, estou com uma duvida na aplicação de array para com objetos: Por exemplo, estou criando um programa que simula um aeroporto o cliente chega e insere seus dados (nome, classe, numero de passaporte) e o sistema vende uma passagem para o cliente, no avião tem 40 lugares, o que eu quero realmente é que para cada cliente que o entrar com os dados no sistema o sistema cria um objeto cliente, e já atribui esse objeto a um lugar no avião, sendo assim o próprio sistema iria imprimir um ticket com os dados do cliente, o valor da passagem e o lugar em que ele comprou.

Meu problema está em nessa atribuição dos dados do cliente para com o objeto que é criado automaticamente no array, por favor me ajudem. eis o código:

void passageiro(){
    
        Passageiro[] lista = new Passageiro[40]; // ARRAY DE POSIÇÃO DO AVIÃO
        

            
        for(int i = 0;i<41;i++){
      
         lista[i] = new Passageiro();  // AQUI É ONDE SE DEVERIA CRIAR UM OBJETO PARA CADA VENDA REALIZADA COM SUAS DEVIDAS POSIÇÕES NO AVIÃO
     
     
      
     System.out.println(lista[i]); // AQUI É ONDE O SISTEM IMPRIME O OBJETO EM FORMATO DE MAQUINA.
     
      break;
        }
    }
}

Resultado em tela

BEM VINDO AO ATENDIMENTO ELETRÔNICO DE VENDAS
Digite o destino: 1 - França 2 - EUA 3 - Itália 4 - Inglaterra 5 - Japão
1
Avião: Boing - 772
Destino: França
- HORÁRIOS DE VOO -
Horários de Saída Horários de Chegada VALOR
Voo 1 8 Horas 12 Horas 300.0
Voo 2 16 Horas 23 Horas 250.0
Digite 1 para comprar o Voo 1 ou 2 para comprar o Voo 2:
1
Digite seu nome completo:
Jean
Digite a classe que você deseja:
Executivo
Digite o número do seu passaporte:
123124
Digite 1 para pagamento à vista ou 2 para parcelamento:
1
Passageiro@bdab91 // AQUI ESTÁ MINHA DIFICULDADE, EM VEZ DE RETORNAR OS DADOS RETORNA O OBJETO EM CÓDIGO DE MAQUINA
O valor à vista: 300.0
Seu numero de voo é: BR229
CONSTRUÍDO COM SUCESSO (tempo total: 9 segundos)

percebem que o cliente entra e escolhe a rota, depois o sistem pede para escolher o tipo de voo, depois ele digita os dados, e pegunta a forma de pagamento, assim nessa parte, eu gostaria que o sistema criasse o objeto cliente, e atribuisse esse objeto a um lugar do avião, retornando os dados digitados em tela com o numero do lugar, ou seja a posição no array.

Grato!!!

9 Respostas

domzinhuu

Bom amigo creio que na parte onde voce manda exibir na tela o objeto da lista, voce vai precisar chamar o metodo Get do parametro que voce deseja exibir por exemplo:

voce quer exibir o nome do passageiro…

System.out.println(lista[i].getNome());

se deseja exibir outro paramentro:

System.out.println(lista[i].getAtributoquevcquiser);

era isso que vc queria saber??

darklordkamui

Jeanfbs:
Olá pessoal, estou com uma duvida na aplicação de array para com objetos: Por exemplo, estou criando um programa que simula um aeroporto o cliente chega e insere seus dados (nome, classe, numero de passaporte) e o sistema vende uma passagem para o cliente, no avião tem 40 lugares, o que eu quero realmente é que para cada cliente que o entrar com os dados no sistema o sistema cria um objeto cliente, e já atribui esse objeto a um lugar no avião, sendo assim o próprio sistema iria imprimir um ticket com os dados do cliente, o valor da passagem e o lugar em que ele comprou.

Meu problema está em nessa atribuição dos dados do cliente para com o objeto que é criado automaticamente no array, por favor me ajudem. eis o código:

void passageiro(){
    
        Passageiro[] lista = new Passageiro[40]; // ARRAY DE POSIÇÃO DO AVIÃO
        

            
        for(int i = 0;i<41;i++){
      
         lista[i] = new Passageiro();  // AQUI É ONDE SE DEVERIA CRIAR UM OBJETO PARA CADA VENDA REALIZADA COM SUAS DEVIDAS POSIÇÕES NO AVIÃO
     
     
      
     System.out.println(lista[i]); // AQUI É ONDE O SISTEM IMPRIME O OBJETO EM FORMATO DE MAQUINA.
     
      break;
        }
    }
}

Resultado em tela

BEM VINDO AO ATENDIMENTO ELETRÔNICO DE VENDAS
Digite o destino: 1 - França 2 - EUA 3 - Itália 4 - Inglaterra 5 - Japão
1
Avião: Boing - 772
Destino: França
- HORÁRIOS DE VOO -
Horários de Saída Horários de Chegada VALOR
Voo 1 8 Horas 12 Horas 300.0
Voo 2 16 Horas 23 Horas 250.0
Digite 1 para comprar o Voo 1 ou 2 para comprar o Voo 2:
1
Digite seu nome completo:
Jean
Digite a classe que você deseja:
Executivo
Digite o número do seu passaporte:
123124
Digite 1 para pagamento à vista ou 2 para parcelamento:
1
Passageiro@bdab91 // AQUI ESTÁ MINHA DIFICULDADE, EM VEZ DE RETORNAR OS DADOS RETORNA O OBJETO EM CÓDIGO DE MAQUINA
O valor à vista: 300.0
Seu numero de voo é: BR229
CONSTRUÍDO COM SUCESSO (tempo total: 9 segundos)

percebem que o cliente entra e escolhe a rota, depois o sistem pede para escolher o tipo de voo, depois ele digita os dados, e pegunta a forma de pagamento, assim nessa parte, eu gostaria que o sistema criasse o objeto cliente, e atribuisse esse objeto a um lugar do avião, retornando os dados digitados em tela com o numero do lugar, ou seja a posição no array.

Grato!!!

se vc reimplementar o toString funciona…

fabiocortolan

Uma obs, seu laço vai dar erro pq está colocando mais posições do que o Array possui:

for (int i = 0; i&lt;41 ; i++) { // Aqui vc percorre 41 posições  
    lista[i] = new Passageiro(); 
}

for (int i = 0; i &lt; 40 ; i++) { // O correto é ser menor q 40  
    lista[i] = new Passageiro(); 
}
Jeanfbs

domzinhuu:
Bom amigo creio que na parte onde voce manda exibir na tela o objeto da lista, voce vai precisar chamar o metodo Get do parametro que voce deseja exibir por exemplo:

voce quer exibir o nome do passageiro…

System.out.println(lista[i].getNome());

se deseja exibir outro paramentro:

System.out.println(lista[i].getAtributoquevcquiser);

era isso que vc queria saber??

Kara o que vc falou está correto, o problema é que meu array é de objetos, para que o metodo get seja chamado eu teria que criar um array para cada atributo, e nesse caso eu criei um unico array que contem objetos individuais. Entende?

fabiocortolan

Jeanfbs:

Kara o que vc falou está correto, o problema é que meu array é de objetos, para que o metodo get seja chamado eu teria que criar um array para cada atributo, e nesse caso eu criei um unico array que contem objetos individuais. Entende?

Mas o q o “domzinhuu” falou está correto, se vc tem um array de objetos, vc percorre esse array e imprime o atributo de cada objeto, não vi problema nisso! Vc só vai ter q colocar cada atributo q vc precisa imprimir dentro do laço.

Jeanfbs

Pessoal consegui resolver a questão de imprimir os atributos do objeto em tela, porém agora quero que para cada vez que um cliente comprar uma passagem,
o sistema guarde em memoria aquele objeto, atribuindo um lugar no array, até que se complete os lugares.

Quando um cliente compra a passagem, é criado um objeto para a primeira posição do array, porém se eu reinicio o sistema ele fica atribuindo a aquele mesmo lugar.

como faço para guardar esses dados em cada posição do array, por tempo de execução, ou seja enquanto o sistema estiver rodando?

domzinhuu

como faço para guardar esses dados em cada posição do array, por tempo de execução, ou seja enquanto o sistema estiver rodando?

Bom amigão acho que é melhor vc trabalhar com Listas ao invés de Array acho que é mas usando hoje em dia.

de uma olhada no tipo java.util.List que deve resolver seu problema…

fabiocortolan

Se vc fizer várias instâncias da classe que preenche o array vc pode usar uma variável estática, não sei se é o mais recomendado mas deve funcionar no seu caso.

Jeanfbs

ai galera valeu mesmo

a questão agora é eu dominar um banco de dados temporário, coisa que eu ainda não sei fazer, acho que para que o sistema possa funcionar bem, um banco de dados que guarde cada venda realizada para que possa percorrer o array, e ir add para cada lugar nele, até que se complete o array, ou seja, para cada novo cliente que comprar o sistema iria add no lugar do avião até completar tudo, depois iria parar a venda para aquele avião.

Não sei se tem uma forma melhor de construir esse banco de dado, ou armazenamento temporário se assim posso dizer, se alguém souber de algo, passe o artigo ou o link,

mas valeu mesmo!!!

Criado 29 de abril de 2013
Ultima resposta 29 de abr. de 2013
Respostas 9
Participantes 4