Descripcin
Se quiere desarrollar una aplicacin para modelar el funcionamiento de un elevador. El elevador puede estar en un edificio de n pisos, dentro de un conducto que controla los mecanismos de cada piso. Estos mecanismos consisten en un botn para solicitar al elevador que vaya al piso, y una luz que se prende para indicar si el elevador sube o baja, as como una puerta que se cierra para evitar que los usuarios entren al conducto del elevador si el elevador no se encuentra en ese piso. Cuando el usuario solicite que el elevador vaya a un determinado piso, el programa deber indicar si el elevador va bajando o subiendo (simulando la luz), y mostrar el piso por el que el elevador va pasando. Una vez llegado al piso deseado, el elevador deber abrir la puerta, tanto la del elevador como la del piso. El programa deber indicar por medio de algn mensaje, que las puertas se estn abriendo. Cada puerta tarda 5 segundos en abrirse, y se abre primero la del piso, y luego la del elevador. El elevador espera 10 segundos y automticamente cierra las puertas, iniciando por la del elevador, y despus la del piso. Una vez cerradas las puertas, el sistema preguntar al usuario a qu piso desea ir, y el programa deber indicar el movimiento del elevador tal cual se indic anteriormente. Al llegar al piso especificado, el elevador abrir las puertas, y se quedar esperando a que se le solicite ir a otro piso, indicando por medio de un mensaje que se presione el piso al que se quiere que el elevador vaya. Si el piso solicitado es el mismo en el que se encuentra el elevador, este esperar 10 segundos, y cerrar la puerta para despus solicitar el piso al que se quiere ir. Se deber validar que el nmero de piso indicado no sobrepase los lmites, es decir, que no sea menor a 0, el cual indicar la planta baja, ni mayor al total del nmero de pisos del edificio.
Se quiere desarrollar una aplicacin para modelar el funcionamiento de un elevador. El elevador puede estar en un edificio de n pisos, dentro de un conducto que controla los mecanismos de cada piso. Estos mecanismos consisten en un botn para solicitar al elevador que vaya al piso, y una luz que se prende para indicar si el elevador sube o baja, as como una puerta que se cierra para evitar que los usuarios entren al conducto del elevador si el elevador no se encuentra en ese piso. Cuando el usuario solicite que el elevador vaya a un determinado piso, el programa deber indicar si el elevador va bajando o subiendo (simulando la luz), y mostrar el piso por el que el elevador va pasando. Una vez llegado al piso deseado, el elevador deber abrir la puerta, tanto la del elevador como la del piso. El programa deber indicar por medio de algn mensaje, que las puertas se estn abriendo. Cada puerta tarda 5 segundos en abrirse, y se abre primero la del piso, y luego la del elevador. El elevador espera 10 segundos y automticamente cierra las puertas, iniciando por la del elevador, y despus la del piso. Una vez cerradas las puertas, el sistema preguntar al usuario a qu piso desea ir, y el programa deber indicar el movimiento del elevador tal cual se indic anteriormente. Al llegar al piso especificado, el elevador abrir las puertas, y se quedar esperando a que se le solicite ir a otro piso, indicando por medio de un mensaje que se presione el piso al que se quiere que el elevador vaya. Si el piso solicitado es el mismo en el que se encuentra el elevador, este esperar 10 segundos, y cerrar la puerta para despus solicitar el piso al que se quiere ir. Se deber validar que el nmero de piso indicado no sobrepase los lmites, es decir, que no sea menor a 0, el cual indicar la planta baja, ni mayor al total del nmero de pisos del edificio.
parte de
ConductoElevador
parte de Piso parte de MecanismoPiso parte de PuertaPiso Panel de control controlado por Elevador parte de PuertaElevador
parte de
parte de
parte de LuzPiso
BotonPiso
Puerta
Identificacin de operaciones
Se quiere desarrollar una aplicacin para modelar el funcionamiento de un elevador. El elevador puede estar en un edificio de n pisos, dentro de un conducto que controla los mecanismos de cada piso. Estos mecanismos consisten en un botn para solicitar al elevador que vaya al piso, y una luz que se prende para indicar si el elevador sube o baja, as como una puerta que se cierra para evitar que los usuarios entren al conducto del elevador si el elevador no se encuentra en ese piso. Cuando el usuario solicite que el elevador vaya a un determinado piso, el programa deber indicar si el elevador va bajando o subiendo (simulando la luz), y mostrar el piso por el que el elevador va pasando. Una vez llegado al piso deseado, el elevador deber abrir la puerta, tanto la del elevador como la del piso. El programa deber indicar por medio de algn mensaje, que las puertas se estn abriendo. Cada puerta tarda 5 segundos en abrirse, y se abre primero la del piso, y luego la del elevador. El elevador espera 10 segundos y automticamente cierra las puertas, iniciando por la del elevador, y despus la del piso. Una vez cerradas las puertas, el sistema preguntar al usuario a qu piso desea ir, y el programa deber indicar el movimiento del elevador tal cual se indic anteriormente. Al llegar al piso especificado, el elevador abrir las puertas, y se quedar esperando a que se le solicite ir a otro piso, indicando por medio de un mensaje que se presione el piso al que se quiere que el elevador vaya. Si el piso solicitado es el mismo en el que se encuentra el elevador, este esperar 10 segundos, y cerrar la puerta para despus solicitar el piso al que se quiere ir. Se deber validar que el nmero de piso indicado no sobrepase los lmites, es decir, que no sea menor a 0, el cual indicar la planta baja, ni mayor al total del nmero de pisos del edificio.
Identificando operaciones
Puerta
abierta : Boolean nombre : String abrir() cerrar() estaAbierta() : Boolean estaCerrada() : Boolean setNombre(nombre : String) getNombre() : String
Se debe buscar que los atributos de una clase, slo sean accesibles dentro de la clase. (Ocultamiento de la informacin)
public Puerta(boolean opcion){ if (opcion == ABIERTA){ abierta = ABIERTA; } else abierta = CERRADA; } public Puerta(String nombre) { this(); setNombre(nombre); } public Puerta(String nombre, boolean opcion) { this(opcion); setNombre(nombre); } public Puerta(boolean opcion, String nombre) { this(nombre, opcion); }
Constructores
Operacin para generar un retardo para simular el tiempo que tarda la puerta en abrir o cerrar.
Prueba de la puerta
/** * @(#)PruebaPuerta.java * Programa para probar el funcionamiento de la puerta. * * @author * @version 1.00 2007/2/19 */ Programa que ejemplifica el import java.io.*; uso de la clase Puerta. public class PruebaPuerta { static Puerta puerta; /** * Creates a new instance of <code>PruebaPuerta</code>. */ public PruebaPuerta() { puerta = new Puerta(); puerta.setNombre("Puerta del elevador"); }
Prueba de la puerta
public static void abrir(){ if (puerta.estaAbierta()) System.out.println("La puerta ya est abierta"); else puerta.abrir(); } public static void cerrar(){ if (puerta.estaCerrada()) System.out.println("La puerta ya est cerrada"); else puerta.cerrar(); }
/** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here PruebaPuerta prueba = new PruebaPuerta(); char op = ' '; while (op != 's'){ System.out.print("Oprima: \na para abrir puerta, \nc para cerrar, o + \ns para salir del programa: "); try { op = ((new BufferedReader( new InputStreamReader(System.in) )).readLine()).charAt(0); } catch (Exception ex){ ex.printStackTrace(); } if (op == 'a') abrir(); else if (op == 'c') cerrar(); } } }
Prueba de la puerta
Tarea
Modelar todas las clases del ejercicio en
un programa de modelado en UML, incluyendo atributos y mtodos. Las clases debern ser definidas con el mayor nivel de detalle posible