Buscar en este blog

lunes, 23 de abril de 2012

Java - POO - Ejercicio de Autos y Garage. Practica 5c


/*Desarrollar una clase Motor que:

Tenga dos atributos private de tipo int (litros de aceite) y de tipo int (CV).
Tenga un constructor con un parametro del tipo int para los CV. Los litros de aceite por defecto seran 0.
Tenga un getter para cada uno de los atributos.
Tenga un setter para los litros.
.*/

public class Motor{
private int litrosDeAceite=0;
private int CV=0;

public void CV(int dato1){
CV=dato1;
}
public int ObtenerLitrosDeAceite(){
return litrosDeAceite;
}
public int ObtenerCV(){
return CV;
}
public void AsignarListrosDeAceite(int dato1){
litrosDeAceite=dato1;
}
}




/*Desarrollar una clase llamada Coche que:

Tenga un atributo private de tipo Motor, un atributo de tipo String (Marca), otro de tipo String (modelo), y otro de tipo double con el precio acumulado con las averias.
Tenga un constructor con dos parametros de tipo String que inicialice la marca y el modelo.
Tenga un getter para cada uno de los atributos.
Un metodo acumularAveria que incrementara el importe gastado en averias.*/

public class Coche {
private Motor potencia;
private String marca;
private String modelo;
protected double $AcumuladoAverias=0.0;

public Coche(String dato1, String dato2){
marca=dato1;
modelo=dato2;
}
public Motor ObtenerPotencia(){
return potencia;
}
public String ObtenerMarca(){
return marca;
}
public String ObtenerModelo(){
return modelo;
}
public double Obtener$AcumuladoAverias(){
return $AcumuladoAverias;
}
public void AcumularAverias(){
$AcumuladoAverias=+$AcumuladoAverias;
}
}


/*

Desarrollar una clase llamada Garaje que:

Tendra tres atributos, un coche, un String con la averia asociada y el numero de coches que ha ido atendiendo.
El garaje solo podra atender a un coche en cada momento. controlar esa premisa.
Tenga un metodo aceptarCoche que recibe un parametro de tipo Coche y la averia asociada. El garaje solo podra atender a un coche en cada momento. Si ya esta atendiendo uno, que devuelva un false.
Tenga un metodo devolverCoche, que dejara al garaje en estado de aceptar un nuevo coche.*/

public class Garage extends Coche{
public Garage(String dato1, String dato2) {
super(dato1, dato2);
// TODO Auto-generated constructor stub
}
private Coche auto;
private String nombreAveria;
int NumDeCochesAtendidos=0;
private boolean AtenderCoche=true;
private boolean AceptarCoche=true;
public void AtenderCoche(Coche auto){
if(AtenderCoche==true){
AceptarCoche=true;
}
}
public void AceptarCoche(Coche auto,String nombreAveria){
if(AceptarCoche==true){
++NumDeCochesAtendidos;
$AcumuladoAverias=(Math.random()*100);
AceptarCoche=false;
AtenderCoche=false;
}
}
public void DevolverCoche(){
AceptarCoche=true;
AtenderCoche=true;
}
}


/*Desarrollar una clase Practica5c que en su metodo main:

Cree un garage.
Cree 2 coches.
El garaje ira cogiendo los coches y devolviendolos, acumulando un importe aleatorio(Math.random()) de la averia tratada.
Si la averia del coche es "aceite", incremetar en 10 los litros de aceite.
Los coches entraran al menos 2 veces en el garaje.
Mostrar la informacion de los coches al final del main*/

public class Practica5c {
public static void main(String[] args) {
Garage garage1= new Garage(null, null);
Garage garage2= new Garage(null, null);
Coche coche1=new Coche("Ford","Fiesta");
Coche coche2=new Coche("Peugeot","207");
System.out.println("Coche 1. Marca= " +coche1.ObtenerMarca()+" Modelo: "+coche1.ObtenerModelo());;
System.out.println("Coche 2. Marca= " +coche2.ObtenerMarca()+" Modelo: "+coche2.ObtenerModelo());;
garage1.AtenderCoche(coche1);
garage1.AceptarCoche(coche1, "rotura motor");
garage1.DevolverCoche();
garage1.AtenderCoche(coche2);
garage1.AceptarCoche(coche2, "pinchadura de gomas");
System.out.println("Numero de coches atendidos en Garage 1: "+garage1.NumDeCochesAtendidos);
garage1.Obtener$AcumuladoAverias();
System.out.println("Precio averias: $"+garage1.$AcumuladoAverias);
garage2.AtenderCoche(coche1);
garage2.AceptarCoche(coche1, "rotura motor");
garage2.DevolverCoche();
garage2.AtenderCoche(coche2);
garage2.AceptarCoche(coche2, "pinchadura de gomas");
garage2.DevolverCoche();
garage2.AtenderCoche(coche1);
garage2.AceptarCoche(coche1, "perdida de aceite");
garage2.DevolverCoche();
System.out.println("Numero de coches atendidos en Garage 2: "+garage1.NumDeCochesAtendidos);
garage2.Obtener$AcumuladoAverias();
System.out.println("Precio averias: $"+garage1.$AcumuladoAverias);
}

}


Salida por consola:

Coche 1. Marca= Ford Modelo: Fiesta
Coche 2. Marca= Peugeot Modelo: 207
Numero de coches atendidos en Garage 1: 2
Precio averias: $17.59549849412194
Numero de coches atendidos en Garage 2: 2
Precio averias: $17.59549849412194


1 comentario:

Entradas Relacionadas