Skip to content
Snippets Groups Projects
Commit a2739650 authored by carmuno's avatar carmuno :tennis:
Browse files

actualizacion examen de este año y +

parent aee91f88
Branches
No related tags found
No related merge requests found
File added
package ord_2020;
public class Ahorro extends TUR{
private static final double DESCUENTOENERGIA = 0.95;
private static final double DESCUENTOTRANSPORTE = 0.9;
public Ahorro(Cliente c) {
super(c);
}
public double getEnergia() {
return super.getEnergia() * DESCUENTOENERGIA;
}
public double getTransporte() {
return super.getTransporte() * DESCUENTOTRANSPORTE;
}
}
package ord_2020;
public interface Cliente {
public String getNombre();
}
package ord_2020;
import java.util.ArrayList;
public class ColaDoble<E extends Cliente> {
private ArrayList<E> izquierda;
private ArrayList<E> derecha;
public ColaDoble() {
izquierda = new ArrayList<>();
derecha = new ArrayList<>();
}
/**
* Se a�ade un elemento a una cola
*
* @param e Elemento que se a�ade.
*/
public void esperar(E e) {
if (izquierda.size() <= derecha.size())
izquierda.add(e);
else
derecha.add(e);
}
/**
* Comprueba si la cola izquieda est� vac�a.
*
* @return TRUE si la cola izquierda est� vac�a, FALSE si no lo est�
*/
public boolean vaciaIzquierda() {
return izquierda.isEmpty();
}
/**
* Comprueba si la cola dercha est� vac�a.
*
* @return TRUE si la cola derecha est� vac�a, FALSE si no lo est�
*/
public boolean vaciaDerecha() {
return derecha.isEmpty();
}
/**
* Devuelve el elemento en la primera posici�n de la cola izquierda
*
* @return elemento en la primera posici�n de la cola izquierda
*/
public E getIzquierda() {
return izquierda.get(0);
}
/**
* Devuelve el elemento en la primer posici�n de la cola derecha
*
* @return elemento en la primera posici�n de la cola derecha.
*/
public E getDerecha() {
return derecha.get(0);
}
/**
* Extrae el primer elemento de la cola izquierda
*
* @throws IllegalArgumentException si ocurre que {@code !vaciaIzquierda()}
*/
public void sacarIzquierda() {
if (!vaciaIzquierda())
throw new IllegalArgumentException();
else
izquierda.remove(0);
}
/**
* Extraer el primer elemento de la cola derecha
*/
public void sacarDerecha() {
if (!vaciaDerecha())
throw new IllegalArgumentException();
else
derecha.remove(0);
}
}
package ord_2020;
import java.util.ArrayList;
public class ColaDoble2 <E extends Cliente> {
private ArrayList<E> izquierda;
private ArrayList <E> derecha;
public ColaDoble2() {
izquierda = new ArrayList<E>();
derecha = new ArrayList<E>();
}
public void esperar(E cliente) {
if(!(derecha.size() < izquierda.size())) {
izquierda.add(cliente);
}
if(derecha.size() < izquierda.size()) {
derecha.add(cliente);
}
if(derecha.size() == izquierda.size()) {
izquierda.add(cliente);
}
}
/*
* Dice el cliente siguiente posicionado en la cola de la derecha, no lo elimina
* ni nada, solo dice quein es, pq si lo elimina,(cambia el estado), y además devulve algo,
* viola el principio ese.
* @return E devulve el cliente que va a ser atendido el sigueinte en la cola de la derecha.
*/
public E atenderderecha() {
return derecha.get(0);
}
/*
* Dice el cliete siguinete posicionado en la cola de la izquierda, y por la misma razon que antes,
* dice qeuin es pero no cambia el estado, pq para eso ya hay otro metodo.
* @return E devulve el cliente que va a ser atendido el sigueinte en la cola de la derecha.
*/
public E atenderizquierda() {
return izquierda.get(0);
}
/*
* En este metodo ya no atiendes a un cliente, si no que le sacas de la lista y po tanto modificas el estado de
* la lista, y no devulves nada para cumplir el principio ese.
*
* @throw IllegalArgumentException si la cola esta vacia
*/
public void sacarizquierda() {
if(vacia_izquierda()) {
throw new IllegalArgumentException();
}
else {
izquierda.remove(0);
}
}
/*
* En este metodo ya no atiendes a un cliente, si no que le sacas de la lista y po tanto modificas el estado de
* la lista, y no devulves nada para cumplir el principio ese.
*
* @throw IllegalArgumentException si la cola esta vacia
*/
public void sacarderecha() {
if(vacia_derecha()) {
throw new IllegalArgumentException();
}
derecha.remove(0);
}
public boolean vacia_derecha() {
return derecha.isEmpty();
}
public boolean vacia_izquierda() {
return izquierda.isEmpty();
}
}
package ord_2020;
public class Constante extends TUR{
private double precioEnergia;
public Constante(Cliente c, double precioEnergia) {
super(c);
setEnergia(precioEnergia);
}
public void setEnergia(double precioEnergia) {
if(precioEnergia <= 0)
throw new IllegalArgumentException();
else
this.precioEnergia = precioEnergia;
}
@Override
public double getPeaje() {
return 0;
}
@Override
public double getEnergia() {
return precioEnergia;
}
}
package ejercicio3;
import ejercicio1.*;
import ord_2020.Cliente;
public class Plana extends TUR{
private static final double DESCUENTOIMPORTE = 0.85;
private double precioTransporte;
public Plana(Cliente c, double precioTransporte) {
super(c);
setTransporte(precioTransporte);
}
public void setTransporte(double precioTransporte) {
if(precioTransporte <= 0)
throw new IllegalArgumentException();
else
this.precioTransporte = precioTransporte;
}
@Override
public double getTransporte() {
return precioTransporte;
}
@Override
public double getImporte() {
return super.getImporte() * DESCUENTOIMPORTE;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment