A maior rede de estudos do Brasil

Computador de bordo em JAVA

A linguagem Java segue o paradigma de programação orientado a objetos, com isso toda a nossa programação baseia-se nesses conceitos. Para esta atividade, criaremos uma aplicação usando o NetBeans, para controlar um conjunto de automóveis.

Para isso, você vai precisar criar:

- Um novo projeto no NetBeans, do tipo "Aplicativo Java"
- Uma classe "Automóvel" que será uma superclasse.
- As classes "Carro", "Moto" e "Caminhão", que herdam as características da classe "Automóvel".
- Os automóveis devem possuir motor (que guarda a informação se está ligado ou desligado), número de rodas, número de portas e velocidade atual.
- Todos os automóveis são criados com o motor desligado e a velocidade 0.
- Ao criar um carro, moto ou caminhão, o sistema já define o número de portas e rodas automaticamente. Vamos convencionar carros com 4 portas, caminhão com duas e motos com 0.
- Os automóveis devem possuir os métodos ligar, desligar, acelerar, diminuir e trocarPneus.
- Ao ligar e desligar, o atributo motor deve ser alterado.
- Todos os veículos possuem os mesmos métodos acelerar e diminuir, mas ao acelerar ou diminuir, os carros terão uma variação (para cima ou para baixo) de 10km/h, as motos terão uma variação de 20km/h e os caminhões de 5km/h (Só funciona se o automóvel estiver ligado).
- Se o motorista acelerar e a velocidade passar do limite (110km/h para carros e motos, 80km/h para caminhões), o sistema deve imprimir um aviso.
- O método trocarPneus deve exibir quanto você vai gastar, dado que um pneu custe R$150,00 (valor hipotético).
- Por fim, você deve criar dois novos atributos que considere pertinentes para automóveis e criar métodos que manipulem esses atributos.
- Um método "exibeEstado" que mostra se o carro está ligado ou desligado e a velocidade.

No método principal do sistema, deixe os seguintes comandos:

- Crie um carro, uma moto e um caminhão.
- Ligue o carro, o caminhão e a moto.
- Acelere duas vezes cada um dos três.
- Troque os pneus do caminhão.
- Exiba o estado dos três.

Programação I

UNICESUMAR


7 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

Para a resolução desta tarefa foram utilizados conhecimentos sobre a linguagem de programação Java.


Classe Automovel


package Automoveis;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Automovel {

private boolean motor = false;

private int numRodas, numPortas;

private double velocidadeAtual = 0;

private String combustivel, placa;


public String getCombustivel() {

return combustivel;

}


public void setCombustivel(String combustivel) {

this.combustivel = combustivel;

}


public String getPlaca() {

return placa;

}


public void setPlaca(String placa) {

this.placa = placa;

}

public boolean isMotor() {

return motor;

}


public void setMotor(boolean motor) {

this.motor = motor;

}


public int getNumRodas() {

return numRodas;

}


public void setNumRodas(int numRodas) {

this.numRodas = numRodas;

}


public int getNumPortas() {

return numPortas;

}


public void setNumPortas(int numPortas) {

this.numPortas = numPortas;

}


public double getVelocidadeAtual() {

return velocidadeAtual;

}


public void setVelocidadeAtual(double velocidadeAtual) {

this.velocidadeAtual = velocidadeAtual;

}

public void ligar(){

motor = true;

}

public void desligar(){

motor = false;

}

public void acelerar(){

}

public void diminuir(){

}

public void trocarPneus(){

}

public void exibeEstado(){


}

}


Classe Carro


package Automoveis;


import javax.swing.JOptionPane;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Carro extends Automovel{


@Override

public void setNumPortas(int numPortas) {

numPortas = 4;

}

@Override

public void acelerar() {

if(isMotor() == true){

if(getVelocidadeAtual() == 110){

JOptionPane.showMessageDialog(null, "Limite de velocidade do carro atingido!");

}else{

setVelocidadeAtual(getVelocidadeAtual()+10);

}

}else{

JOptionPane.showMessageDialog(null, "Carro está desligado, ligue-o antes de acelerar!");

}

}


@Override

public void diminuir() {

if(isMotor() == true){

if(getVelocidadeAtual() == 0){

JOptionPane.showMessageDialog(null, "Carro já está parado!");

}else{

setVelocidadeAtual(getVelocidadeAtual()-10);

}

}else{

JOptionPane.showMessageDialog(null, "Carro está desligado.");

}

}


@Override

public void trocarPneus() {

JOptionPane.showMessageDialog(null, "Você irá gastar R$ "+150*getNumRodas()+",00 na troca dos pneus do carro.");

}


@Override

public void exibeEstado() {

if(isMotor() == true){

JOptionPane.showMessageDialog(null, "O carro está ligado e numa velocidade de "+ getVelocidadeAtual() + " KM/H.");

}else{

JOptionPane.showMessageDialog(null, "O carro está desligado.");

}

}

}


Classe Moto


package Automoveis;


import javax.swing.JOptionPane;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Moto extends Automovel{


@Override

public void setNumPortas(int numPortas) {

numPortas = 0; //To change body of generated methods, choose Tools | Templates.

}

@Override

public void acelerar() {

if(isMotor() == true){

if(getVelocidadeAtual() == 100){

JOptionPane.showMessageDialog(null, "Limite de velocidade da moto atingido!");

}else{

setVelocidadeAtual(getVelocidadeAtual()+20); //To change body of generated methods, choose Tools | Templates.

}

}else{

JOptionPane.showMessageDialog(null, "Moto está desligada, ligue-a antes de acelerar!");

}

}


@Override

public void diminuir() {

if(isMotor() == true){

if(getVelocidadeAtual() == 0){

JOptionPane.showMessageDialog(null, "Moto já está parada!");

}else{

setVelocidadeAtual(getVelocidadeAtual()-20); //To change body of generated methods, choose Tools | Templates.

}

}else{

JOptionPane.showMessageDialog(null, "Moto está desligada.");

}

}

@Override

public void trocarPneus() {

JOptionPane.showMessageDialog(null, "Você irá gastar R$ "+150*getNumRodas()+",00 na troca dos pneus da moto.");

}

@Override

public void exibeEstado() {

if(isMotor() == true){

JOptionPane.showMessageDialog(null, "A moto está ligada e numa velocidade de "+ getVelocidadeAtual() + " KM/H.");

}else{

JOptionPane.showMessageDialog(null, "A moto está desligada.");

}

}

}


Classe Caminhao


package Automoveis;


import javax.swing.JOptionPane;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Caminhao extends Automovel{


@Override

public void setNumPortas(int numPortas) {

numPortas = 2; //To change body of generated methods, choose Tools | Templates.

}

@Override

public void acelerar() {

if(isMotor() == true){

if(getVelocidadeAtual() == 80){

JOptionPane.showMessageDialog(null, "Limite de velocidade do caminhão atingido!");

}else{

setVelocidadeAtual(getVelocidadeAtual()+5); //To change body of generated methods, choose Tools | Templates.

}

}else{

JOptionPane.showMessageDialog(null, "Caminhão está desligado, ligue-o antes de acelerar!");

}

}


@Override

public void diminuir() {

if(isMotor() == true){

if(getVelocidadeAtual() == 0){

JOptionPane.showMessageDialog(null, "Caminhão já está parado!");

}else{

setVelocidadeAtual(getVelocidadeAtual()-5); //To change body of generated methods, choose Tools | Templates.

}

}else{

JOptionPane.showMessageDialog(null, "Caminhão está desligado.");

}

}

@Override

public void trocarPneus() {

JOptionPane.showMessageDialog(null, "Você irá gastar R$ "+150*getNumRodas()+",00 na troca dos pneus do caminhão.");

}

@Override

public void exibeEstado() {

if(isMotor() == true){

JOptionPane.showMessageDialog(null, "O caminhão está ligado e numa velocidade de "+ getVelocidadeAtual() + " KM/H.");

}else{

JOptionPane.showMessageDialog(null, "O caminhão está desligado.");

}

}

}


Classe Main (principal)


package Automoveis;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Main {

public static void main (String[] args){

Carro car = new Carro();

Moto mot = new Moto();

Caminhao cam = new Caminhao();

cam.setNumRodas(6);

car.ligar();

mot.ligar();

cam.ligar();

car.acelerar();

car.acelerar();

mot.acelerar();

mot.acelerar();

cam.acelerar();

cam.acelerar();

cam.trocarPneus();

car.exibeEstado();

mot.exibeEstado();

cam.exibeEstado();

}

}


