Ejercicios‎ > ‎

CaraLibro (aka Paradigma!)

CaraLibro (aka Paradigma!)


Un grupo de amigos egresados de un conocido colegio secundario han decidido juntarse para crear su propia página web: CaraLibro!, un portal en que usuarios suben información de interés general mediante posts.



La página cuenta con un sistema de valoración de los posts que permite categorizar a los usuarios. Los posts pueden ser comentados y puntuados: Al comentar un post se agrega un pequeño comentario textual y al puntuarlo se le agrega una determinada cantidad de puntos al post.

El valor de un post equivale a tantos puntos como comentarios tenga, más la suma de las puntuaciones que se le hayan hecho. Hay algunos post, llamados premium, para los cuales se considera doble el valor de las puntuaciones recibidas. El puntaje de un usuario es la suma de todos los valores de sus posts.

Un usuario que recién ingresa es de categoría “Novato” y siempre crea posts de tipo "comunes". Cuando alcanza los 100 puntos puede ser promovido a categoría “Intermedio”, en la que sigue creando solamente post comunes.

Cuando un usuario “Intermedio” tiene más de 1000 puntos y al menos un post con más de 500 puntos, puede ser promovido a la última y definitiva categoría, llamada “Experto”, lo que hace que ahora todos sus posts sean de tipo "premium". 

Al cambiar de categoría los usuarios mantienen los posts anteriores.

La funcionalidad requerida es:


  1. Poder crear un usuario y que esté listo para empezar a postear.

  1. Hacer que un usuario postee un contenido dado y obtener el post.

  1. Comentar un post

  1. Puntuar un post: especificando la cantidad de puntos que le damos.

  1. Saber el valor de un post.

  1. Saber el puntaje de un usuario

  1. Promover a un usuario a su categoría siguiente, si es posible. Ej:

diego promover

“No hace nada. Diego sigue siendo un novato”

“Daniel es de categoría intermedio, tiene 1500 puntos y su mejor post tiene 525 puntos”

daniel promover

“Ahora Daniel es experto”

  1. Saber la cantidad de posts interesantes de un usuario. Un post común es interesante si tiene al menos 20 comentarios largos. Un comentario es largo para un post si tiene más de cierta cantidad de caracteres, determinada para todos los posts por igual) y 50 puntos. Los posts premium son más exigentes para ser interesantes: para considerar largo un comentario debe ser del doble de caracteres que lo que requiere uno común.


Se debe realizar:


  • El diagrama de clases

  • La codificación de los métodos necesarios

  • Las siguientes justificaciones teóricas:

¿Dónde aparece el concepto de polimorfismo, cómo es usado y a qué objetos le resulta útil?

¿Fue de utilidad la herencia y la redefinición? ¿Para qué?


Comments