Skip to content

Laboratorio del curso de Programación 2 - FING - UdelaR

Notifications You must be signed in to change notification settings

Manu-Developer/P2-Laboratorio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proyecto FINGHogar - Laboratorio de Programación 2 (FING - 2025)

🐶 Descripción general

Este repositorio integra las cuatro tareas desarrolladas en el curso de Programación 2 de la Facultad de Ingeniería (UdelaR), entorno al sistema de gestión para un refugio de perros: FINGHogar.

A lo largo del proyecto se implementan e integran múltiples estructuras de datos en C++, abarcando desde conceptos básicos de modularización hasta estructuras complejas como árboles, tablas hash y heaps.
El sistema simula operaciones sobre perros, personas, adopciones, fichas de vacunación y gestión eficiente del refugio.


🧩 Componentes por etapas

🔹 Tarea 1 – Fundamentos en C++

  • Primer modelo del refugio.
  • Manejo de memoria dinámica.
  • Introducción a TADs, new, delete, make y valgrind.

🔹 Tarea 2 – Estructuras dinámicas

  • Listas simplemente y doblemente enlazadas.
  • Uso de punteros y estructuras recursivas.
  • Árboles binarios de búsqueda (ABB).
  • Registro y gestión de adopciones.

🔹 Tarea 3 – Árboles generales y TADs auxiliares

  • Pila, cola y conjunto de perros.
  • Árbol general para fichas de vacunación.
  • Recorridos recursivos y modularización avanzada.

🔹 Tarea 4 – Estructuras eficientes

  • Tabla de dispersión abierta.
  • Cola de prioridad basada en heap binario.
  • Integración total del sistema.

⚙️ Compilación

Asegúrate de estar en un entorno Linux con g++ y make instalados.

🔧 Compilación automática (recomendada)

make

🛠️ Compilación manual (alternativa)

g++ principal.cpp src/*.cpp -o principal

🧪 Ejecución y pruebas

▶️ Ejecutar el programa

./principal

🧼 Ejecutar pruebas específicas

Ejecuta cualquiera de los siguientes tests usando:

make nombre-del-test

Ejemplos:

  • make t-fecha1-crear-imprimir-liberar
  • make t-lseAdopciones1-crear-esVacia-imprimir-liberar
  • make t-agFichaVacunacion1-crear-liberar
  • make t-tabla2-insertar-imprimir
  • make t-CP2-prioritaria-prioridad-insertar

✅ Ejecutar todos los tests públicos

make testing

⏱️ Ejecutar tests de rendimiento (sin valgrind)

make tt-CP5-tiempo

📚 Temas principales abordados

  • Programación modular en C++.
  • Manejo de memoria dinámica (new, delete, valgrind).
  • TADs: listas (LSE, LDE), árboles (ABB y general), pila, cola, conjunto.
  • Tabla hash con dispersión abierta.
  • Heap binario para colas de prioridad.
  • Recursividad y eficiencia.
  • Pruebas automatizadas y validación de memoria.

📎 Recursos útiles


👨‍🏫 Créditos

Curso: Programación 2
Instituto de Computación — Facultad de Ingeniería — Universidad de la República

About

Laboratorio del curso de Programación 2 - FING - UdelaR

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published