O programa funciona utilizando orientação a objetos, classes filhas (carro, moto e caminhão) herdam as características e métodos da superclasse (automovel) que são implementados de formas diferentes em cada uma delas.

Para a resolução desta tarefa foram utilizados conhecimentos sobre a linguagem de programação Java.


Classe Automovel


package Automoveis;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Automovel {

private boolean motor = false;

private int numRodas, numPortas;

private double velocidadeAtual = 0;

private String combustivel, placa;


public String getCombustivel() {

return combustivel;

}


public void setCombustivel(String combustivel) {

this.combustivel = combustivel;

}


public String getPlaca() {

return placa;

}


public void setPlaca(String placa) {

this.placa = placa;

}

public boolean isMotor() {

return motor;

}


public void setMotor(boolean motor) {

this.motor = motor;

}


public int getNumRodas() {

return numRodas;

}


public void setNumRodas(int numRodas) {

this.numRodas = numRodas;

}


public int getNumPortas() {

return numPortas;

}


public void setNumPortas(int numPortas) {

this.numPortas = numPortas;

}


public double getVelocidadeAtual() {

return velocidadeAtual;

}


public void setVelocidadeAtual(double velocidadeAtual) {

this.velocidadeAtual = velocidadeAtual;

}

public void ligar(){

motor = true;

}

public void desligar(){

motor = false;

}

public void acelerar(){

}

public void diminuir(){

}

public void trocarPneus(){

}

public void exibeEstado(){


}

}


Classe Carro


package Automoveis;


import javax.swing.JOptionPane;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Carro extends Automovel{


@Override

public void setNumPortas(int numPortas) {

numPortas = 4;

}

@Override

public void acelerar() {

if(isMotor() == true){

if(getVelocidadeAtual() == 110){

JOptionPane.showMessageDialog(null, "Limite de velocidade do carro atingido!");

}else{

setVelocidadeAtual(getVelocidadeAtual()+10);

}

}else{

JOptionPane.showMessageDialog(null, "Carro está desligado, ligue-o antes de acelerar!");

}

}


@Override

public void diminuir() {

if(isMotor() == true){

if(getVelocidadeAtual() == 0){

JOptionPane.showMessageDialog(null, "Carro já está parado!");

}else{

setVelocidadeAtual(getVelocidadeAtual()-10);

}

}else{

JOptionPane.showMessageDialog(null, "Carro está desligado.");

}

}


@Override

public void trocarPneus() {

JOptionPane.showMessageDialog(null, "Você irá gastar R$ "+150*getNumRodas()+",00 na troca dos pneus do carro.");

}


@Override

public void exibeEstado() {

if(isMotor() == true){

JOptionPane.showMessageDialog(null, "O carro está ligado e numa velocidade de "+ getVelocidadeAtual() + " KM/H.");

}else{

JOptionPane.showMessageDialog(null, "O carro está desligado.");

}

}

}


Classe Moto


package Automoveis;


import javax.swing.JOptionPane;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Moto extends Automovel{


@Override

public void setNumPortas(int numPortas) {

numPortas = 0; //To change body of generated methods, choose Tools | Templates.

}

@Override

public void acelerar() {

if(isMotor() == true){

if(getVelocidadeAtual() == 100){

JOptionPane.showMessageDialog(null, "Limite de velocidade da moto atingido!");

}else{

setVelocidadeAtual(getVelocidadeAtual()+20); //To change body of generated methods, choose Tools | Templates.

}

}else{

JOptionPane.showMessageDialog(null, "Moto está desligada, ligue-a antes de acelerar!");

}

}


@Override

public void diminuir() {

if(isMotor() == true){

if(getVelocidadeAtual() == 0){

JOptionPane.showMessageDialog(null, "Moto já está parada!");

}else{

setVelocidadeAtual(getVelocidadeAtual()-20); //To change body of generated methods, choose Tools | Templates.

}

}else{

JOptionPane.showMessageDialog(null, "Moto está desligada.");

}

}

@Override

public void trocarPneus() {

JOptionPane.showMessageDialog(null, "Você irá gastar R$ "+150*getNumRodas()+",00 na troca dos pneus da moto.");

}

@Override

public void exibeEstado() {

if(isMotor() == true){

JOptionPane.showMessageDialog(null, "A moto está ligada e numa velocidade de "+ getVelocidadeAtual() + " KM/H.");

}else{

JOptionPane.showMessageDialog(null, "A moto está desligada.");

}

}

}


