Opgave 1 (2022)
Volgende opgave was de vaardigheidsproefopdracht voor examen van dit vak (Programming Principles) in januari 2022
Discovid safe tracker
De discotheek "Damsing Van Camp" heeft jouw diensten ingehuurd om een Covidsafe tracker te ontwikkelen. Ze willen op deze manier potentiële uitbraken in de wachtrij detecteren voor de contactracers.
Werking
De tool wordt gebruikt door het personeel van het onthaal aan de kassa die het volgende zal doen:
Ze zal met een andere app het covid safe ticket scannen.
Fase 1: Vervolgens start ze jouw tool en voert in:
De naam van de gescande persoon.
Of deze persoon wel of niet werd toegelaten.
Fase 2: De volgende dag kan de manager van de discotheek (de wereldberoemde Vinny Timzo) de resultaten van de app raadplegen en de nodige statistieken genereren die hij dan aan de contacttracers kan doorgeven.
Fase 3: Beslissen of het programma nog eens moet uitgevoerd worden of niet.
Fase 1: data verzamelen
2 arrays worden aangemaakt van lengte 100. Vul de namenarray met de string leeg
in ieder element, zo kan je verderop makkelijker tellen.
Het programma start met een loop die zich blijft herhalen tot de gebruiker "stop" invoert als naam. In de loop gebeurt het volgende:
Een zinnetje toont
Voer de naam in van persoon x
waarbij dex
vervangen door een getal dat aangeeft de hoeveelste persoon nu komt (begint bij 1 en wordt telkens met 1 verhoogd).De gebruiker voert de naam in (indien hier
stop
wordt ingevoerd stopt de verdere werking van de loop).Deze naam wordt bewaard in een array (type
string
).Een zinnetje toont
Werd deze persoon toegelaten (j/n)?
.De gebruiker moet
j
ofn
(ja of nee) invoeren. Enkel dan wordt er naar de volgende stap gegaan, anders wordt naar stap 4 gegaan.Het antwoord (j of n) wordt in een array van het type
bool
bewaard.Een zinnetje toont
De persoon met naam X werd ingevoerd. Hij werd Y.
waarbijX
de ingevoerde naam is enY
ofweltoegelaten
ofniet toegelaten
afhankelijk van de invoer bij stap 5.
Na de loop worden de statistieken getoond zoals uitgelegd in de volgende sectie (Fase 2)
Voorbeelduitvoer fase 1a (de namen en j of n werden door gebruiker ingevoerd):
Fase 2a: data verwerken
Er wordt een methode ToonTracerRapport
aangeroepen. Aan deze methode geef je de 2 arrays mee.
Gebaseerd op het percentage niet toegelaten personen wordt een risico berekend: onder de 35% is Laag, tussen de 35% en 75% Verhoogd en boven 75% Kritiek. Het risico is gebaseerd op de verhouding tussen het aantal ingevoerde personen en degene die daarvan niet zijn toegelaten. Als er dus 10 personen in totaal werden ingevoerd en daarvan waren er 4 niet toegelaten, dan is het risico 40% (4 van de 10).
Deze grenswaarden kunnen na initialisatie niet meer aangepast worden.
Gebruik een enum type om het risico te bewaren.
Deze methode zal vervolgens een samenvatting van de ingevoerde data uitvoeren, als volgt (fictieve data):
Fase 2b: data anonimiseren
Vervolgens vraagt het programma aan de gebruiker of de gebruikersnamen anoniem moeten gemaakt worden. De gebruiker antwoordt met j of n. Bij neen wordt deze fase overgeslagen en wordt er naar fase 2c gegaan. Bij j gebeurt het volgende:
Een methode MaakAnoniem
wordt aangeroepen. Aan deze methode geef je de 2 arrays mee.
Kopieer de naam-array naar een nieuwe array van string. Vervang de naam van ieder persoon in deze nieuwe array door *****
indien deze persoon niet werd toegelaten (het aantal sterretjes is altijd even lang). De methode geeft een nieuwe array terug waarin de aangepaste namen staan.
De plekken in de array waar geen namen stonden worden niet door sterretjes vervangen én ook niet getoond.
Wanneer de methode terugkeert bewaar je het resultaat van deze methode (de naam array) in een nieuwe variabele.
Roep nu terug het ToonTracerRapport
aan met deze nieuwe array. Het resultaat zou moeten zijn:
Fase 3: afsluiten
Het programma vraagt of er moet afgesloten worden of niet (j/n). Bij neen worden alle arrays leegemaakt en wordt er terug naar fase 1 gegaan en begint alles van voor af aan.
Last updated