Loading...

Manual Técnico - Sistema de Gestión de Biblioteca

Este documento describe la estructura, funcionamiento y ejemplos de uso del código fuente para el sistema de gestión de préstamos de materiales bibliográficos.

Estructura de Clases

1. Clase base: MaterialBiblioteca

Representa un material genérico en la biblioteca.

1
2
3
4
5
6
7
8
9
10
11
12
class MaterialBiblioteca(ABC):
def __init__(self, titulo, autor):
self.__id = self.setId() # Código único
self.__titulo = titulo
self.__autor = autor
self.__estado = "Disponible"
self.__diasPrestado = 0

def setId(self):
caracteres = string.ascii_letters + string.digits
return ''.join(random.choices(caracteres, k=8))
# ...

Principales métodos:

  • prestarMaterial(dias) (abstracto)
  • devolverMaterial() (abstracto)
  • MostrarInformacion() (abstracto)
  • Métodos getter/setter para atributos.

2. Clases derivadas

Libro Físico

1
2
3
4
5
6
7
8
class LibroFisico(MaterialBiblioteca):
def __init__(self, titulo, autor, NoEjemplar):
super().__init__(titulo, autor)
self.__noEjemplar = NoEjemplar

def dias_max(self):
return 7
# Métodos sobreescritos de préstamo, devolución e información.

Libro Digital

1
2
3
4
5
6
7
8
class LibroDigital(MaterialBiblioteca):
def __init__(self, titulo, autor, size):
super().__init__(titulo, autor)
self.__size = size

def dias_max(self):
return 3
# Métodos sobreescritos de préstamo, devolución e información.

3. Estructuras de datos

Lista Enlazada de Materiales

1
2
3
4
class Nodo:
def __init__(self, libro):
self.libro = libro
self.siguiente = None
1
2
3
4
class listaMaterial:
def agregarMaterial(self, material):
nuevo_nodo = Nodo(material)
# Agrega al final de la lista enlazada.

Ejemplo de registro de un libro físico

1
2
3
biblioteca = Biblioteca()
libro = LibroFisico("Cien Años de Soledad", "Gabriel García Márquez", 1)
biblioteca.lista.agregarMaterial(libro)

Ejemplo de préstamo y devolución

1
2
libro.prestarMaterial(5)  # Presta por 5 días (Libro Físico)
libro.devolverMaterial()
1
2
3
4
5
def mostrar_menu(self):
print("1. Registrar nuevo material")
print("2. Gestionar materiales")
print("3. Listar todos los materiales")
print("4. Salir")

Notas de diseño

  • Las clases hijas implementan los métodos abstractos de la clase base.
  • El código único de cada material se genera automáticamente.
  • El estado de cada material cambia según se preste o se devuelva.

Recomendaciones

  • Mantener separados los archivos según funcionalidad.
  • Validar correctamente entradas de usuario, especialmente en el menú y registro de materiales.

avatar
Mynor Cifuentes
Mynor's personal blog
Follow Me
Announcement
Todo el código fuente compartido en este blog se encuentra bajo la licencia MIT. Puedes usar, modificar y distribuir el código para cualquier propósito, siempre y cuando incluyas la nota de copyright y la licencia original.