ProgramaEstacionamento

14 respostas
C

Galera!! Help, quem puder me ajudar, não estou conseguindo achar o erros no código dessa possivel implementação para um estacionamento

Obs: Sublinhei onde aparece os erros, se alguem tem uma outra opinião de como fazer também será bem vinda

Num estacionamento, existe um limite de vagas, existindo uma taxa mínima de R$ 2,00 p/ estacionar com duração mínima de 3 horas. Um adicional 0,50 por hora é cobrado após as 3 1ª horas. Pressupõe-se que nenhum veículo poderá permanecer no estacionamento por mais de 24 horas consecutivas. Sabendo a hora inicial e final que o veículo permaneceu no estacionamento, o sistema deverá calcular o custo da permanência.

CÓDIGO

public class Estacionamento {
    final static int NumeroVagas=5;
    final static double TaxaMinima=2;
    final static int DuracaoMinima=3;
   [u] final static double Adicional=0,50;[/u]   
    Int VagaOcupada=0;
    
    /**
     * Creates a new instance of Estacionamento
     */
    public Estacionamento() {}
    
    /**
     * @param args the command line arguments
     */
    public boolean VerificarVagas () {
        if (VagaOcupada<5){
            VagaOcupada++;
            return true;
        }
        else return false;
    }
    public double CalcularCustoPermanencia(int HoraInicial, int HoraFinal){
       if ((HoraFinal-HoraInicial)<=DuracaoMinima)
           return TaxaMinima;

  }
}



public class EstacionamentoTeste {
 [u] Public static void main(String[]args){[/u]  
      Estacionamento E=new Estacionamento();
     } 
    
    /** Creates a new instance of EstacionamentoTeste */
    public EstacionamentoTeste() {
        //viculo nº 1
        Veiculo V1=new veiculo("aa",1,9,E);
        V1.estacionar();
        V1.sair();
        //viculo nº 2
        Veiculo V2=new veiculo("aa",2,9,E);
        V2.estacionar();
        V2.sair();
        //viculo nº 3
        Veiculo V3=new veiculo("aa",3,9,E);
        V3.estacionar();
        V3.sair();
        //viculo nº 4
        Veiculo V4=new veiculo("aa",4,9,E);
        V4.estacionar();
        //viculo nº 5
        Veiculo V5=new veiculo("aa",5,9,E);
        V5.estacionar();
        V5.sair();
        //viculo nº 6
        Veiculo V6=new veiculo("aa",6,9,E);
        V6.estacionar();
        V6.sair();
        //viculo nº 7
        Veiculo V7=new veiculo("aa",7,9,E);
        V7.estacionar();
        V7.sair();
        
    [u]}[/u]    
}


public class Veiculo {
    Estacionamento E;
    int HoraInicial;
    int HoraFinal;
    String placa;
    boolean status;        
    
    /** Creates a new instance of Veiculo */
    public Veiculo() {}
    Veiculo(String Placa, int HoraInicial,int HoraFinal,Estacionamento E){
        this.placa=Placa;
        this.HoraInicial=HoraInicial;
        this.HoraFinal=HoraFinal;
        this.E=E;
    }
 public void estacionar (){
     if(E.VerificarVagas()){
     System.out.println("pode estacionar");
     status=true;
 }
 else{
     System.out.println("Estacionamento lotado");
      status=false;
     
}
 }
public void sair(){
    if (status)
        System.out.println("o valor da permanencia é" + E.CalcularCustoPermanencia(HoraInicial,HoraFinal));
}                   
}

14 Respostas

P
final static double Adicional=0,50;

Coloque um ponto, em vez da virgula.

Public static void main(String[]args)

‘public’ com letra minuscula, java é case sensitive.
flw

J

E ae???

mude para…

