viernes, 27 de febrero de 2026

Diseño de software para analizar las conversaciones de su sistema de chat corporativo

La empresa de comunicación ChatCorp necesita que diseñes y programes un software que permita analizar las conversaciones de su sistema de chat corporativo.
El sistema actual guarda las conversaciones en archivos de texto, donde cada línea representa una afirmación o mensaje enviado por un usuario.
Algunas afirmaciones pueden generar respuestas directas, formando así hilos de conversación.

Por ejemplo, un archivo podría contener la siguiente conversación:
1. nombreUsuario1. ¿Cómo va el proyecto?
1.1.nombreUsuario2. Bien, estamos avanzando.
1.1.1.nombreUsuario1. Excelente, sigan así.
1.2.nombreUsuario3. Todavía falta terminar las pruebas.
2.nombreUsuario1. Recordá subir el informe hoy.
2.1.nombreUsuario2. Si, amo
3.nombreUsuario4. Pedimos unas pizzas?

Cada mensaje puede tener respuestas anidadas.
 
(25) Realice el diseño de la solución e implemente las clases.

(25) Realice un procedimiento que dado el nombre del archivo de texto que permita leerlo y crear los objetos.

(30) Realice los siguientes métodos utilizando STL:
Obtener el o las líneas de chat con mayor cantidad de hilos.
Obtener el usuario que generó mayor cantidad de hilos.
Obtener el usuario y la cantidad de veces que escribió en el chat.

(20) Guarde el nombre de usuario (char de 200) y la cantidad de veces que escribió en el chat en un archivo binario.
 

Libre: La empresa lo vuelve a contratar dado que desea implementar el concepto de reacción (como “👍”, “❤️”, “😂”). Estos serían implementados como un hilo más pero es necesario distinguirlos para futuros análisis. El archivo de texto va a ser así : 

1. nombreUsuario1. ¿Cómo va el proyecto?

1.1.nombreUsuario2. Bien, estamos avanzando.

1.1.1.nombreUsuario1. :D

Donde la línea 1.1.1 es una reacción 😀. Las reacciones no pueden contener sub hilos. 

Indique que debe de cambiar en el modelo para implementar dicha funcionalidad.





viernes, 13 de febrero de 2026

Empresa Game X - Diseño e implementación de Sistema de puntaje

 La empresa Game X lo contrata dado que quiere implementar un nuevo sistema de puntaje para sus jugadores. Los jugadores tienen diferentes niveles y cada nivel calcula de forma diferentes sus puntos: 

  • junior: cada logro suma 10 puntos. 

  • semi sr:  cada logro suma 5 puntos.

  • sr : cada logro suma 2 puntos y cada 10 logros tenes un punto más. 


Un jugador junior pasa a semi sr cuando logra 100 puntos y un jugador semi sr, se convierte en sr cuando llega a los 1000 puntos. 

El objetivo del sistema es calcular el puntaje de los jugadores para esto se cuenta con los siguientes archivos binarios: 


jugador.dat

logros.dat

int nro

char nombre[200]

int nro_jugador


El sistema debe leer los archivos donde jugador.dat contiene la info del jugador y en logros.dat cada vez que aparece el nro de jugador es porque se registro un logro. 


  1. (25) Realice el diseño de la solución e implemente las clases. 

  2. (25) Realice un procedimiento que permita leer los archivos. 

  3. (20) Realice un procedimiento que genere un archivo de texto con el nombre del jugador y su puntaje. Para esto sobreescriba el operador <<.

  4. (30) Realice los siguientes métodos utilizando STL: 

    1. Obtener el o los jugadores que tienen mayor cantidad de puntos

    2. Obtener la cantidad de jugadores por nivel. 

    3. Obtener el o los nombres de jugadores que se repiten.  


Libre: La empresa lo vuelve a contratar dado que necesita que los niveles no dependan de la cantidad de puntos, sino que sean asignados y guardados en el archivos. ¿Haría un cambio en el modelo de clases? ¿en los archivos?




viernes, 12 de diciembre de 2025

Diseñar e implementar sistema de descuentos

 La empresa mayorista MA lo contrata dado que quiere implementar un nuevo sistema de descuentos. El objetivo principal del sistema es que dada una nueva venta calcule el porcentaje de descuento a aplicar. 

Actualmente la empresa mayorista cuenta con los siguientes descuentos: 

  • Descuento por cantidad anual: se le indica un 1% de descuento cada 100 productos vendidos

  • Descuento por monto anual: se le indica un 20% de descuento si el cliente realizo compras por más de 10 mil pesos o 25% si realizo compras por más de 20 mil

Además la empresa cuenta con 2 archivos binarios, uno para cliente y otro para ventas: 


cliente.dat

ventaAnual.dat

int nro

char nombre[200]

char tipo //A o B 

int nro_cliente

int cantidad

double montoTotal


Los clientes pueden ser de tipo A o B, en el caso de los clientes de tipo A aplican todos los descuentos (es decir el descuento total esta dado por la suma de los descuentos) y el tipo B solo los descuentos por monto anual. 


El objetivo del sistema es que dado una nueva venta se calcule el descuento que se debe aplicar. 


Además se debe de tener en cuenta que los clientes pueden cambiar de tipo a lo largo del año. 


  1. (25) Realice el diseño de la solución e implemente las clases. 

  2. (20) Realice la funcionalidad que dada una nueva venta calcule el descuento que se debe aplicar en la clase que corresponda.

  3. (25) Realice un procedimiento que permita leer los archivos.

  4. (30) Realice las siguientes métodos utilizando STL: 

    1. Obtener el o los clientes que compraron la mayor cantidad de items. 

    2. Obtener el monto total de todas las ventas

    3. Obtener el o los nombres de clientes que se repiten.  


Libre: La empresa lo vuelve a contratar dado que necesita un nuevo tipo de cliente “C”, el cual tiene un nuevo tipo de descuento que obtiene el mayor de los descuentos (calcula los dos y obtiene el mayor). Realice el diseño que permite resolver este problema.

viernes, 28 de noviembre de 2025

Diseñar y programar un software que permita calcular el bono anual de los empleados

 La empresa Venta S.A. lo contrata para diseñar y programar un software que permita calcular el bono anual de los empleados. En la empresa hay 2 tipos de empleados: 

  • Vendedores, cobran un porcentaje de todo lo vendido en el año

  • Jefes, cobran un porcentaje de todo lo que vendieron sus empleados o personas a cargo. 

La información de los empleados se encuentra en 2 archivos binarios, que tienen el siguiente formato: 

Empleado.dat

Jefe.dat

int nro

char[200] nombre

double ventas 

double porcentaje

char tipo //V o J 

int nro_jefe

int nro_empleado


En el caso del jefe las ventas no son cargadas y no tienen importancia. 

El archivo Jefe.dat contiene la relación entre el jefe y su empleado a cargo.  

Por ejemplo, Juan y Pedro vendieron 1000 pesos en el año y tienen un porcentaje de 10% por lo tanto cobran 100 pesos de bono cada uno y su jefe Andres, tiene un porcentaje del 10 % por lo tanto cobra 200 pesos de bono. 

Los Jefes pueden tener a cargo empleados y/o jefes. De esta manera, Ana que solo es jefa de Andres y tiene un porcentaje del 10% cobra 200 también. 


  1. (30) Realice el diseño de la solución e implemente las clases. Conteste: ¿Se puede utilizar polimorfismo, cual es la ventaja o desventaja? 

  2. (25) Realice un procedimiento que permita leer los archivos.

  3. (15) Guardar en un archivo de texto todo los empleados (nro y nombre) y el monto a cobrar. Para esto sobreescriba el operador <<  

  4. (30) Realice las siguientes métodos utilizando STL: 

    1. Obtener el o los empleados que cobran la mayor cantidad.

    2. Obtener el o los jefes que tienen más empleados a cargo. 

    3. Obtener el nombre de los empleados que más se repite.  


Libre: La empresa lo vuelve a contratar dado que surgió un nuevo tipo de empleado que tiene muchas ventas y estas ventas están en un archivo binario con el siguiente formato: 

int nro_empleado

double monto_venta


Diseñe este nuevo tipo de empleado y realice el procedimiento que permita leer los datos.


lunes, 10 de noviembre de 2025

Sistema de Reservas Hoteleras

Una cadena hotelera desea contar con un sistema informático que le permita registrar y analizar las reservas que se realizan en sus establecimientos.
Los hoteles manejan tres tipos de reservas: Estándar, Premium, y Mixta.
  • En las reservas Estándar, el precio es de $15.000 por noche, y la cantidad de noches es un dato que se ingresa manualmente.
  • En las reservas Premium, el precio es de $30.000 por noche más un 10% adicional. La cantidad de noches es un dato que se ingresa manualmente.
  • En las reservas Mixtas, el precio total se obtiene sumando (noches estándar × $15.000) + (noches premium × $30.000 + 10%), y la duración total es la suma de las noches de hospedaje de ambas reservas.
Cada reserva debe almacenar la información del cliente (dni y nombre con apellido), los datos correspondientes al tipo de reserva y los valores necesarios para determinar su costo total y duración.

1 (20) - Diseñe el modelado necesario aplicando POO para representar este problema.
2 (20) - Realice una función que permita guardar las reservas en un archivo de texto con el formato:
nombre del cliente … tipo de reserva … duración total … costo final.
3 - (30) Empleando algoritmos y contenedores de la STL, implemente los siguientes procedimientos:
Determinar las 5 reservas más económicas.
Mostrar la/s reserva/s con más duración.
Mostrar las reservas cuyo costo total no supere un valor máximo ingresado por el usuario.

4 (30) - Defina y guarde la información en archivo/s binario/s.

Sistema de Reservas Hoteleras

 Una cadena hotelera desea contar con un sistema informático que le permita registrar y analizar las reservas que se realizan en sus establecimientos.

Los hoteles manejan tres tipos de reservas: Estándar, Premium, y Mixta.

  • desmarcada

    En las reservas Estándar, el precio es de $15.000 por noche, y la cantidad de noches es un dato que se ingresa manualmente.

  • desmarcada

    En las reservas Premium, el precio es de $30.000 por noche más un 10% adicional. La cantidad de noches es un dato que se ingresa manualmente.

  • desmarcada

    En las reservas Mixtas, el precio total se obtiene sumando (noches estándar × $15.000) + (noches premium × $30.000 + 10%), y la duración total es la suma de las noches de hospedaje de ambas reservas.

Cada reserva debe almacenar la información del cliente (dni y nombre con apellido), los datos correspondientes al tipo de reserva y los valores necesarios para determinar su costo total y duración.

1 (30) - Implemente una estructura template que permita mantener una colección de elementos de forma dinámica (vector dinámico) sin utilizar STL. La estructura deberá permitir: agregar elementos, remover por posición y conocer la cantidad almacenada.

2 (25) - Diseñe el modelado necesario aplicando POO para representar este problema.Puede utilizar la estructura del punto anterior.

3 (20) - Desarrolle una función que permita cargar distintas reservas, calcular los valores correspondientes según el tipo, y mostrarlas por pantalla. 

4 (15) - Realice una función que permita mostrar todas las reservas por pantalla sobrescribiendo el operador <<: 

nombre del cliente … tipo de reserva … duración total … costo final.

5 (10) - Indique brevemente:

  • ¿Por qué los templates son importantes en un lenguaje de tipado estático como C++

  • ¿Qué diferencia existe entre reutilizar código mediante herencia y mediante composición? Cuando aplicaría uno u otro?

lunes, 27 de octubre de 2025

Empresa de marketing - sistema de envio de mails a sus clientes

 Una empresa de marketing lo contrata para realizar un sistema que envíe mails a sus clientes. Los datos de los clientes se encuentran en un archivo binario con el siguiente formato: 


int id 

char[200] nombre


y los email en otro archivo con el siguiente formato: 


int id_cliente

char[200] email. 


Porque un cliente puede tener 1 o más emails. 


1. (30) Realice el diseño y programe las clases que permitan leer los datos de los archivos. 


2. (20) Realice una función que escriba un archivo de texto por email con el siguiente formato: “Hola Nombre_cliente! Bienvenido al sistema de notificaciones.”. Donde el nombre del archivo es el email.  


3. (40) Realice funciones usando stl :

  • (10) Que obtenga el o los clientes con mayor cantidad de emails 

  • (10) Que obtenga los emails que se repiten.  

  • (10) Que obtenga los clientes que no tienen mail cargado

  • (10) Realice una función que obtenga el total de email que se enviarán (utilice transform y accumulate)


4. (10) Conteste : 

  1. ¿Cuándo utilizaría un archivo de texto y/o un archivo binario? De ejemplos.

  2. ¿Qué ventajas da el uso de STL en C++? 

Diseño de software para analizar las conversaciones de su sistema de chat corporativo

La empresa de comunicación ChatCorp necesita que diseñes y programes un software que permita analizar las conversaciones de su sistema de ch...