Está en la página 1de 5

Traducido del afrikáans al español - www.onlinedoctranslator.

com

Entornos de desarrollo

Bloque 2 - Ejercicio para las Unidades 5-6


Queremos implementar una aplicación para administrar las reseñas de los usuarios para algunos negocios usando
programación orientada a objetos. Para hacer esto, vamos a crear un proyecto IntelliJ llamadoNegociosReseñas. Dentro de la
carpeta de origen, debe definir dos paquetes:

opiniones.principales : dentro de este paquete colocaremos la clase principal del sistema, llamada Principal , y un
clase adicional llamada Gestión .
opiniones.datos : dentro de este paquete agregaremos todas las clases e interfaces necesarias para administrar el
Datos de la aplicación.

1. Datos de la aplicación

Las siguientes clases deben colocarse dentro opiniones.datos paquete.

1.1. tipos de negocios

Vamos a definir una clase abstracta padre llamadaNegocio. De cada negocio, queremos almacenar su nombre y
ubicación (nombre de la ciudad). Defina un constructor parametrizado, junto con el correspondientecaptadoresysetters,
y anular elEncadenarmétodo para devolver el nombre comercial con la ubicación entre paréntesis. Por ejemplo:

Pizzería Giovanni (Londres)

A partir de esta clase padre, vamos a definir tres subtipos diferentes:

Restaurantes (en una clase llamadaRestaurante). En este caso queremos almacenar el tipo de comida (italiana,
mediterránea...) como un atributo adicional. Definir el constructor y el apropiadocaptador / colocadory anular
Encadenarmétodo para especificar que este negocio es un restaurante, junto con el tipo de comida. Por ejemplo:

Restaurante Giovanni Pizzeria (Londres) - italiano

Peluqueros (en una clase llamadaPeluquero). Necesitamos saber si este peluquero es unisex o no (un valor
booleano). Defina el constructor correspondiente ycaptador / colocadory anularEncadenarmétodo para
especificar que este negocio es una peluquería, indicando si es unisex o no. Por ejemplo:

Peluquería John & Mary (Edimburgo) - unisex

1/5
Entornos de desarrollo

Garajes (en una clase llamadaGaraje). Añadimos el precio por hora de la mano de obra en euros (número en coma
flotante) como su atributo particular, junto con el constructor ycaptador / colocador. losEncadenarse debe anular el
método para mostrar que este negocio es un garaje, junto con el precio por hora. Por ejemplo:

Garaje Carretera 66 (Liverpool) - 30 eur/h

Estas subclases deben basarse en la clase principal tanto como sea posible (constructores, métodos anulados, etc.).

1.2. Usuarios

Habrá unaUsuarioclase para almacenar información de usuarios registrados: soloaccesoyclaveson necesarios, así que defina el
constructor correspondiente ycaptadores(nosettersniEncadenarmétodo necesario aquí).

1.3. Reseñas

Finalmente, habrá unRevisarclass para almacenar las diferentes revisiones. Cada opinión debe tener un usuario asociado (un
usuario por opinión), junto con el comentario (texto) y la calificación (número entero entre 0 y 5, ambos incluidos). Defina el
constructor para especificar estos tres valores (objeto de usuario, comentario y calificación), el correspondiente captadores/
establecedoresy unEncadenarmétodo que imprime la información de la reseña de esta manera:

Inicio de sesión de usuario

Comentario

Clasificación

Por ejemplo:

juan123
Es un restaurante fantástico. La comida es muy buena y el personal es muy amable. 5/5

1.4. Asociación entre negocios y reseñas

Cada negocio tendrá una variedad de reseñas como su atributo interno. Agréguelo a la clase abstracta principal y asígnelo en el
constructor, junto con unadquiridorpara obtener esta matriz del negocio. Además, agregue un nuevo método paraNegocioclase
llamada revisiónPromedio , sin parámetros; devolverá el promedio de las revisiones
perteneciente a este negocio

losEncadenarmétodo de cada negocio ahora debe mostrar esta información adicional. Por ejemplo:

2/5
Entornos de desarrollo

Restaurante Giovanni Pizzeria (Londres) - italiano


Promedio de revisión: 4.3

2. El paquete principal

En cuanto al programa principal, su código se dividirá en dos archivos fuente:Principalclase yGestiónclase.

2.1. La clase de gestión (parte I)

Vamos a definir la mayor parte del código dentroGestiónclase (en opiniones.principales paquete). como interno
atributos de esta clase, necesitamos agregar una matriz de usuarios y una matriz de empresas. Luego, debe agregar los
siguientes métodos:

inicializar vacío () : sin parámetros ni tipo de retorno. Este método se encargará de:

Inicialice la matriz de usuarios con al menos 10 usuarios diferentes (con sus correspondientes inicios de sesión y
contraseñas)
Inicialice la matriz empresarial con al menos 2 empresas de cada tipo. Para cada negocio, debemos definir
una matriz de al menos 2 reseñas, provenientes de diferentes usuarios de la matriz anterior. No puede haber
más de una reseña del mismo usuario en el mismo negocio.

NOTA: este método NO necesita preguntar nada al usuario. Cada objeto debe definirse manualmente en el
código.

