ProgramaEstacionamento

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

[code]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;

}
}

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();
    
[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));
}
}[/code]

 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

E ae???

mude para…

public static void main(String[] args){ 

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

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

[quote=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
[/quote]

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

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

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

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();
}

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.

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?

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

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

flw

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

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

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));
}
}