Classe Caminhao


package Automoveis;


import javax.swing.JOptionPane;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Caminhao extends Automovel{


@Override

public void setNumPortas(int numPortas) {

numPortas = 2; //To change body of generated methods, choose Tools | Templates.

}

@Override

public void acelerar() {

if(isMotor() == true){

if(getVelocidadeAtual() == 80){

JOptionPane.showMessageDialog(null, "Limite de velocidade do caminhão atingido!");

}else{

setVelocidadeAtual(getVelocidadeAtual()+5); //To change body of generated methods, choose Tools | Templates.

}

}else{

JOptionPane.showMessageDialog(null, "Caminhão está desligado, ligue-o antes de acelerar!");

}

}


@Override

public void diminuir() {

if(isMotor() == true){

if(getVelocidadeAtual() == 0){

JOptionPane.showMessageDialog(null, "Caminhão já está parado!");

}else{

setVelocidadeAtual(getVelocidadeAtual()-5); //To change body of generated methods, choose Tools | Templates.

}

}else{

JOptionPane.showMessageDialog(null, "Caminhão está desligado.");

}

}

@Override

public void trocarPneus() {

JOptionPane.showMessageDialog(null, "Você irá gastar R$ "+150*getNumRodas()+",00 na troca dos pneus do caminhão.");

}

@Override

public void exibeEstado() {

if(isMotor() == true){

JOptionPane.showMessageDialog(null, "O caminhão está ligado e numa velocidade de "+ getVelocidadeAtual() + " KM/H.");

}else{

JOptionPane.showMessageDialog(null, "O caminhão está desligado.");

}

}

}


Classe Main (principal)


package Automoveis;


/**

*

* @author Victor Fernandes de Oliveira Brayner

*/

public class Main {

public static void main (String[] args){

Carro car = new Carro();

Moto mot = new Moto();

Caminhao cam = new Caminhao();

cam.setNumRodas(6);

car.ligar();

mot.ligar();

cam.ligar();

car.acelerar();

car.acelerar();

mot.acelerar();

mot.acelerar();

cam.acelerar();

cam.acelerar();

cam.trocarPneus();

car.exibeEstado();

mot.exibeEstado();

cam.exibeEstado();

}

}


O programa funciona utilizando orientação a objetos, classes filhas (carro, moto e caminhão) herdam as características e métodos da superclasse (automovel) que são implementados de formas diferentes em cada uma delas.

User badge image

Joao Andre MArtins Dias

Há mais de um mês

/**
 *
 * @author joao
 */
public class Carro extends Automovel{
    public Carro() {
        super(4, 4, 110, 10);
    }
}

/--

/**
 *
 * @author joao
 */
public class Caminhao extends Automovel {

    public Caminhao() {
        super(4, 2, 80, 5);
    }

}

//--

/**
 *
 * @author joao
 */
public class Moto extends Automovel {

    public Moto() {
        super(2, 0, 110, 20);
    }

}

User badge image

Joao Andre MArtins Dias

Há mais de um mês

Espero que ajude, resolvi o problema fazendo toda a lógica na classe automovel e atribuindo um atributo, a aceleração assim fica mais facil.

coloquei um metodo frear que faz um loop while  reduzindo a velocidade na medida da aceleração.

Na classe automovel inclui um contrutor com os parâmetro que irão variar nas diferentes classes de automovel, ai é so chamar o construtor da super classe com o (super) e pronto.

 

User badge image

Joao Andre MArtins Dias

Há mais de um mês

/**
 *
 * @author joao
 */
public class PasseiJ {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Carro carro = new Carro();
        Moto moto = new Moto();
        Caminhao caminhao = new Caminhao();
        
        caminhao.ligar();
        carro.ligar();
        moto.ligar();
        
        for(int i=0;i<2;i++){
            caminhao.acelerar();
            carro.acelerar();
            moto.acelerar();
        }
        
        caminhao.trocarPneus();
        
        caminhao.exibeEstado();
        carro.exibeEstado();
        moto.exibeEstado();
        
        caminhao.frear();
        carro.frear();
        moto.frear();
        
        caminhao.desligar();
        carro.desligar();
        moto.desligar();
        
        caminhao.exibeEstado();
        carro.exibeEstado();
        moto.exibeEstado();
        
        
    }

}

Essa pergunta já foi respondida por um dos nossos especialistas