dúvida urgente em programa Estacionamento

3 respostas
M

:cry: Por favor alguém pra ajudar a definir uma data de entrada e de saida para todo veículo que entra no estacionamento. Meu prof. determinou que o trabalho fosse assim:

Desenvolver um programa windows para o controle de estacionamento em Java. Não é necessária a utilização de banco de dados, podendo os dados serem armazenados apenas em memória, em estruturas adequadas.
O programa deverá ter:
->>Tela para cadastro da tabela de preços, composta de um valor para a 1a hora e outro valor para horas adicionais;

->>Tela para entrada de veículo no estacionamento, através da digitação da placa do veículo;

->>Tela para a saída de veículo do estacionamento, através da digitação da placa: após a saída, o programa deverá exibir na tela as informações do cupom fiscal (Placa do veículo, Data e hora de entrada, Data e hora de saída, Valor a pagar).

->>O valor a ser pago será sempre baseado na diferença em horas entre a entrada e saída, sendo o valor da 1a hora diferenciado. Não há desconto para turnos inteiros (se o veículo ficou 1 dia estacionado, pagará o valor de hora x 24, por exemplo).

Montei as seguintes classes:

/**
 *
 * @author Mauricio
 */
public class Estacionamento {
    private String nome;
    private String cnpj;
    private List listaVeiculos;
    private double precoHora;
    private double precoHoraAdicional;
    
    public Estacionamento(String n, String parametroCnpj) {
        this.nome = n;
        this.cnpj = parametroCnpj;
        this.listaVeiculos = new LinkedList();
    }
    
    //método que adiciona veiculos dentro do estacionamento
    public void entradaVeiculo(Veiculo v) {
        this.listaVeiculos.add(v);
    }
    
    public Veiculo buscaVeiculo(String parametroPlaca) {
        Iterator percLista = this.listaVeiculos.iterator();
        while (percLista.hasNext()) {
            Veiculo v = (Veiculo) percLista.next();
            if (v.getPlaca().equals(parametroPlaca)) {
                return v;
            }
        }
        return null;
    }
     
      //Método que exclui 1 veículo do Estacionamento(remove o veículo
 da lista encadeada)
      public Veiculo saidaVeiculo(String parametroPlaca) {

	//int contador = 0;
	Iterator percLista = this.listaVeiculos.iterator();

	while (percLista.hasNext()) {
	    Veiculo v = (Veiculo) percLista.next();
	     if (v.getPlaca().equals(parametroPlaca)) {
		this.listaVeiculos.remove(v);
		return v;
	     }
	     //contador++;
        } 
        return null;
      }
      
      public Veiculo cuponFiscal() {
          
          
          Calendar dataAtual = Calendar.getInstance();
          dataAtual.setTime(this.dataSaida);
          int anoSaida = dataAtual.get(Calendar.YEAR);
          int mesSaida = dataAtual.get(Calendar.MONTH);
          int diaDaida = dataAtual.get(Calendar.DAY_OF_MONTH);
          
          
      return(v);            
      }

       //Método que determina a quantidade de Veículos no
 Estacionamento
       public int qtdVeiculos() {
            return this.listaVeiculos.size();
       } 
 
      //Método que retorna a lista de veículos do Estacionamento
      public Iterator obterVeiculos() {
	return this.listaVeiculos.iterator();
      }

     public String getNome() {
         return this.nome;
     }
     
     public String getCnpj() {
        return this.cnpj;
    }
     
     public Date getDataSaida() {
         return this.dataSaida;
     }
     
     public void setDataSaida() {
         this.dataSaida = dataSaida;
     }
     
     public double getPrecoHora() {
         return this.precoHora;
     }
     
     public void setPrecoHora() {
         this.precoHora = precoHora;
     }

     public double getPrecoHoraAdicional() {
         return this.precoHoraAdicional;
     }
     
     public void setPrecoHoraAdicional() {
         this.precoHoraAdicional = precoHoraAdicional;
     }
}


/*
 * Veiculo.java
 */

package controle.core;

import java.util.Date;

/**
 *
 * @author Mauricio
 */
public class Veiculo {
    
    private String placa;
    private Date dataEntrada;
    private Date dataSaida;
    
         
    public Veiculo(String nPlaca) {
        
        this.placa = nPlaca;
        
    }

    public java.lang.String getPlaca() {
        return this.placa;
    }
    
    public Date getdataEntrada() {
        return dataEntrada;
    }

    public void setdataEntrada(Date dataEntrada) {
        this.dataEntrada = dataEntrada;
    }    
           
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (!(obj instanceof Veiculo)) return false;
        Veiculo v = (Veiculo) obj;
        return this.placa != null && this.placa.equals(v.placa);
    }
    public int hashCode() {
        if (this.placa != null) {
            return this.placa.hashCode();
        }
        return 0;
    }
	
}

Como farei para armazenar a dataEntrada e dataSaida? Seria a dataEntrada dentro do método entradaVeiculo e datSaida dentro do método saidaVeiculo? Então onde? E o calculo do valor a ser pago, poderá ser calculado onde?no método saidaVeiculo ou no proprio jform quando for mostrar o formulario de saida do veiculo?
:cry:

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:

3 Respostas

F

Olá, bem vindo ao Portal Java. Dê uma olhada depois sobre como postar suas dúvidas.
Um conselho que vai de graça é: “É difícil o pessoal te ajudar quando você posta dúvidas muiiiiiito grandes, ainda mais quando você não usa a formatação BBCode”.

E tentando te ajudar:
Classe Estacionamento:

private java.util.Date entrada;
private java.util.Date saida;
private boolean carroAlugado;

public void alugarCarro(){
saida = new Date();
carroAlugado = true;
}

public void devolverCarro(){
entrada = new Date();
carroAlugado = false;
}

Abraço. t+!!!

M

“fabiozoroastro”:
Olá, bem vindo ao Portal Java. Dê uma olhada depois sobre como postar suas dúvidas.
Um conselho que vai de graça é: “É difícil o pessoal te ajudar quando você posta dúvidas muiiiiiito grandes, ainda mais quando você não usa a formatação BBCode”.

E tentando te ajudar:
Classe Estacionamento:

private java.util.Date entrada;
private java.util.Date saida;
private boolean carroAlugado;

public void alugarCarro(){
saida = new Date();
carroAlugado = true;
}

public void devolverCarro(){
entrada = new Date();
carroAlugado = false;
}

Abraço. t+!!!

POderia por favor me ajudar com a seguinte questâo:? quero armazernar a data atual no atributo dataEntrada, que é do tipo Date e é um atributo da classe Veiculo. Então fiz o sequinte:

//método que adiciona veiculos dentro do estacionamento
public void entradaVeiculo(Veiculo v) {

this.listaVeiculos.add(v);
	v.dataEntrada = new java.util.Date();

}

o código v.dataEntrada, dessa forma armazena a data atual?
Obrigado

F

Olá Maurício. Desta forma, o v.dataEntrada recebe sim a data atual do sistema.
Abraço.

Criado 3 de julho de 2007
Ultima resposta 4 de jul. de 2007
Respostas 3
Participantes 2