public static void main(String[] args){
R

Jason, fiz aas alterações e comentei, uma coisa que mudei foi que so deixei a classe Estacionamento como pública, as demais retirei o public por imaginar que todas essas classes estão em um mesmo arquivo (.java) se estiver em diferentes arquivos volta elas pra public

public class Estacionamento {

final static int NumeroVagas=5;

final static double TaxaMinima=2;

final static int DuracaoMinima=3;

final static double Adicional=0.50; //"." ao invés de ","

int VagaOcupada=0; //int ao invés de Int

/**

  • Creates a new instance of Estacionamento
    */
    public Estacionamento() {}

/**

  • @param args the command line arguments
    */
    public boolean VerificarVagas () {
    if (VagaOcupada<5){
    VagaOcupada++;
    return true;
    }
    else return false;
    }
    public double CalcularCustoPermanencia(int HoraInicial, int HoraFinal){
    if ((HoraFinal-HoraInicial)<=DuracaoMinima)
    return TaxaMinima;
    else // Do jeito que estava if não entrasse no if daria erro, pois nao teria retorno
    return 0.0;

}
}

class EstacionamentoTeste {
Estacionamento E = new Estacionamento(); //deve ser um atributo de classe não do método main

public static void main(String[]args){ //p minúsculo ao invés de P maiúsculo
}

/** Creates a new instance of EstacionamentoTeste */

public EstacionamentoTeste() {

//viculo nº 1

Veiculo V1=new Veiculo("aa",1,9,E); //V deve ser maiusculo

V1.estacionar();

V1.sair();

//viculo nº 2

Veiculo V2=new Veiculo("aa",2,9,E); //V deve ser maiusculo

V2.estacionar();

V2.sair();

//viculo nº 3

Veiculo V3=new Veiculo("aa",3,9,E); //V deve ser maiusculo

V3.estacionar();

V3.sair();

//viculo nº 4

Veiculo V4=new Veiculo("aa",4,9,E); //V deve ser maiusculo

V4.estacionar();

//viculo nº 5

Veiculo V5=new Veiculo("aa",5,9,E); //V deve ser maiusculo

V5.estacionar();

V5.sair();

//viculo nº 6

Veiculo V6=new Veiculo("aa",6,9,E); //V deve ser maiusculo

V6.estacionar();

V6.sair();

//viculo nº 7

Veiculo V7=new Veiculo("aa",7,9,E); //V deve ser maiusculo

V7.estacionar();

V7.sair();

}
}

class Veiculo {

Estacionamento E;

int HoraInicial;

int HoraFinal;

String placa;

boolean status;
/** Creates a new instance of Veiculo */

public Veiculo() {}

public Veiculo(String Placa, int HoraInicial,int HoraFinal,Estacionamento E){ //deve ser público

this.placa=Placa;

this.HoraInicial=HoraInicial;

this.HoraFinal=HoraFinal;

this.E=E;

}

public void estacionar (){

if(E.VerificarVagas()){

System.out.println("pode estacionar");

status=true;

}

else{

System.out.println("Estacionamento lotado");

status=false;
}

}

public void sair(){

if (status)

System.out.println("o valor da permanencia é" + E.CalcularCustoPermanencia(HoraInicial,HoraFinal));

}

}

Qualquer dúvida falae

B

tah bem confuso… nao entendi nada do codigo nem do enunciado

C

rafael_ra:
Jason, fiz aas alterações e comentei, uma coisa que mudei foi que so deixei a classe Estacionamento como pública, as demais retirei o public por imaginar que todas essas classes estão em um mesmo arquivo (.java) se estiver em diferentes arquivos volta elas pra public

public class Estacionamento {

final static int NumeroVagas=5;

final static double TaxaMinima=2;

final static int DuracaoMinima=3;

final static double Adicional=0.50; //"." ao invés de ","

int VagaOcupada=0; //int ao invés de Int

/**

  • Creates a new instance of Estacionamento
    */
    public Estacionamento() {}

/**

  • @param args the command line arguments
    */
    public boolean VerificarVagas () {
    if (VagaOcupada<5){
    VagaOcupada++;
    return true;
    }
    else return false;
    }
    public double CalcularCustoPermanencia(int HoraInicial, int HoraFinal){
    if ((HoraFinal-HoraInicial)<=DuracaoMinima)
    return TaxaMinima;
    else // Do jeito que estava if não entrasse no if daria erro, pois nao teria retorno
    return 0.0;

}
}

class EstacionamentoTeste {
Estacionamento E = new Estacionamento(); //deve ser um atributo de classe não do método main

public static void main(String[]args){ //p minúsculo ao invés de P maiúsculo
}

/** Creates a new instance of EstacionamentoTeste */

public EstacionamentoTeste() {

//viculo nº 1

Veiculo V1=new Veiculo("aa",1,9,E); //V deve ser maiusculo

V1.estacionar();

V1.sair();

//viculo nº 2

Veiculo V2=new Veiculo("aa",2,9,E); //V deve ser maiusculo

V2.estacionar();

V2.sair();

//viculo nº 3

Veiculo V3=new Veiculo("aa",3,9,E); //V deve ser maiusculo

V3.estacionar();

V3.sair();

//viculo nº 4

Veiculo V4=new Veiculo("aa",4,9,E); //V deve ser maiusculo

V4.estacionar();

//viculo nº 5

Veiculo V5=new Veiculo("aa",5,9,E); //V deve ser maiusculo

V5.estacionar();

V5.sair();

//viculo nº 6

Veiculo V6=new Veiculo("aa",6,9,E); //V deve ser maiusculo

V6.estacionar();

V6.sair();

//viculo nº 7

Veiculo V7=new Veiculo("aa",7,9,E); //V deve ser maiusculo

V7.estacionar();

V7.sair();

}
}

class Veiculo {

Estacionamento E;

int HoraInicial;

int HoraFinal;

String placa;

boolean status;
/** Creates a new instance of Veiculo */

public Veiculo() {}

public Veiculo(String Placa, int HoraInicial,int HoraFinal,Estacionamento E){ //deve ser público

this.placa=Placa;

this.HoraInicial=HoraInicial;

this.HoraFinal=HoraFinal;

this.E=E;

}

public void estacionar (){

if(E.VerificarVagas()){

System.out.println("pode estacionar");

status=true;

}

else{

System.out.println("Estacionamento lotado");

status=false;
}

}

public void sair(){

if (status)

System.out.println("o valor da permanencia é" + E.CalcularCustoPermanencia(HoraInicial,HoraFinal));

}

}

Qualquer dúvida falae

Ainda esta dando erro nessa parte do código:

public class EstacionamentoTeste {

public static void main(String[]args){

Estacionamento E=new Estacionamento();

}
/** Creates a new instance of EstacionamentoTeste */
public EstacionamentoTeste(){
    //viculo nº 1
    Veiculo V1=new Veiculo("aa",1,9,E);
    V1.estacionar();
    V1.sair();
    //viculo nº 2
    Veiculo V2=new Veiculo("aa",2,9,E);
    V2.estacionar();
    V2.sair();
    //viculo nº 3
    Veiculo V3=new Veiculo("aa",3,9,E);
    V3.estacionar();
    V3.sair();
    //viculo nº 4
    Veiculo V4=new Veiculo("aa",4,9,E);
    V4.estacionar();
    //viculo nº 5
    Veiculo V5=new Veiculo("aa",5,9,E);
    V5.estacionar();
    V5.sair();
    //viculo nº 6
    Veiculo V6=new Veiculo("aa",6,9,E);
    V6.estacionar();
    V6.sair();
    //viculo nº 7
    Veiculo V7=new Veiculo("aa",7,9,E);
    V7.estacionar();
    V7.sair();
    
}

}

Como crio o campo E no estacionamento.EstacionamentoTeste
Como crio o parametro E
como crio a variavel local E

P

Coloque o erro aqui, assim fica mais fácil de resolver o problema.

C

Esta pendindo p/ criar, campo E no estacionamento.EstacionamentoTeste, parametro E, variavel local E

R
public class EstacionamentoTeste {

public static void main(String[]args){

Estacionamento E=new Estacionamento();

}

tem que ser assim

public class EstacionamentoTeste {

Estacionamento E;

public static void main(String[]args){

E=new Estacionamento();

}
C

Ainda tá dando erro nessa parte
//E=new Estacionamento();

seguinte msg (non-static variable E cannot be referenced from a static context)

Caso tire o static, o programa fica sem erros, mas não retorna nemuma saida.

R
public class EstacionamentoTeste {

Estacionamento E;

public static void main(String[]args){

E=new Estacionamento();

}

muda para

public class EstacionamentoTeste {

static Estacionamento E;

public static void main(String[]args){

E=new Estacionamento();

}

Coloca a variavel E como static
Agora uma dúvida, vc precisa que esses métodos e sejam realmente estaticos?

P
public class EstacionamentoTeste{
Estacionamento E = new Estacionamento();

public static void main(String[] args){
     new EstacionamentoTeste();
}

flw

C

Legal, galera ta rodando bonito, isso Rafael preciso deles static. Obrigado pela força, até breve

A

Caro computero,

E então voce conseguiu fazer funcionar? é possivel voce colocar o código na integra aqui pra gente ver como é que ficou? peguei o seu código pra fazer um teste e ao compilar, ele estáva me dando o seguinte erro: “reached end of file while parsing”, isso aconteceu com voce?

Atenciosamente,

Edson

C

Caro Amamorim o código ficou dessa forma e não esta dando erro algum

//classe estacionamento

package estacionamento;

/**
*

  • @author padilha
    
    */
    
    public class Estacionamento {
    
    final static int NumeroVagas=5;
    
    final static double TaxaMinima=2;
    
    final static int DuracaoMinima=3;
    
    final static double Adicional=0.50;
    
    int VagaOcupada=0;
    

    /**

    • Creates a new instance of Estacionamento
      */
      public Estacionamento() {}

    /**

    • @param args the command line arguments
      
      */
      
      public boolean VerificarVagas () {
      
      if (VagaOcupada<5){
      
      VagaOcupada++;
      
      return true;
      
      }
      
      else return false;
      
      }
      
      public double CalcularCustoPermanencia(int HoraInicial, int HoraFinal){
      
      if ((HoraFinal-HoraInicial)<=DuracaoMinima)
      
      return TaxaMinima;
      
      else
      
      return 0.0;
      

      // TODO code application logic here
      }

}

//classe estacionamento deste

package estacionamento;

/**
*

  • @author padilha
    
    */
    
    public class EstacionamentoTeste {
    
    static Estacionamento E;
    
    public static void main(String[]args){
    
    E=new Estacionamento();
    
    }
    
    /** Creates a new instance of EstacionamentoTeste */
    
    public EstacionamentoTeste() {
    
    //viculo nº 1
    
    Veiculo V1=new Veiculo(aa,1,9,E);
    
    V1.estacionar();
    
    V1.sair();
    
    //viculo nº 2
    
    Veiculo V2=new Veiculo(aa,2,9,E);
    
    V2.estacionar();
    
    V2.sair();
    
    //viculo nº 3
    
    Veiculo V3=new Veiculo(aa,3,9,E);
    
    V3.estacionar();
    
    V3.sair();
    
    //viculo nº 4
    
    Veiculo V4=new Veiculo(aa,4,9,E);
    
    V4.estacionar();
    
    //viculo nº 5
    
    Veiculo V5=new Veiculo(aa,5,9,E);
    
    V5.estacionar();
    
    V5.sair();
    
    //viculo nº 6
    
    Veiculo V6=new Veiculo(aa,6,9,E);
    
    V6.estacionar();
    
    V6.sair();
    
    //viculo nº 7
    
    Veiculo V7=new Veiculo(aa,7,9,E);
    
    V7.estacionar();
    
    V7.sair();
    

    }

}

//classe veiculo

package estacionamento;

/**
*

  • @author padilha
    
    */
    
    public class Veiculo {
    
    Estacionamento E;
    
    int HoraInicial;
    
    int HoraFinal;
    
    String placa;
    
    boolean status;
    
    /** Creates a new instance of Veiculo */
    
    public Veiculo() {}
    
    Veiculo(String Placa, int HoraInicial,int HoraFinal,Estacionamento E){
    
    this.placa=Placa;
    
    this.HoraInicial=HoraInicial;
    
    this.HoraFinal=HoraFinal;
    
    this.E=E;
    
    }
    
    public void estacionar (){
    
    if(E.VerificarVagas()){
    
    System.out.println(pode estacionar);
    
    status=true;
    
    }
    
    else{
    
    System.out.println(Estacionamento lotado);
    
    status=false;
    
}

}

public void sair(){

if (status)

System.out.println(o valor da permanencia é + E.CalcularCustoPermanencia(HoraInicial,HoraFinal));

}

}
Criado 8 de abril de 2008
Ultima resposta 10 de abr. de 2008
Respostas 14
Participantes 6