Programeer opdrachtenOpdracht : opdr1_snoepautomaat.txt

Terug naar de opdrachten lijst
Opdracht 1, De snoep automaat
30 Dec 2004

Iedereen kent wel die grote snoepautomaten die je op stations en in winkel centra aantreft.
Zo'n automaat accepteerd de meeste euro muntstukken en waneer je betaald hebt
kun je middels het invoeren van een nummer een zakje snoep uit de automaat kiezen.
Daar gaat deze opdracht ook over.

Onze snoep automaat heeft het volgende te bieden.
1 - rolletje drop 0.75
2 - zakje katjesdrop 1.25
3 - zakje engelse drop 1.50
4 - rolletje pepermunt 0.75
5 - reep chocolade 1.00

Waneer de automaat wordt bijgevuld zijn er van elk produkt 10 op voorraad.

Er kan betaald worden met 0.05, 0.10 0.20 0.50 1.00 en 2.00 Euro stukken.
De automaat wisselt het teveel betaalde bedrag terug.
Om dit mogelijk te maken zitten er in de machiene 6 buizen waarin de verschillende muntstukken zitten.
Het geld dat betaald word komt automatisch in de juiste buis terecht en kan dus weer gebruikt worden om te wisselen.

Echter de automaat weet niet precies hoeveel geld er in elke buis zit.
Er is enkel een sensor die aangeeft dat er minder dan 5 muntstukken in de buis zitten.
Ook is er een sensor die aangeeft dat er meer dan 10 muntstukken in de buis zitten.

Waneer de automaat wordt bijgevuld, wordt er voor gezorgd dat er ten minste
15 munten van elke soort in de automaat zitten.


De opdracht.
Bedenk een strategie om de automaat slim en efficient te laten werken.
Als je b.v. 10 cent moet terug geven en je hebt daarvan nog maar 5 muntjes, kun je wellicht ook 2 van 5 cent terug geven.

Maak nu een programma dat de werking van de automaat simuleert.
Er moet dus een gedeelte zijn dan de hoeveelheid munten in de buizen voorsteld
In dit gedeelte moeten ook de sensors zitten.
Er moet een gedeelte zijn dat de snoepvoorraad bijhoudt,
en er moet natuurlijk het gedeelte zijn dan de automaat laat werken.

Bedenk dat er eerst geld moet worden ingevoerd voordat er gekozen kan worden.
Waneer je snoep keuze 0 maakt dan krijg je het geld weer terug.

Houd rekening met onverwachte situaties, bedenk een oplossing voor problemen
en leg uit waarom je voor die oplossing kiest.
Wat doe je b.v. waneer het belangrijkste wissel geld bijna op is,
wat doe je als een klant 5.00 euro inwerpt omdat hij twee zakjes snoep wil hebben ?

Ik ben benieuwd naar de bijdragen !