Een programma verzamelt taken in een Queue<string> en verwerkt ze daarna
in de volgorde waarin ze zijn toegevoegd (FIFO). Denk aan een printer die
opdrachten in de juiste volgorde afwerkt.
Dit is een consoleversie van een opdracht die in de cursus een Windows-programma met een timer was: per tik van de timer verdween er een taak uit de wachtrij. We laten de timer en de vensters vallen en behouden de kern: een
Queuedie taken op volgorde verwerkt.
Het hoofdprogramma met het menu is al gegeven (zie het beginbestand). Het drukt telkens het menu af, leest je keuze, en roept de juiste procedure op:
1. Voeg taak toe
2. Verwerk volgende taak
3. Verwerk alle taken
4. Stop
De taken krijgen automatisch een naam: de eerste taak heet Taak 1, de tweede
Taak 2, enzovoort. Daarom houdt het programma een teller aantalToegevoegd
bij. Jij hoeft enkel de drie procedures in te vullen. Ze werken op de wachtrij
taskQueue en die teller:
| Procedure | Wat ze doet | Uitvoer |
|---|---|---|
VoegTaakToe | Verhoogt de teller, maakt Taak <nummer> en zet die achteraan de rij (Enqueue) | <taak> toegevoegd. |
VerwerkVolgendeTaak | Verwerkt de eerstvolgende taak (Dequeue) | <taak> - Verwerkt of Geen taken om te verwerken. |
VerwerkAlleTaken | Verwerkt alle resterende taken, één voor één | elke taak als <taak> - Verwerkt, daarna Alle taken zijn verwerkt. |
Geen van deze procedures leest invoer: een taaknaam wordt automatisch aangemaakt uit de teller (
"Taak " + aantalToegevoegd).VerwerkAlleTakendruktAlle taken zijn verwerkt.af, ook als de wachtrij al leeg was.
Eén regel per keuze, telkens enkel het cijfer van de bewerking (deze oefening heeft geen extra invoer per taak).
Telkens het menu, gevolgd door de uitvoer van de gekozen bewerking.
Invoer:
1
1
2
4
Uitvoer:
1. Voeg taak toe
2. Verwerk volgende taak
3. Verwerk alle taken
4. Stop
Taak 1 toegevoegd.
1. Voeg taak toe
2. Verwerk volgende taak
3. Verwerk alle taken
4. Stop
Taak 2 toegevoegd.
1. Voeg taak toe
2. Verwerk volgende taak
3. Verwerk alle taken
4. Stop
Taak 1 - Verwerkt
1. Voeg taak toe
2. Verwerk volgende taak
3. Verwerk alle taken
4. Stop
De teller blijft tellen over alle toegevoegde taken: voeg je later nog een taak
toe, dan krijgt die Taak 3, ook al is de eerste al verwerkt.