Está en la página 1de 3

1

Tarea 4 POO
Rodrigo Arce, Universidad Iberoamericana

Abstracto​—Se describe el desarrollo de un programa en java


que simule el funcionamiento de dos vehiculos de exploracion.

Índice de términos​—java, objetos, programacion.

I. INTRODUCCIÓN III. DISENO


Los diagramas de las clases con sus respectivos atributos,

C​ on el fin de llevar a la práctica los primeros conceptos de


constructores, métodos y funciones son:

programación orientada a objetos se realizó un programa que


simula el funcionamiento de dos vehículos de exploración Vehiculo
volcánica.
Si bien el trabajo no presentó grandes dificultades fue un buen - identificador : int
inicio para adentrarse en una forma de programación que - posición : Point
permite realizar simulaciones de fenómenos cotidianos con - status : String
mayor facilidad. - velocidad : double

+ Vehículo (int identificador)


II. ANÁLISIS + etIdentificador ( ) : int
+ getPosicion ( ) : Point
Se pide desarrollar un programa con las siguientes
+ getStatus ( ) : String
caracteristicas.
+ getVelocidad ( ) : double
Objetos de tipo vehículo cuyos atributos son:
+ setPosicion (int x, int y)
● Status: describe si el vehículo se encuentra en la basa, + setStatus (String status)
investigando o explorando. + setVelocidad ( )
● Velocidad: indica los km/h a los que se mueve el + toString ( ) : String
vehículo. + analizaTemp (Cuadrante cuad) : double
● Posición: el vehículo sabe donde se ubica respecto a + cambiaPos(int x, int y, Vehículo otro) :
un mapa, este atributo es implementado con la clase boolean
Point predefinida en java.
● Identificador: diferencia a los vehículos.
El vehículo se mueve en un mapa con estos atributos:
● Mapa: es una matriz de la clase Cuadrante.
● Base 1: indica una posición de la que parte un Mapa
vehículo.
● Base 2: indica una posición de la que parte otro - base1 : Point
vehículo. - base2 : Point
- columnas : int
● Filas: atributo para evitar problemas de índice fuera
- filas : int
de rango.
- mapa : Cuadrante [ ] [ ]
● Columnas: atributo para evitar problemas de índice
fuera de rango. + Mapa (int filas, int columnas, int x1, int y1,
Finalmente la clase Cuadrante, que es la base del mapa, se int x2, int y2)
construyó como se presenta a continuación: + getBase1 ( ) : Point
● Temperatura: cada cuadrante tiene una temperatura + getBase2 ( ) : Point
única. + getCuad (int i, int j ) : Cuadrante
● Posición: nuevamente la clase predefinida Point es + toString (Vehículo v1, Vehículo v2) : String
usada como atributo.
2

El usuario puede elegir qué vehículo usar, que, como se puede


ver anteriormente, son representados por su número
Cuadrante
identificador en la impresión de la matriz.
- temperatura : double
- posicion: Point

+ Cuadrante (double temperatura, int x, int y)


+ getTemperatura ( ) : double
+ getPosicion ( ) : Point
+ setTemperatura (double temperatura)
Si se selecciona la primer opción se imprimen los datos del
+ setPosicion(int x, int y)
vehículo , cuya velocidad está impuesta de inicio con un valor
+ toString ( ) : String
de 0, asimismo indica la temperatura de la coordenada en que
se encuentra.

Tarea4

+ menuVehiculo (int op) : int


+ moverVeh (Vehiculo v1, Vehiculo v2, Mapa
mapa, int x, int y)
+ main (String[] args)

IV. PRUEBA
El programa comienza pidiendo las medidas del mapa:

Al seleccionar la segunda opcion (mover el vehículo) hay 3


Posteriormente crea una matriz de Cuadrantes con las medidas casos posibles de acción:
indicadas por el usuario y le asigna una temperatura aleatoria a 1. Coordenadas fuera de rango: aparece cuando el
cada instancia. usuario indica coordenadas mayores a la matriz
instanciada.
3

2. Otro vehículo se encuentra en esa posición: indica que Finalmente la opción Regresar a Base regresa a los vehículos a
aunque las coordenadas son válidas, el vehículo no se puede sus bases predeterminadas.
mover a dicha posición ya que esta siendo ocupada por otro
vehículo que comunica su posición para evitar colisiones.

3. Posición Actualizada: si las coordenadas son válidas y no


están ocupadas por otro vehículo la posición es actualizada y
mostrada con una nueva impresión del mapa. También se
muestran los datos de la nueva posición, velocidad diferente
de 0 y un cambio de status.

También podría gustarte