In deze oefening moet je een voorraadbeheersysteem implementeren met behulp van stacks. Het doel is om realistische voorraadoperaties te simuleren, waarbij producten in batches worden beheerd en het Last-In-First-Out (LIFO)-principe wordt toegepast. Deze aanpak weerspiegelt scenario’s waarin de meest recent toegevoegde voorraad als eerste wordt gebruikt, zoals bij duurzame goederen.
Maak de Batch-klasse die een batch van de voorraad van een product vertegenwoordigt. Elk Batch-object moet bevatten:
De klasse bevat ook een tostring-methode str die de batch als volgt weergeeft:
Batch(quantity=[quantity], cost_per_unit=[cost_per_unit])
Maak de Product-klasse (1 punt) die een product vertegenwoordigt met een stack van voorraadbatches. Elk Product-object moet bevatten:
Deze klasse moet de volgende methoden bevatten:
De klasse bevat ook een tostring-methode str (1 punt) die het product als volgt weergeeft:
Product [product_name]: Batch(quantity=[quantity_batch1 from batch_1], cost_per_unit=[cost_per_unit from batch_1]) Batch(quantity=[quantity_batch1 from batch_2], cost_per_unit=[cost_per_unit from batch_2]) .... Batch(quantity=[quantity_batch1 from batch_n], cost_per_unit=[cost_per_unit from batch_n])