SO10 - Tratamientos Secuenciales II

Anuncio
FUNDAMENTOS DE PROGRAMACIÓN
Curso: 2010/11
PRÁCTICA 10: TRATAMIENTOS SECUENCIALES II
Versión: 1.0.0
SOLUCIONES
Ejercicio 1
TestVuelos:
mostrar("El primer vuelo (en orden de aparición) con destino a París");
mostrar(Vuelos.primeroDestino1(vuelos, "Paris"));
Vuelos:
public static Vuelo primeroDestino1(List<Vuelo> vuelos, String dst) {
Vuelo vPrimero=null;
for (Vuelo v:vuelos) {
if (v.getDestino().equals(dst)) {
vPrimero=v;
break;
}
}
return vPrimero;
}
Ejercicio 2
TestVuelos:
mostrar("\nEl primer vuelo (en orden cronológico) con destino a París");
mostrar(Vuelos.primeroDestino2(vuelos, "Paris"));
Vuelos:
public static Vuelo primeroDestino2(List<Vuelo> vuelos, String dst) {
Vuelo vPrimero=null;
for (Vuelo v:vuelos) {
if (v.getDestino().equals(dst)) {
if (vPrimero==null)
vPrimero=v;
else if (v.getFecha().compareTo(vPrimero.getFecha())<0) {
vPrimero=v;
}
}
}
return vPrimero;
}
TestVuelos:
mostrar("\n¿Cuánto vale la suma de las recaudaciones de todos los vuelos
que están completos?");
mostrar(Vuelos.recaudacionCompletos(vuelos));
Vuelos:
public static Double recaudacionCompletos(List<Vuelo> vuelos) {
Double rec=0.0;
for (Vuelo v:vuelos) {
if (v.getNumPasajeros().equals(v.getNumPlazas())) {
rec+=v.getPrecio()*v.getNumPasajeros();
}
Práctica 10: Tratamientos secuenciales II
}
return rec;
}
TestVuelos:
mostrar("\nConstruye un List con los vuelos con destino Madrid");
mostrar(Vuelos.seleccionaDestino(vuelos,"Madrid"));
Vuelos:
public static List<Vuelo> seleccionaDestino(List<Vuelo> vuelos,String dst)
{
List<Vuelo>l=new ArrayList<Vuelo>();
for (Vuelo v:vuelos) {
if (v.getDestino().equals(dst)) {
l.add(v);
}
}
return l;
}
TestVuelos:
mostrar("\n¿Cuál es el vuelo con destino París con más pasajeros?");
mostrar(Vuelos.masPasajerosDestino(vuelos,"Paris"));
Vuelos:
public static Vuelo masPasajerosDestino(List<Vuelo> vuelos, String dst) {
Vuelo max=null;
for (Vuelo v:vuelos) {
if (v.getDestino().equals(dst)) {
if (max==null)
max=v;
else
if(v.getNumPasajeros().compareTo(max.getNumPasajeros())>0
) {
max=v;
}
}
}
return max;
}
TestVuelos:
mostrar("\n¿Cuál es el vuelo más barato de todos?");
mostrar(Vuelos.masBarato(vuelos));
Vuelos:
public static Vuelo masBarato(List<Vuelo> vuelos) {
Vuelo minVuelo=null;
for (Vuelo v:vuelos) {
if (minVuelo==null)
minVuelo=v;
else if (v.getPrecio().compareTo(minVuelo.getPrecio())<0) {
minVuelo=v;
}
}
return minVuelo;
2
Práctica 10: Tratamientos secuenciales II
}
TestVuelos:
mostrar("\n¿Cuántos vuelos hay a Bilbao que estén completos?");
Integer n=Vuelos.completosDestino(vuelos,"Bilbao");
mostrar("hay "+n+" vuelos completos con destino a Bilbao");
Vuelos:
public static Integer completosDestino(List<Vuelo> vuelos, String dst) {
Integer n=0;
for (Vuelo v:vuelos) {
if (v.getDestino().equals(dst) &&
v.getNumPasajeros().equals(v.getNumPlazas())) {
n++;
}
}
return n;
}
TestVuelos:
mostrar("\n¿Cuál es la recaudación de los vuelos a París?");
mostrar(Vuelos.recaudacionDestino(vuelos,"Paris"));
Vuelos:
public static Double recaudacionDestino(List<Vuelo> vuelos, String dst) {
Double rec=0.0;
for (Vuelo v:vuelos) {
if (v.getDestino().equals(dst)) {
rec+=v.getPrecio()*v.getNumPasajeros();
}
}
return rec;
}
TestVuelos:
mostrar("\n¿Hay algún vuelo a Londres?");
if(Vuelos.hayVuelo(vuelos,"Londres"))
mostrar("sí hay vuelo a Londres");
else
mostrar("no hay vuelo a Londres");
Vuelos:
public static boolean hayVuelo(List<Vuelo>vuelos, String nom) {
Boolean hay=false;
for (Vuelo v:vuelos) {
hay = hay || v.getDestino().equals(nom);
if (hay)
break;
}
return hay;
}
TestVuelos:
mostrar("\n¿Hay algún vuelo a Madrid con plazas libres?");
if(Vuelos.hayVueloPlazasLibres(vuelos,"Londres"))
3
Práctica 10: Tratamientos secuenciales II
mostrar("sí hay vuelo a Madrid con plazas libres");
else
mostrar("no hay vuelo a Madrid con plazas libres");
Vuelos:
public static boolean hayVueloPlazasLibres(List<Vuelo>vuelos, String nom) {
Boolean hay=false;
for (Vuelo v:vuelos) {
hay = hay || (v.getDestino().equals(nom) && hayPlazas(v));
if (hay)
break;
}
return hay;
}
private static boolean hayPlazas(Vuelo v) {
return v.getNumPlazas().compareTo(v.getNumPasajeros())>0;
}
4
Descargar