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.

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:
beantwoord elke vraag goed;
beantwoord minstens één vraag verkeerd;
gebruik andere hoofdletters en spaties aan de buitenkant voor een goed antwoord;
dien een leeg antwoord in vóór een geldig antwoord;
bevestig dat de vraag alleen bij lege invoer wordt herhaald;
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.
Implementeer
main(plan).Als
plan_is_ready(plan)gelijk is aanFalse, druk danQuiz plan is not ready.af en geefNoneterug.Geef anders
run_quiz(plan)terug.
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.Behoud elke afgeronde functie en je persoonlijke quizgegevens.
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.