Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Practica#1 - Semáforo

Laboratorio de Sistemas Adaptativos
Angel Rodolfo
Lucia Guadalupe
Adrian Vega
Lucero Itzel

  • Be the first to comment

  • Be the first to like this

Practica#1 - Semáforo

  1. 1. Laboratorio de Sistemas Adaptativos Martes – M4.M5 Angel Rodolfo Reyna Acevedo 1459652 Lucía Guadalupe Moyeda Cornejo 1145154 Adrian Vega Magaña 1497896 Lucero Itzel Ramos García 1491994
  2. 2.  El objetivo de la Practica #1 del Laboratorio de Sistemas Adaptativos consiste en un sistema que simule el funcionamiento de un cruce vehicular y que regule automáticamente el tiempo de semáforo que tiene cada calle. El sistema simula la interacción entre las 4 calles: A,B,C y D(con sus restricciones). Aleatoriamente se le agregan carros a los carriles. Y dependiendo del carril con mas carros se van asignando los tiempos y van “saliendo” los carros.
  3. 3.  Diseño del Cruce Diseño de la Solución Código
  4. 4.  El comportamiento de los carros ya ha sido definido por medio de la tabla. Aparte del comportamiento, hemos analizado la solución para ser programada en JAVA y sabemos que debemos de generar tres clases: Carro, Ciudad y Semáforo. Carro de lo único que se encargara es de cuando agregar un nuevo carro al carril y de verificar cuando puede salir un carro. Ciudad lo único que hace es la carga de los gráficos y de iniciar el hilo de semáforo. Y por último, Semáforo se encargara de asignar los tiempos y de recibir de Carros la cantidad de carros que hay en X carril. El semáforo tiene un máximo y mínimo de tiempo de la luz verde así como el de asignar el tiempo utilizando razón y proporción.
  5. 5. private static final long serialVersionUID = 1L;private ImageIcon fondo;private JPanel base;private JLabel glu;private JButton btn;  private void Cargar()  { ◦ this.setDefaultCloseOperation(EXIT_ON_CLOSE); ◦ fondo = new ImageIcon("calles.jpg"); ◦ base = new JPanel(); ◦ glu = new JLabel(fondo); ◦ glu.setBounds(0,0,550,550); ◦ base.add(glu); ◦ btn = new JButton("Activar"); ◦ btn.setBounds(200,200,30,90); ◦ base.add(btn); ◦ this.add(base); ◦ this.setVisible(true); ◦ btn.addActionListener(this); ◦ una = false;  }
  6. 6.  La GUI en este demo es bastante simple, ya que el objetivo de la practica era el buen manejo de la información de los carriles, entonces decidimos mantener la interacción con el usuario casi nula, con solo una imagen de un cruce de calles y un botón que activa o desactiva el movimiento de los carros. En este caso, la carga de la GUI se hace en la clase Ciudad, en el constructor se definen las dimensiones, en carga se instancian las clases necesarias, como JPanel, JButton, etc. Y se agregan a la interfaz para hacer visibles estos componentes. También usando un ActionListener para activar o desactivar el demo
  7. 7.  Con la creación de la tabla del comportamiento, la programación de todos los aspectos a tomar en cuenta fue mucho mas fácil. Nos limitamos a simular un comportamiento de vehículos que avanzaban derecho y otros que giraban a la derecha, este ultimo no es tan notorio, dado que arrojamos datos a la consola sobre salidas, longitudes de carriles, entradas. Hacer un comportamiento mas grafico nos pareció un valor agregado del cual no tuvimos la oportunidad de completar como lo buscábamos, pero toda la información y comportamiento sobre entradas y salidas de vehículos, así como el movimiento de las luces, fue lo mas apegado posible a lo real y a la tabla que presentamos inicialmente.
  8. 8.  Para la realización de este programa nos basamos en conocimientos adquiridos en POO y TPOO e hicimos algunas consultas al libro "Java para estudiantes" 7a ed y a la pagina www.java2s.com Las imágenes utilizadas en todo el proyecto fueron creadas por los integrantes del equipo.

×