Implementación de Clases en Python para la Gestión de Heladerías

Clasificado en Otras materias

Escrito el en español con un tamaño de 2,81 KB

Estructura de Clases para la Gestión de Helados

A continuación, se presenta la implementación de las clases Helado y Heladeria utilizando el paradigma de Programación Orientada a Objetos (POO) en Python.

Clase Helado

class Helado:
    def __init__(self, nom, cod, prec):
        self.nombre = nom
        self.codigo = cod
        self.precio_por_litro = prec

    def cambiar_precio(self, precio_nuevo):
        self.precio_por_litro = precio_nuevo

Clase Heladeria

class Heladeria:
    def __init__(self):
        self.helados = []
        self.recetas = []

Gestión de Helados

  • Buscar Helado: Verifica la existencia de un helado por nombre o código.
def buscar_helado(self, codigo, nombre):
    helado_buscado = None
    for helado in self.helados:
        if helado.nombre == nombre or helado.codigo == codigo:
            helado_buscado = helado
            break
    return helado_buscado
  • Registrar Helado: Añade un nuevo helado validando que no existan duplicados.
def registrar_helado(self, codigo, nombre, precio):
    ok = False
    helado_buscado = self.buscar_helado(codigo, nombre)
    if helado_buscado is None:
        self.helados.append(Helado(nombre, codigo, precio))
        ok = True
    return ok

Modificación de Precios

def buscar_helado_nombre(self, nombre):
    helado_buscado = None
    for helado in self.helados:
        if helado.nombre == nombre:
            helado_buscado = helado
            break
    return helado_buscado

def cambiar_precio_helado(self, nom_helado, precio_nuevo):
    ok = False
    helado_buscado = self.buscar_helado_nombre(nom_helado)
    if helado_buscado is not None:
        helado_buscado.cambiar_precio(precio_nuevo)
        ok = True
    return ok

Gestión de Recetas

  • Filtrado por cantidad de ingredientes: Devuelve la cantidad de recetas con ingredientes dentro de un rango específico.
def recetas_con_cant_ingredientes(self, cant_menor, cant_mayor):
    cantidad_recetas = 0
    for receta in self.recetas:
        if cant_menor < len(receta.lista_ingredientes) < cant_mayor:
            cantidad_recetas += 1
    return cantidad_recetas
  • Búsqueda por ingrediente y helado: Cuenta las recetas que contienen un ingrediente específico para un helado determinado.
def recetas_helado_ingrediente(self, ingred, nom_helado):
    cantidad_recetas = 0
    for receta in self.recetas:
        if receta.helado.nombre == nom_helado and ingred in receta.lista_ingredientes:
            cantidad_recetas += 1
    return cantidad_recetas

Entradas relacionadas: