Ajuda no codigo!

1 resposta
C

Ola pessoal, estou quaser terminando de fazer a aplicacao, se alguem puder me ajudar!!!

/* Programa que lê e rescebe a entrada do usuário para
   a quantidade de km rodados usando a sentinela e quantos litros foram 
   usados pelo carro, ele calcula a média de km/l e 
   soma ao total de litros de combustível, mas
   que só entrar no looping se o numero digitado for 1 ou 2        */
   
  import javax.swing.JOptionPane;
  import java.text.DecimalFormat;

    public class Entrada1ou2 {
      public static void main(String[] args) {
     
        String entradaKm;
        String entradaLt;
        int km;
        int litros;
        int totalLt;
        int totalKm;
        double media;
       
          entradaKm = "";
          km = 0;
          totalKm = 0;

          litros = 0;
          totalLt = 0;
          
          media = 0;

            while(km != -1) {

               while( km != 1 || km != 2) {
                 entradaKm = JOptionPane.showInputDialog( " ! Digite o número de Km rodados ou -1 pra calcular ! " );
                 km = Integer.parseInt( entradaKm );
                 
                   if(km == -1) {
                     media = ( double ) totalKm / totalLt ;
                     break;
                   }
               }

               totalKm += km;

               while(  litros != 1 ||litros != 2) {
                 entradaLt = JOptionPane.showInputDialog( " ! Digite o número de Litros usados ! " );
                 litros = Integer.parseInt( entradaLt );
               }

               totalLt += litros;
            }
            
            DecimalFormat aproximador = new DecimalFormat( " 0.00 " );

            if (totalLt > 0) {
              JOptionPane.showMessageDialog( null,
                " Você percorreu " + totalKm + " Km " + " 
 " +
                " Gastou " + totalLt + "Litros" + "
" +
                " A média de Km/l foi de " + aproximador.format(media) + "Km/l", " Informações Gerais ",
                JOptionPane.INFORMATION_MESSAGE );
            }
            else {
              JOptionPane.showMessageDialog(  null,
                " ! Digite os Litros consumidos ! ", " ! Erro em Efetuar o Calculo ! ",
                JOptionPane.WARNING_MESSAGE );
            }
            
            System.exit( 0 );
      }
    }

Abracao e te +

1 Resposta

dgouvea

Eu não manjo muito de interface gráfica, ta meio confusa essa parte do calculo, tente colocar um botão para adicionar valores e outro para calcular.
Separe a regra de negócio da interface gráfica. Você pode usar essa classe para isso:

public class Calculo {

	private double km = 0;
	private double litros = 0;

	public void setKm( double km ) {
		if ( km > 0 ) {
			this.km += km;
		}
	}

	public double getKm() {
		return this.km;
	}

	public void setLitros( double litros ) {
		if ( litros > 0 ) {		
			this.litros += litros;
		}
	}

	public double getLitros() {
		return this.litros;
	}

	public double calculaMedia() {
		double calculo;
		calculo = this.km / this.litros;
		return calculo;
	}

}

Acho que pode te ajudar.

:wink:

Criado 25 de março de 2004
Ultima resposta 26 de mar. de 2004
Respostas 1
Participantes 2