SlideShare una empresa de Scribd logo
1 de 16
Ejercicio del Elevador
Descripción
   Se quiere desarrollar una aplicación 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 botón 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 algún mensaje, que las puertas se están 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 automáticamente cierra las puertas, iniciando por la
    del elevador, y después 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
    después solicitar el piso al que se quiere ir.
   Se deberá validar que el número de piso indicado no sobrepase los límites, es decir,
    que no sea menor a 0, el cual indicará la planta baja, ni mayor al total del número de
    pisos del edificio.
Identificación de objetos o clases

                potenciales
    Se quiere desarrollar una aplicación 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 botón
    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 algún mensaje, que las puertas se están 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 automáticamente cierra las puertas, iniciando por la
    del elevador, y después 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
    después solicitar el piso al que se quiere ir.
   Se deberá validar que el número de piso indicado no sobrepase los límites, es decir,
    que no sea menor a 0, el cual indicará la planta baja, ni mayor al total del número de
    pisos del edificio.
Identificación de objetos o clases
             potenciales
 Elevador
 Edificio de n pisos
 Conducto del elevador
 Mecanismos de piso
  
      Botón
     Luz
     Puerta
 Puerta del elevador
Identificación de objetos o clases
            potenciales
          Edificio          parte de       ConductoElevador
         pisos : Piso



         parte de
            Piso          controlado por

                                                                 Elevador
          parte de                                  parte de

      MecanismoPiso              Panel de control
                                                                 parte de

                                                               PuertaElevador
      parte de       parte de   parte de


    PuertaPiso          BotonPiso           LuzPiso




                                       Puerta
Identificación de operaciones
   Se quiere desarrollar una aplicación 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 botón
    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 algún mensaje, que las puertas se
    están 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
    automáticamente cierra las puertas, iniciando por la del elevador, y después 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 después solicitar el piso al que se quiere ir.
   Se deberá validar que el número de piso indicado no sobrepase los límites, es
    decir, que no sea menor a 0, el cual indicará la planta baja, ni mayor al total del
    número de pisos del edificio.
Identificando operaciones

                Puerta
     abierta : Boolean
     nombre : String

     abrir()
     cerrar()
     estaAbierta() : Boolean
     estaCerrada() : Boolean
     setNombre(nombre : String)
     getNombre() : String
Pasando del diseño al código
/**
 * @(#)Puerta.java
 * Clase que simula una puerta en la simulación del elevador
                                                             El nombre del archivo y
 *
 * @author Oscar M. Rodríguez
                                                                   el de la case
                                                              Inicio del programa:
 * @version 1.00 2007/2/19                                Comentariosser iguales
                                                                deben de descripción
 */                                                          Declaración de la clase
public class Puerta {                                                  Puerta
    protected final boolean ABIERTA = true;
    protected final boolean CERRADA = false;                  Inicio del programa:
    protected String nombre = "";
                                                          Comentarios de descripción
    protected boolean abierta;
    protected final int espera = 200;


   Se debe buscar que los atributos de una clase,
      sólo sean accesibles dentro de la clase.
          (Ocultamiento de la información)
Pasando del diseño al código
public Puerta() {
         abierta = CERRADA;
 }

 public Puerta(boolean opcion){
         if (opcion == ABIERTA){
                    abierta = ABIERTA;
         } else abierta = CERRADA;
 }
                                                 Constructores
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);
 }
Pasando del diseño al código
public void setNombre(String nombre){
           this.nombre = nombre;
  }                                              Operaciones de acceso a las
                                             propiedades o atributos de una clase
public String getNombre(){
          return nombre;
  }

public boolean estaAbierta(){
         return (abierta);
 }                                           Operaciones para acceder al estado
                                                        de la puerta
public boolean estaCerrada(){
         return (!abierta);
 }

public void esperar(int espera){
           try{                              Operación para generar un retardo
                     Thread.sleep(espera);   para simular el tiempo que tarda la
           } catch (Exception ex){                puerta en abrir o cerrar.
                     ex.printStackTrace();
           }
  }
Pasando del diseño al código
public void abrir(){
           System.out.println("Abriendo puerta "+nombre);
           int j = 10;
           while (j > 0) {
                        String cad = "";
              for (int i = 0; i < j; i++){
                                                           Simula la apertura de la
                           cad += "*";
              }                                                     puerta
              System.out.println(cad);
              esperar(espera);
              --j;
           }
           abierta = ABIERTA;
           System.out.println("Puerta "+nombre+" abierta");
  }
Pasando del diseño al código
public void cerrar(){
           System.out.println("Cerrando puerta "+nombre);
           int j = 0;
           while (j < 10) {
                        String cad = "";
              for (int i = j; i > 0; i--){
                                                            Simula el cerrado de la
                           cad += "*";
              }                                                     puerta
              System.out.println(cad);
              esperar(espera);
              ++j;
           }
           abierta = CERRADA;
           System.out.println("Puerta "+nombre+" abierta");
  }
}
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();
  }
/**            Prueba de la puerta
    * @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();
       }
   }
}
Tarea
 Modelar todas las clases del ejercicio en
  un programa de modelado en UML,
  incluyendo atributos y métodos.
 Las clases deberán ser definidas con el
  mayor nivel de detalle posible

Más contenido relacionado

La actualidad más candente

Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUrban Skate House
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosTensor
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacionalomarzon
 
Implementación de clases
Implementación de clasesImplementación de clases
Implementación de clasesFernando Solis
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVAMichelle Torres
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udpgonsu90
 
Direccionamiento ipv4
Direccionamiento ipv4Direccionamiento ipv4
Direccionamiento ipv4Julian Hoyos
 
Direccionamiento ip
Direccionamiento ipDireccionamiento ip
Direccionamiento ipKoldo Parra
 
Fundamentos de redes: 6. Direccionamiento de la red ipv4
Fundamentos de redes: 6. Direccionamiento de la red ipv4Fundamentos de redes: 6. Direccionamiento de la red ipv4
Fundamentos de redes: 6. Direccionamiento de la red ipv4Francesc Perez
 
Informe de arreglos en PseInt
Informe de arreglos en PseInt Informe de arreglos en PseInt
Informe de arreglos en PseInt Chad Bridge
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql commandLouis Jhosimar
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeIntJerry
 
Estructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la ProgramaciónEstructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la ProgramaciónFacultad de Ciencias y Sistemas
 
Operaciones Básicas con el Sistema Hexadecimal
Operaciones Básicas con el Sistema HexadecimalOperaciones Básicas con el Sistema Hexadecimal
Operaciones Básicas con el Sistema Hexadecimalpafalconi
 

La actualidad más candente (20)

Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Problema de las 8 reinas
Problema de las 8 reinasProblema de las 8 reinas
Problema de las 8 reinas
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Implementación de clases
Implementación de clasesImplementación de clases
Implementación de clases
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udp
 
Direccionamiento ipv4
Direccionamiento ipv4Direccionamiento ipv4
Direccionamiento ipv4
 
Direccionamiento ip
Direccionamiento ipDireccionamiento ip
Direccionamiento ip
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Fundamentos de redes: 6. Direccionamiento de la red ipv4
Fundamentos de redes: 6. Direccionamiento de la red ipv4Fundamentos de redes: 6. Direccionamiento de la red ipv4
Fundamentos de redes: 6. Direccionamiento de la red ipv4
 
Sql dataadapter
Sql dataadapterSql dataadapter
Sql dataadapter
 
Informe de arreglos en PseInt
Informe de arreglos en PseInt Informe de arreglos en PseInt
Informe de arreglos en PseInt
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql command
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeInt
 
Ejercicios resueltos con Python
Ejercicios resueltos con PythonEjercicios resueltos con Python
Ejercicios resueltos con Python
 
Estructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la ProgramaciónEstructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la Programación
 
3.1 Administración de memoria CUESTIONARIO
3.1 Administración de memoria CUESTIONARIO3.1 Administración de memoria CUESTIONARIO
3.1 Administración de memoria CUESTIONARIO
 
Operaciones Básicas con el Sistema Hexadecimal
Operaciones Básicas con el Sistema HexadecimalOperaciones Básicas con el Sistema Hexadecimal
Operaciones Básicas con el Sistema Hexadecimal
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 

Similar a Elevador (20)

Clase 14, 17/10/2007
Clase 14, 17/10/2007Clase 14, 17/10/2007
Clase 14, 17/10/2007
 
Diseño de un ascensor de 8 pisos.pptx
Diseño de un ascensor de 8 pisos.pptxDiseño de un ascensor de 8 pisos.pptx
Diseño de un ascensor de 8 pisos.pptx
 
GRAFCET [Autoguardado].pptx
GRAFCET [Autoguardado].pptxGRAFCET [Autoguardado].pptx
GRAFCET [Autoguardado].pptx
 
In 9
In 9In 9
In 9
 
Informe#20
Informe#20Informe#20
Informe#20
 
Informe#9
Informe#9Informe#9
Informe#9
 
Informe#18
Informe#18Informe#18
Informe#18
 
Und 2 tema 4
Und 2   tema 4Und 2   tema 4
Und 2 tema 4
 
Estructuras De Control
Estructuras De ControlEstructuras De Control
Estructuras De Control
 
P R A C T I C A2
P R A C T I C A2P R A C T I C A2
P R A C T I C A2
 
Progra final examen
Progra final examen Progra final examen
Progra final examen
 
Examen
Examen Examen
Examen
 
In 20
In 20In 20
In 20
 
18
1818
18
 
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedores
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedores
 
Unidad 4 tema 3
Unidad 4  tema 3Unidad 4  tema 3
Unidad 4 tema 3
 
20
2020
20
 
Examen programación
Examen programaciónExamen programación
Examen programación
 

Último

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 

Último (20)

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 

Elevador

  • 2. Descripción  Se quiere desarrollar una aplicación 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 botón 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 algún mensaje, que las puertas se están 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 automáticamente cierra las puertas, iniciando por la del elevador, y después 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 después solicitar el piso al que se quiere ir.  Se deberá validar que el número de piso indicado no sobrepase los límites, es decir, que no sea menor a 0, el cual indicará la planta baja, ni mayor al total del número de pisos del edificio.
  • 3. Identificación de objetos o clases  potenciales Se quiere desarrollar una aplicación 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 botón 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 algún mensaje, que las puertas se están 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 automáticamente cierra las puertas, iniciando por la del elevador, y después 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 después solicitar el piso al que se quiere ir.  Se deberá validar que el número de piso indicado no sobrepase los límites, es decir, que no sea menor a 0, el cual indicará la planta baja, ni mayor al total del número de pisos del edificio.
  • 4. Identificación de objetos o clases potenciales  Elevador  Edificio de n pisos  Conducto del elevador  Mecanismos de piso  Botón  Luz  Puerta  Puerta del elevador
  • 5. Identificación de objetos o clases potenciales Edificio parte de ConductoElevador pisos : Piso parte de Piso controlado por Elevador parte de parte de MecanismoPiso Panel de control parte de PuertaElevador parte de parte de parte de PuertaPiso BotonPiso LuzPiso Puerta
  • 6. Identificación de operaciones  Se quiere desarrollar una aplicación 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 botón 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 algún mensaje, que las puertas se están 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 automáticamente cierra las puertas, iniciando por la del elevador, y después 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 después solicitar el piso al que se quiere ir.  Se deberá validar que el número de piso indicado no sobrepase los límites, es decir, que no sea menor a 0, el cual indicará la planta baja, ni mayor al total del número de pisos del edificio.
  • 7. Identificando operaciones Puerta abierta : Boolean nombre : String abrir() cerrar() estaAbierta() : Boolean estaCerrada() : Boolean setNombre(nombre : String) getNombre() : String
  • 8. Pasando del diseño al código /** * @(#)Puerta.java * Clase que simula una puerta en la simulación del elevador El nombre del archivo y * * @author Oscar M. Rodríguez el de la case Inicio del programa: * @version 1.00 2007/2/19 Comentariosser iguales deben de descripción */ Declaración de la clase public class Puerta { Puerta protected final boolean ABIERTA = true; protected final boolean CERRADA = false; Inicio del programa: protected String nombre = ""; Comentarios de descripción protected boolean abierta; protected final int espera = 200; Se debe buscar que los atributos de una clase, sólo sean accesibles dentro de la clase. (Ocultamiento de la información)
  • 9. Pasando del diseño al código public Puerta() { abierta = CERRADA; } public Puerta(boolean opcion){ if (opcion == ABIERTA){ abierta = ABIERTA; } else abierta = CERRADA; } Constructores 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); }
  • 10. Pasando del diseño al código public void setNombre(String nombre){ this.nombre = nombre; } Operaciones de acceso a las propiedades o atributos de una clase public String getNombre(){ return nombre; } public boolean estaAbierta(){ return (abierta); } Operaciones para acceder al estado de la puerta public boolean estaCerrada(){ return (!abierta); } public void esperar(int espera){ try{ Operación para generar un retardo Thread.sleep(espera); para simular el tiempo que tarda la } catch (Exception ex){ puerta en abrir o cerrar. ex.printStackTrace(); } }
  • 11. Pasando del diseño al código public void abrir(){ System.out.println("Abriendo puerta "+nombre); int j = 10; while (j > 0) { String cad = ""; for (int i = 0; i < j; i++){ Simula la apertura de la cad += "*"; } puerta System.out.println(cad); esperar(espera); --j; } abierta = ABIERTA; System.out.println("Puerta "+nombre+" abierta"); }
  • 12. Pasando del diseño al código public void cerrar(){ System.out.println("Cerrando puerta "+nombre); int j = 0; while (j < 10) { String cad = ""; for (int i = j; i > 0; i--){ Simula el cerrado de la cad += "*"; } puerta System.out.println(cad); esperar(espera); ++j; } abierta = CERRADA; System.out.println("Puerta "+nombre+" abierta"); } }
  • 13. 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"); }
  • 14. 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(); }
  • 15. /** Prueba de la puerta * @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(); } } }
  • 16. Tarea  Modelar todas las clases del ejercicio en un programa de modelado en UML, incluyendo atributos y métodos.  Las clases deberán ser definidas con el mayor nivel de detalle posible