0%

Eindproject: bouw een quizprogramma · eindproject

Eindproject: Eindproject: rond je quizprogramma af

Je hebt het complete quizprogramma grens voor grens opgebouwd:

personalized plan
    -> plan readiness
    -> non-empty answer
    -> response feedback
    -> one complete question
    -> question loop and score
    -> final report

De laatste mijlpaal geeft het programma één officieel startpunt.

Voeg main(plan) toe

main(plan) bepaalt of het meegegeven plan veilig kan worden uitgevoerd.

Als het plan niet klaar is:

Quiz plan is not ready.

Geef daarna None terug zonder een vraag te stellen.

Geef als het plan klaar is het resultaat van run_quiz(plan) terug.

Zo blijft validatie aan de buitenste grens. De binnenste functies kunnen vertrouwen op het plan met een consistente vorm waarvoor ze zijn ontworpen.

Volg nu de afgeronde aanroepstructuur in de figuur. Begin bij het quizplan, volg de gereedheidscontrole via main(plan) en volg daarna het geslaagde pad naar de functies die je hebt gebouwd. De figuur brengt bekende onderdelen in kaart. “Data” staat voor gegevens, “Validate” voor valideren en “Ready” voor gereed. “Run quiz” betekent de quiz uitvoeren, “Ask every question” elke vraag stellen en “One question” één vraag. “Repeats” geeft herhaling aan, “Score” de score en “Final report” het eindrapport. Onderaan staat: kleine functies, één quizprogramma.

Het quizplan gaat via main en validatie naar run_quiz, dat de vragenlus, hulpfuncties voor één vraag, score en het eindrapport aanstuurt.

De twee startregels die al onderaan main.py staan, zijn ondersteunende platformcode. Ze zijn geen leerdoel of beoordeeld concept in deze cursus. Laat ze staan terwijl je aan main(plan) werkt; Python-basis II legt de modulewerking erachter uit.

Voer een bewuste eindtest uit

Voer je eigen quiz meerdere keren uit:

  1. beantwoord elke vraag goed;

  2. beantwoord minstens één vraag verkeerd;

  3. gebruik andere hoofdletters en spaties aan de buitenkant voor een goed antwoord;

  4. dien een leeg antwoord in vóór een geldig antwoord;

  5. bevestig dat de vraag alleen bij lege invoer wordt herhaald;

  6. bevestig dat de eindscore overeenkomt met de geaccepteerde antwoorden.

Lees ook je vraaggegevens opnieuw. Automatische beoordeling kan de structuur controleren, maar niet garanderen dat elk feit over je onderwerp klopt.

Bekijk het afgeronde ontwerp

Je uiteindelijke bestand scheidt:

  • gegevens aanmaken;

  • gegevens valideren;

  • antwoorden opschonen en vergelijken;

  • feedback op antwoorden;

  • invoervalidatie;

  • interactie voor één vraag;

  • doorlopen en score bijhouden;

  • het resultaat opmaken;

  • aansturing op het hoogste niveau.

Dit is niet de enige geldige architectuur. Het is een ontwerp op beginnersschaal waarvan je de grenzen kunt uitleggen, testen en wijzigen.

Je begon de cursus met het uitvoeren van een paar instructies in een browser. Je rondt het hoofdproject af met een persoonlijk interactief programma dat is samengesteld uit records, functies, beslissingen, lussen, validatie en tests. Dat is een flinke stap vooruit.

Welke eindtest doorloopt het best meerdere belangrijke paden?

Opdracht

Rond het eindproject af.

  1. Implementeer main(plan).

    • Als plan_is_ready(plan) gelijk is aan False, druk dan Quiz plan is not ready. af en geef None terug.

    • Geef anders run_quiz(plan) terug.

  2. Werk voor deze mijlpaal alleen in main(plan). Laat de twee meegeleverde startregels onderaan ongewijzigd; het is ondersteunende platformcode die niet wordt beoordeeld, geen lesstof.

  3. Behoud elke afgeronde functie en je persoonlijke quizgegevens.

  4. Doorloop vóór het indienen handmatig de eindtestchecklist met je quiz.

De afgeschermde beoordeling gebruikt een afzonderlijk plan met drie vragen. Dat bevat lege invoer vóór geldige invoer, een goed antwoord met extra spaties en hoofdletters, en één niet-leeg verkeerd antwoord.