Examen con soluciones de Analisis y diseño de software

Páginas: 7 (1745 palabras) Publicado: 29 de diciembre de 2014
EVALUACION NO CONTINUA
Análisis y Diseño de Software (2013/2014)
Responde a cada apartado en hojas separadas

Apartado 1. (2 puntos). Colecciones
Dadas las siguientes clases Java, se pide completar los espacios señalados (cuando sea necesario hacerlo) para que el método
main produzca la salida indicada abajo. El propósito de la clase ConexionesAereas es almacenar, en orden alfabético, losnombres de las aerolíneas que ofrecen vuelos directos entre cada dos aeropuertos dados. Para cada trayecto directo entre dos
aeropuertos, debe evitarse almacenar por duplicado la misma información para el trayecto en sentido inverso, es decir,
intercambiando aeropuerto origen y aeropuerto destino. Además, según muestra la salida esperada del programa, la información
de todas las conexionesaéreas almacenadas se mostrará ordenada por los trayectos directos almacenados (primero por aeropuerto
de origen y después por aeropuerto de destino), y las aerolíneas que sirven cada trayecto, también han de presentarse por orden
alfabético. La clase ConexionesAereas debe también tener un método para borrar una aerolínea de un trayecto.
public enum Aeropuerto { BCN, CDG, JFK, MAD; }
publicclass TrayectoDirecto { // completar la clase (1) si es necesario
private Aeropuerto origen, destino;
public Aeropuerto getOrigen() { return origen; }
public Aeropuerto getDestino() { return destino; }
public String toString() { return "(" + origen + "" + destino + ")"; }

} // end clase TrayectoDirecto
public class ConexionesAereas { // completar la clase (2) si es necesario

} // end claseConexionesAereas
public class Ejercicio1 {
public static void main(String[] args) {

ConexionesAereas c = new ConexionesAereas();
c.add( new TrayectoDirecto( Aeropuerto.MAD, Aeropuerto.JFK ), "NeverCrash" );
c.add( new TrayectoDirecto( Aeropuerto.JFK, Aeropuerto.MAD ), "NeverCrash" );
c.add( new TrayectoDirecto( Aeropuerto.MAD, Aeropuerto.JFK ), "EspaFlai" );
c.add( new TrayectoDirecto(Aeropuerto.MAD, Aeropuerto.BCN ), "NeverCrash" );
c.add( new TrayectoDirecto( Aeropuerto.BCN, Aeropuerto.MAD ), "EspaFlai" );
c.add( new TrayectoDirecto( Aeropuerto.CDG, Aeropuerto.JFK ), "SubidonFree" );
c.add( new TrayectoDirecto( Aeropuerto.JFK, Aeropuerto.CDG ), "FlaiJai" );
c.add( new TrayectoDirecto( Aeropuerto.MAD, Aeropuerto.BCN ), "EspaFlai" );
c.add( new TrayectoDirecto(Aeropuerto.BCN, Aeropuerto.MAD ), "EspaFlai" );
if (c.remove(new TrayectoDirecto( Aeropuerto.JFK, Aeropuerto.CDG ), "FlaiJai"))
System.out.println("FlaiJai borrado");
System.out.println(c);

} // end main
} // end clase Ejercicio1

Salida esperada:
FlaiJai borrado
{(CDGJFK)=[SubidonFree], (MADBCN)=[EspaFlai, NeverCrash], (MADJFK)=[EspaFlai, NeverCrash]}

Apartado 1.

Colecciones

2 puntospackage examen.colecciones.continua; /* sombreado sólo afecta a versión de Ev. No Continua */
import java.util.*;
public enum Aeropuerto { BCN, CDG, JFK, MAD; }
public class TrayectoDirecto implements Comparable { /* para usar la clase como clave del TreeMap */
private Aeropuerto origen, destino;
public Aeropuerto getOrigen() { return origen; }
public Aeropuerto getDestino() { returndestino; }
public String toString() { return "(" + origen + "" + destino + ")"; }
public TrayectoDirecto(Aeropuerto origen, Aeropuerto destino) {
this.origen = origen;
this.destino = destino;
}
@Override

/* método IMPRESCINDIBLE ya que los objetos de clase Trayecto se usarán como clave en

un Map */
public boolean equals(Object obj) {
if (this == obj) return true;
if (! (obj instanceofTrayectoDirecto)) return false;
TrayectoDirecto t = (TrayectoDirecto) obj;

}

return getOrigen().equals(t.getOrigen()) && getDestino().equals(t.getDestino())
|| getOrigen().equals(t.getDestino()) && getDestino().equals(t.getOrigen());

@Override /* método IMPRESCINDIBLE para mantener coherencia entre la igualdad y el hashing usado
en el Map */

public int hashCode() {
return...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • analisis y diseño de software
  • Análisis y Diseño de Software
  • analisis y diseño de software
  • Guía de construcción de software, analisis y diseño
  • Análisis y diseño para un software de facturación con paquetes
  • Analisis y diseño de ingenieria de software
  • Analisis y Diseño de Software
  • Analisis Y Diseño De Proyectos De Software

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS