lunes, 23 de septiembre de 2024

Empresa para desarrollar software que permita cargar una encuesta

Una empresa lo contrata para realizar un software que permita cargar una encuesta. La encuesta tiene preguntas y cada pregunta contiene diferentes respuestas. A la vez algunas respuestas pueden contener preguntas. 

Por ejemplo : Tiene teléfono móvil? si la respuesta es afirmativa, se desprende la pregunta: Cual marca? y si la respuesta es negativa, no se continua preguntando sobre el tema. 

(30) Realice un diseño que permita guardar las preguntas y respuestas cargadas en un o varios archivos binarios. 

(30) Realice un procedimiento que permita responder dicha encuesta. Para este procedimiento no es necesario guardar las respuestas. 

(20) Utilizando STL realice:

una función que indique cual es o son las preguntas con más respuestas. 

una función que indique las respuestas que tienen preguntas encadenadas.  

(20) Explique porque son necesarias las clases template. ¿Cuándo las utilizaría? ¿Cuáles son sus ventajas y desventajas? 

Libre: Realice una función que guarde en un archivo de texto todas las preguntas y respuestas posibles. Para esto sobreescriba el operador << 

miércoles, 18 de septiembre de 2024

Empresa de viajes - Software que permita calcular los precios de sus viajes y el tiempo de los mismos

Una empresa de viajes lo contrata para hacer un software que permita calcular los precios de sus viajes y el tiempo de los mismos (en horas). Los viajes pueden ser : 

  1. En avión, la empresa coordina los costos de ida y de vuelta con la aerolínea disponible y el precio del viaje es este costo más un 20%. El tiempo de viaje se calcula como el tiempo de vuelo más 2 horas. 

  2. En colectivo, la empresa cobra $ 8 por kilómetro de viaje. Y el tiempo, es un dato que se ingresa. 

  3. En avión y colectivo, la empresa coordina los costos de ida y de vuelta con la aerolínea disponible y el precio del viaje es este costo más un 20% y $ 8 por kilómetro de viaje en colectivo. El tiempo de viaje se calcula como el tiempo de vuelo más 2 horas, más las horas de colectivo. 

  1. 22) Realice un diseño y realice una función que permita cargar los viajes y calcule los precios de los mismos. 

  2. 22) Realice una función que permita guardar los viajes (nombre, el tipo, sus costos(dependiendo del tipo), horas de viaje y su precio). Diseñe el o los archivos para guardar la información de forma óptima. 

  3. 20) Realice procedimiento con funciones STL que permita saber: 

    1. Los 5 viajes más baratos. 

    2. El viaje que lleva más tiempo.

    3. Los viajes que se pueden realizar en cierto tiempo.

  4. 20) Realice una estructura template que permita mantener un conjunto de tuplas clave-valor, dicha estructura debe permitir (no utilice STL) :

    1. Agregar un elemento si no existe la clave.

    2. Retornar un elemento a partir de una clave.

    3. Eliminar un elemento a partir de una clave.

  5. 16) Indique:

    1. ¿por qué los template son importantes en un lenguaje de tipado estático?

    2. ¿qué técnicas de reutilización de código conoce y como reutilizar código? ejemplifique.  


Libre: La empresa lo vuelve a contratar dado que tiene un nuevo tipo de viajes lo cuales son paquetes de viajes que están compuestos por un conjunto de viajes de cualquier tipo y el precio y el tiempo es la suma de todos los precios y los tiempos de los viajes que lo componen. Por ejemplo “tur regional”, está compuesto por el viaje “Paraná-Crespo”, “Crespo-Diamante”, “Diamante-Paraná”.  Diseñe la solución.


Empresa vitivinícola - Software que controle sus líneas de vinos

Una empresa vitivinícola lo contrata para realizar un software que controle sus líneas de vinos, las cuales son las siguientes :
  • de mesa : tiene un precio de 120 pesos por litro y está un año en barrica
  • premium: tiene un precio de 200 pesos por litro y está 2 años en barrica
  • especial: tiene un precio de 320 pesos por litro y está 2 años en barrica y 1 en botella.
La empresa guarda la información de su producción en un archivo binario, con el siguiente formato:

       nro : int
       Tipo : char //M(mesa), P (premium), E(especial)
       cantidad_litros: int
       anio_producción: int

(22) Realice el diseño que permita saber la cantidad de litros que se puede vender en un año determinado y el monto que obtendría si se venden todos los litros.

(22) Realice el procedimiento que lea el archivo binario y escriba un archivo de texto con el siguiente formato para los años 2020, 2021, 2022, 2023 :

       Año….litros…... Monto

(22) Realice funciones que permiten saber:

       Los 5 años que se produjeron más litros
       El año que se podrá vender más vino
       El año que se podrá obtener mayor monto de venta.

(18) (no utilice STL) Programe una estructura template que represente una cola. Dicha estructura debe permitir:

       agregar un elemento,
       obtener un elemento.


(16) Indique:
       ¿por qué los template son importantes en un lenguaje de tipado estático?
       ¿cómo implementa c++ el polimorfismo?

Libre: La empresa vitivinícola lo contrata nuevamente ya que formará una nueva línea de venta, dicha línea es un paquete que contiene los 3 tipos de vinos (M(mesa), P (premium) y E(especial)). Diseñe dicha solución y programe un método que permita saber cuántos paquetes se pueden vender en un año determinado.

Sofware que mantenga las dependencias de paquetes de software

 Una empresa lo contrata para diseñar un sofware que mantenga las dependencias de paquetes de software. Un paquete de software o librería puede tener dependencias de otros paquetes para funcionar por ejemplo el paquete scala, necesita el paquete jdk para funcionar. La empresa guarda la información de los paquetes y dependencias en los siguientes archivos : 


paquetes.dat

dependencias.dat

codigo : char[100]

nombre : char[100]

version: int 

codigoPaquete: char[100]

codigoPaqueteDependencia:char[100]


Note que un paquete puede depender de varios paquetes y a la vez un paquete puede ser utilizado por varios paquetes dependientes, es una relación muchos a muchos. Por ejemplo scala depende de openjdk y kotlin depende también de openjdk pero también depende del “idea”. También existen dependencias transitivas, por ejemplo el paquete intellij depende de kotlin y por ende tiene una dependencia transitiva con openjdk. 


  1. (22) Realice el diseño de clases e implemente la función que permita saber todas las dependencias de un paquete (incluyendo las transitivas), dado el código del paquete.

  2. (22) Escriba un archivo de texto que permita saber el árbol de dependencias de un paquete determinado. Para realizar esto sobreescriba el operador <<. El archivo debe llamarse igual que el código del paquete pasado por parámetro y debe tener el siguiente formato: 

nombre paquete

dependencia 1

dependencia 2

dependencia de 2  


  1. (18) Realice procedimiento con funciones STL que permita saber: 

    1. Los 5 paquetes con mayor cantidad de dependencias no transitivas.

    2. Todos los paquetes que no tienen dependencias. 

  2. (22) (no utilice STL) Programe una estructura template que represente un vector dinámico ordenado. Dicha estructura debe permitir:

    1. agregar un elemento. 

    2. eliminar un elemento por índice.

    3. imprimir todos los elementos de forma ordenada

    4. Conteste: ¿Que operador debería sobreescribir al tipo T para poder utilizar esta estructura?

  3. (16) Conteste: ¿Cuando es necesario utilizar composición y como este ayuda a reutilizar código? El polimorfismo simplifica el diseño del código, como? justifique.


Libre : La empresa lo vuelve a contratar para el diseño de una nueva entidad que es el conjunto de paquetes. Dicha entidad debe permitir instalar todos los paquetes dependientes de dicho conjunto, este tiene un codigo, nombre y versión. Diseñe la solución y modifique los archivos.  


Sistema Single sign-on

Una empresa lo contrata para programar un sistema Single sign-on. El sistema debe determinar si el usuario y password es correcta y si el usuario tiene permiso para acceder a una url determinada. 

Para ello el sistema debe leer 2 archivos: 


usuario (usuario.dat)

permisos (permisos.dat)

nombre : char(20)

pass: char(100)

tipo_usuario: char 

nombre_usuario: char(20)

url : char(150)


Existen 2 tipos de usuarios, lo cual está registrado en el campo “tipo_usuario” :

“A” administrador : puede acceder a cualquier URL

“N” normal: el usuario y la url debe estar contenido en el archivo de permisos. 


  1. (20) Realice una función que dado un nombre de usuario, un password y una url permita saber si tiene permisos o no. Además explique: ¿es necesario utilizar polimorfismo?

  2. (20) Escriba un archivo de texto que permita saber qué usuario accedió a que url con el siguiente formato: nombre de usuario -> url. Sobreescriba el operador << 

  3. (20) Realice procedimiento que permita saber: 

    1. Los 5 usuarios no administradores con más permisos. 

    2. La URL a la cual más usuarios tienen acceso. 

  4. (20) (no utilice STL) Programe una estructura template que represente un Conjunto, es decir, una estructura que no debe permitir repetidos. Dicha estructura debe permitir:

    1. agregar un elemento. 

    2. eliminar un elemento.

    3. Conteste: ¿Que operador debería sobreescribir al tipo T para poder utilizar esta estructura (es decir, que no admita repetidos)?

  5. (14) Conteste: ¿Cuando es necesario utilizar polimorfismo y como este ayuda a reutilizar código? El polimorfismo simplifica el diseño del código, como? justifique.


Libre: La empresa lo vuelve a contratar dado que quiere implementar un nuevo tipo de usuario el cual agrupe a un conjunto de usuarios, por ejemplo. Usuario de inventario el cual podrá acceder a todas las url de todos los usuarios que trabajan con el inventario. Diseñe una solución.  


martes, 17 de septiembre de 2024

Software para analizar los comentarios de sus productos

Una empresa lo contrata para analizar los comentarios de sus productos. En la pagina web de la empresa los clientes pueden opinar o dejar comentarios de los productos y esos comentarios a la vez pueden ser comentados por otros usuarios. Cada comentario tiene una valoración del producto numerico de 0 a 5.

Estos comentarios son guardados en un archivo de texto con el siguiente formato:

Nombre del Producto
        -comentario : puntaje
                --comentario del comentario : puntaje

Por ejemplo:
Notebook Lenovo
        -Muy buena : 5
        -Es muy cara : 1
                --Es la más barata si la comparas con otras marcas : 5
        -No es lo que esperaba, pero estoy satisfecho : 3

El “-” marca el nivel de comentario, por ejemplo -- indica que es el comentario del comentario.

(30) Realice y programe un diseño que permita resolver el problema.

(22) Lea el archivo de texto

(25) Realice procedimientos que permitan saber:

        El o los productos con mayor puntaje.
        El o los productos con más comentarios negativos (puntaje menor a 2)
        El o los productos con mayor cantidad total de comentarios.

(23) Guarde el resultado del punto 3 en un archivo binario.

Libre: Lo vuelven a contratar, dado que piensan cambiar el modelo y permitir que un comentario pueda contestar a varios comentarios. Diseñe una solución.

lunes, 9 de septiembre de 2024

Empresa de dictado de cursos online

Una Empresa de dictado de cursos online lo contrata para realizar un software que mantenga sus cursos. Existen 3 tipos de cursos :
  • Simples: Tienen un código (alfanumérico) , una cantidad de horas asignadas, un nombre, tema relacionado.
  • Simple con correlatividades: Igual que el anterior pero es necesario cursar cursos anteriores. Por ejemplo para cursar cálculo 2 es necesario tener aprobado calculo 1. Las horas asignadas del curso son las horas cargadas para este curso más todas las horas de los cursos correlativos.
  • Compuesto: Tienen un código (alfanumérico) , un nombre, tema relacionado y un conjunto de cursos simples que lo conforman. Por ejemplo el curso programación web, está compuesto por el curso de javascript, css, html y php. El cálculo de las horas asignadas son la suma de las horas asignadas de cada curso simple que lo conforma.
1. Realice un diseño del software y una función que permita cargar los cursos y calcule las horas asignadas de los mismos.
2. Realice una función que permita guardar los cursos en archivos. Diseñe el o los archivos para guardar la información de forma óptima.
3. Realice procedimiento con funciones STL que permita saber:
  1. Los 5 cursos que tienen menos horas asignadas.
  2. El Tema que está en la mayor cantidad de cursos.

Empresa de logistica y envios

Una empresa de logistica y envios lo contrata para hacer un sistema que calcule los montos totales abonados por los clientes, por envíos realizados. Todos los envíos tienen un código de envío (alfanumérico) y se pueden categorizar en:
  • Envíos comunes, los cuales tienen un monto fijo.
  • Envíos certificados, es un monto fijo, más un seguro por kilómetros.
  • Envios por peso, es un monto fijo más un plus por peso del paquete.
1. Realice el diseño e implementación que permita cargar los envíos y calcular el total abonado por los clientes.

2. Realice una función que muestre todos los envíos cargados y su monto con el formato: 

“código ..... monto” para esto sobreescribe el operador <<

3. Realice una lista doblemente ligada de enteros, la cual debe permitir:
  1. Saber cuántos elementos tiene.
  2. Agregar un elemento.
  3. Imprimir la lista del primero al último.
  4. Imprimir la lista del último al primero.
4. Argumente que ventajas y desventajas tiene la herencia y la composición como técnica de reutilización de código. ¿Qué ventajas tiene el encapsulamiento?

5. Indique cuales es el resultado del siguiente algoritmo para los parámetros 40, 24 y 36, 14:

int XXX(int x, int y)

{

if(y==0)

return x;

else

return XXX(y, x%y);

}

Describa qué hace la función.

Bicicletería Oro Verde

La bicicletería Oro Verde lo contrata para diseñar y desarrollar su sistema de control de precios. Dado que la bicicletería tiene un servici...