Utilizar o que: método, arquivo.txt, objetos no Projetinho Onibus
6 respostas
S
Sergio_Prado
Pessoal, alguém pode me orientar ou dar algumas dicas e idéias para desenvolver uma lógica para resolver o problema apresentado
Tenho algumas apostilas de manipulação de arquivo, métodos e objetos, porém tenho dificuldade no java.
Projetinho Ônibus:
Deverá controlar as poltronas de um ônibus (44 lugares).
O sistema controla a venda de passagens deste ônibus as janelas são representadas por pelos números ímpares e o corredor pelos pares, ambos de 1 a 44.
O nome do passageiro, rg e número da poltrona deverá ser gravado em um arquivo, a venda só poderá ser feita caso a poltrona esteja vazia, para isso, o sistema solicita o número da poltrona para que seja feita uma consulta ao arquivo.
Emitir um relatório com apenas as poltronas que se encontram ocupadas.
Cara, um array de 44 lugares.
Aí você pode tanto pensar nesse array sendo único ou dividir ele em 2 (para ficarem duas fileiras de pares).
Os “i mod 2 != 0” são ímpares e os outros são pares.
Use a classe File para fazer um arquivo disso. Se você falou que tem algumas apostilas de arquivos, deve ser fácil de fazer então.
Guarde, na classe de Passageiro a posição em que ele se encontra (todos podem começar no 0). Para que você saiba quais cadeiras estão ocupadas e quais não estão.
Umas 3 classes no máximo devem resolver seu problema.
S
Sergio_Prado
Obrigado “dedejava”
Amanhã vou iniciar a desenvolver a partir de sua orientação, e qualquer dificuldade eu atualizo esse tópico.
Valeu
sergiotaborda
Sergio Prado:
Pessoal, alguém pode me orientar ou dar algumas dicas e idéias para desenvolver uma lógica para resolver o problema apresentado
Tenho algumas apostilas de manipulação de arquivo, métodos e objetos, porém tenho dificuldade no java.
Projetinho Ônibus:
Deverá controlar as poltronas de um ônibus (44 lugares).
O sistema controla a venda de passagens deste ônibus as janelas são representadas por pelos números ímpares e o corredor pelos pares, ambos de 1 a 44.
O nome do passageiro, rg e número da poltrona deverá ser gravado em um arquivo, a venda só poderá ser feita caso a poltrona esteja vazia, para isso, o sistema solicita o número da poltrona para que seja feita uma consulta ao arquivo.
Emitir um relatório com apenas as poltronas que se encontram ocupadas.
Crie um objeto Onibus, um objeto Poltrona e um objeto Pessoa
Onibus tem vários Lugar e cada lugar pertence a uma pessoa e o codigo fica ± assim
classOnibusList<Poltrona>poltronas=newArrayList<Poltrona>(44);publicOnibus(){// preenche as poltronas todas vaziasfor(inti=0;i<44;i++){poltronas.add(Poltrona.empty());}}publicbooleanreserva(intnumeroPoltrona,Pessoapessoa){Poltronap=poltronaPeloNumero(numeroPoltrona);returnp.reservaPara(pessoa);}publicPoltronapoltronaPeloNumero(intnumeroPoltrona){returnpoltronas.get(numeroPoltrona-1);// a poltrona 1 é o indece 0}publicintnumeroDaPoltrona(Poltronap){intpos=poltronas.indexOf(p);returnpos<0?-1:pos+1;// a poltrona 1 é o indece 0 , mas pos ==-1 signifca não encontrado}publicPoltronaadjacente(Poltronap){intpos=numeroDaPoltrona(n);// se é impar pega o par seguinte. // se é par , pega o impar anteriorif(pos%2==0){returnpoltronas(pos-1);}else{returnpoltronas(pos+1);}}}classPoltrona{Pessoapessoa;publicstaticPoltronaempty(){returnnewPoltrona();}publicbooleanestaLivre(){returnpessoa==null;}publicbooleanreservaPara(pessoa){if(!estaLivre()){returnfalse;// não está livre. Não pode reservar.}this.pessoa=pessoa;}}
etc… depois vc pensa em como salvar isso num aquivo (e por “arquivo” estou entendendo “não um banco de dados”). Vc pode usar XML por exemplo. É bem simples.
S
Sergio_Prado
Valeu “sergiotaborda”, show de bola.
Após sua ajuda e material que consegui vou conclui esse exércicio.
Att.
Sérgio
S
Sergio_Prado
Pessoal alguem pode me ajudar a corrgir os erros no codigo abaixo
// Classe principal utiliza a classe pessoa, que está no final da dessa classe UsaPessoa
// marca a primeira posição livre no vetor cadstaticintposLivre=0;// chama o método menupublicstaticvoidmain(Stringargs[]){menu();}// Menupublicstaticvoidmenu(){Stringopcao=JOptionPane.showInputDialog("1 - Cadastrar \n"+"2 - Imprimir");if(opcao!=null){switch(opcao.charAt(0)){case1:Cadastrar();break;case2:Imprimir();break;}}}publicstaticvoidCadastrar(){// antes de cadastrar verifica se o cadastro nao está cheioif(posLivre<cad.length){Stringnome=JOptionPane.showInputDialog("Digite o nome");StringRg=JOptionPane.showInputDialog("Digite o Rg");StringNumeroPoltrona=JOptionPane.showInputDialog("Digite o numero da poltrona");if(Nome!=null&&Rg!=null&&NumeroPoltrona!=null){// chama o método setNome da instancia cad[posLivre]cad[posLivre]=newCadCliente(nome,Integer.parseInt(Rg),Integer.parseInt(NumeroPoltrona));// Os metodos sets podem ser excluidos porque o construtor inicializa os atributoscad[posLivre].setNome(Nome);cad[posLivre].setRg(Integer.parseInt(Rg));cad[posLivre].setNumeroPoltrona(Integer.parseInt(NumeroPoltrona));poslivre++;}}}publicstaticvoidImprimir(){Stringaux;for(inti=0;i<posLivre;i++){aux=cad[i].getNome;// verifica se o nome não é vazio, pois esta é a condição que criamos para excluir um registro do vetor cadif(!aux.equals(""))cad[i].Imprimir();}}
Então cara… alguns dos seus erros são nas variáveis. A variável String Nome (o seu primeiro erro), na verdade possui 2 erros. Um é de que a variável declarada é nome e não Nome. E outra, quando você vai comprar string com alguma coisa, você deve usar o método .equals() que tem na documentação da classe String.
Quer uma dica?
Quando for postar códigos, coloque ele entre , pq fica muito mais fácil de ler.