problema con un ejercicio

Iniciado por shing18, 2 Junio 2011, 19:07 PM

0 Miembros y 1 Visitante están viendo este tema.

shing18

hola, les comento que soy nuevo en esto de la programacion orientada a objetos, recien este año empece en la universidad a ver este tipo de programacion, y en esta materia me estan enseñando mas que nada a diseñar los problemas (UML) y adicionalmente algo de programacion (Java-Like) que se corresponde con el diseño.

Tengo un problema con un ejercicio que se me planteo y quisiera saber como harian el diseño de tal:

Una estación de servicio está compuesta por varios surtidores de combustible. Los surtidores pueden ser de Gasoil, Euro Diesel, Nafta Súper, Nafta Común, o Nafta Premium.
Los surtidores conocen el precio básico, por litro, del combustible que se expende con el mismo. El precio puede ir variando con lo cual no es fijo.

Además del valor por litro cada combustible tiene un recargo por impuestos según la siguiente tabla: Combustible Recargo
Gasoil
5%
Euro Diesel
10%
Nafta Súper
7%
Nafta Común
0%
Nafta Premium
15%

Cada surtidor está conectado a un tanque el cual contiene el combustible. Cada tanque tiene una capacidad máxima y además sabe la capacidad actual del mismo. Una vez que un surtidor se conecta a ese tanque no se puede volver a cambiar. Cada tanque tiene un número de serie y dado que hay que reemplazarlos cada cierto tiempo, lo tanques tienen una fecha de puesta en funcionamiento.
a) Modele en UML el diagrama de clases
b) Implemente en JAVA-LIKE todas las clases y métodos que se piden a continuación. Como así todos los métodos necesarios que crea convenientes:
I. capacidadDisponible() // El tanque retorna la capacidad disponible. Es decir, lo que falta para que esté lleno.
II. montoACobrar(int litros) // El surtidor retorna el precio a cobrar según los litros que se pasan como parámetro. Se deben tener en cuenta los recargos.
III. capitalActual() // Es el valor retornado por la estación y se trata de la suma del contenido de todos los tanques si los recargos.
IV. tanquesConConbustibleMenorA(int cantidad) // La estación retorna una colección de tanques donde la capacidad actual es menor o igual al valor pasado como parámetro.
V. incrementarValorCombustible(int porcentaje) // La estación incrementa el valor de cada combustible según el porcentaje que se pasa como parámetro

Valkyr

¿Cuál es el problema exactamente? Si es que no tienes ni la más mínima idea de por donde empezar, yo empezaría por representar mediante clases los conceptos del problema, por ejemplo, surtidor (el tipo de un surtidor puede ser un enumerado), estación, etc...

Una vez tengas claro que clases son las que participan, analiza como se relacionan entre ellas, si algunas dependen de otras, si necesitan estar relacionadas, etc.

Por último realiza el esquema UML y posteriormente realiza la implementación, a parte de los métodos que te exigen, todos los que por el enunciado puedes deducir.

Espero que te encamine un poco.

Saludos.

ShotgunLogic

Un consejo, los sustantivos muchas veces representan una clase, y es que los profesores suele dejarlo si para que según lo vayas leyendo te des cuenta. Por lo demas es ir pensando las cosas, quizás te ayude ir dibujando alguna cosa, o ir apuntando en una hoja.

Saludos!
The clans are marching against the law, bagpipers play the tunes of war, death or glory I will find, rebellion on my mind.

sapito169

Sustantivos son clases verbos son métodos relación tiene un es composición relación es un es herencia adjetivos son interfaces o clases has una lista primero separando por grupos gramaticalmente luego analiza cada uno y has tu decisión preliminar de si es clase interface o método opcionalmente crea el diagrama uml(borrador) y luego creas tus clases en java y lo más probable es que te descuenta de que alguna de tus su pociones son falsas luego corrígelo y ya tienes tu diagrama final

En resumen sigue estos pasos separa gramaticalmente luego comprueba luego pásalo a java y finalmente comprueba

Te podemos ayudar si primero pones tu lista preliminar de lo que piensas que son clases métodos interface herencia etc luego te podemos dar nuestra opiniones y correcciones