Inicio de sesión de usuario (cadena de inicio de sesión, contraseña de cadena) : buscará un usuario con el correspondiente login
y contraseña en la matriz de usuario, y devolverlo. Si ningún usuario coincide con las credenciales, devolveránulo.

2.2. la clase principal

Dentro dePrincipalclase solo necesitamos un principal método. Debe completar estos pasos

Instanciar unGestiónobjeto y llamarloinicializarmétodo


Pida al usuario que inicie sesión (repetidamente hasta que obtengamos unUsuarioobjeto). Debes usaraccesométodo de
Gestiónobjeto.
Mostrar un menú al usuario con estas opciones:
1.Mis reseñas. Mostrará todas las reseñas pertenecientes al usuario actual (de todas las empresas almacenadas
en Gestiónclase)
2.lista de negocios. Mostrará todo el negocio desde elGestiónclase ordenada por nombre alfabéticamente
3.Negocios mejor calificados. Le pedirá al usuario que ingrese un tipo de negocio (por ejemplo, 1 para restaurantes, 2
para peluquerías y 3 para garajes) y luego mostrará los 3 negocios más relevantes ordenados por calificación
promedio en orden descendente.
4.Editar mi reseña. Le pedirá al usuario que elija un negocio, y si el usuario tiene una reseña disponible para este
negocio, puede cambiar el comentario y/o la calificación de esta reseña en este negocio.

3/5
Entornos de desarrollo

5.Dejar

2.3. La clase de gestión (parte II)

Para cumplir con los requisitos del menú anterior, es posible que deba agregar algunos métodos adicionales para
Gestiónclase. Por ejemplo:

Un método void showReviews (Usuario usuario) para mostrar las reseñas pertenecientes a un usuario determinado. Puede

reciba como parámetro el objeto de usuario (o el inicio de sesión del usuario) y luego explore la matriz comercial e imprima las reseñas de

este usuario

Este método se puede utilizar desde la opción 1 del menú anterior

Un método void ordenarNegociosPorNombre () para ordenar las empresas alfabéticamente por nombre y mostrar

ellos

Este método se puede utilizar desde la opción 2 del menú anterior

Un método void sortBusinessesByRating (tipo int) para ordenar los negocios por calificación promedio en

en orden descendente, y mostrar los primeros 3 negocios de un tipo dado.

Este método se puede utilizar desde la opción 3 del menú anterior

Un método (o métodos) para ayudar al usuario a editar una reseña (opción 4 del menú anterior). Por ejemplo:

Un método empresa pública findBusiness (nombre de la cadena) para buscar una empresa por su nombre en

la gama de negocios, y devolverlo (onulosi no se ha encontrado)


Otro método Public Review findReview (usuario usuario, empresa comercial) para encontrar un

revisión de un usuario determinado en un negocio determinado y devolverlo (onulosi no se ha encontrado)

Otroestáticométodo changeReview (Revisión r, comentario de cadena, calificación int) que


actualiza el comentario y la calificación de la reseñarcon la nueva información almacenada encomentarioy clasificación

parámetros Entonces, desde la función principal, puede pedirle al usuario que escriba el nuevo comentario y calificación, y

luego llame a este método para actualizarlo.

Tenga en cuenta que debe asegurarse de que existan datos antes de intentar usarlos. Por ejemplo, si el usuario escribe un

nombre comercial que no existe en la matriz comercial, entonces no podemos continuar en esta opción y debemos regresar

al menú.

Consideraciones finales

Además de las clases y los métodos mencionados anteriormente, puede agregar tantos métodos adicionales a cada clase como
necesite (Principalla clase SÓLO debe tener laprincipalmétodo). Además, puede agregar tantas implementaciones de interfaz
(ya sea usando clases o clases anónimas) como necesite, especialmente para clasificar los negocios según diferentes criterios.

debes entregarEl conjuntoIntelliJproyecto comprimido en un solo archivo ZIP/RAR.

4/5
Entornos de desarrollo

4. Criterios de evaluación

0. Estructura del proyecto con los nombres y clases de paquetes apropiados dentro de cada paquete:0,25 puntos
1. Datos de la aplicación

padre, resumenNegocioclase, incluida la asociación conRevisarclase:1 punto Subclases de


negocios, incluida la reutilización de código:0.5 puntos Usuarioclase:0,25 puntos

Revisarclase, incluida la asociación conUsuario:1 punto

2. Paquete principal

Gestión'sinicializarmétodo:0.5 puntos
Gestión'saccesométodo:1 punto
Instanciación de gestión e inicio de sesión de usuario desdeprincipal:1 punto Mis

reseñasopción (incluyendo la definición del método apropiado):1 punto


lista de negociosopción (incluida la clasificación adecuada y la definición del método):1 punto Negocios mejor
calificadosopción (incluida la clasificación adecuada y la definición del método):1 punto
Editar mi reseñaopción (incluida la descomposición del método apropiado y el uso de unaestáticométodo en esta
sección):1 punto

3. Limpieza del código y comentarios en cada archivo fuente:0.5 puntos

5/5

También podría gustarte