Schrijf een programma dat de scores van studenten bijhoudt voor meerdere vakken. Elke student kan meerdere vakken volgen, maar de vakken kunnen verschillen tussen studenten. Studenten kunnen herkansen en het hoogste cijfer telt.
Deze data moet opgeslagen worden in een dictionary met als keys de studenten en als values een andere dictionary met als keys de vakken en als values een list met all cijfers (dus ook herkansingen) voor dat vak:
De functie geeft de opgebouwede dictionary terug.
Schrijf een functie calculate_average om het gemiddelde cijfer te berekenen van een student, waarbij het hoogste cijfer van elk vak telt. Deze functie krijgt als input de naam van de student en de studentengegevens verkregen met de functie student_data. Naast het gemiddelde geeft de functie ook terug of de student geslaagd is of niet (in de vorm van een string: ‘geslaagd’/’niet geslaagd’). Een student is geslaagd bij een gemiddeld cijfer van 5.5 of hoger.
Bouw je hoofdprogramma als volgt op:
Hoeveel studenten zijn er? 2
Naam van student 1: Jan
Hoeveel vakken volgt Jan? 2
Voer het 1e vak in: Wiskunde
Voer alle cijfers (op 10) in voor Wiskunde (gescheiden door een spatie): 8
Voer het 2e vak in: Engels
Voer alle cijfers (op 10) in voor Engels (gescheiden door een spatie): 3 7
Naam van student 2: An
Hoeveel vakken volgt An? 3
Voer het 1e vak in: Biologie
Voer alle cijfers (op 10) in voor Biologie (gescheiden door een spatie): 5
Voer het 2e vak in: Wiskunde
Voer alle cijfers (op 10) in voor Wiskunde (gescheiden door een spatie): 1 3
Voer het 3e vak in: Geschiedenis
Voer alle cijfers (op 10) in voor Geschiedenis (gescheiden door een spatie): 6
Gemiddelde cijfers:
Jan heeft een gemiddelde van 7.5 en is geslaagd.
An heeft een gemiddelde van 4.7 en is niet geslaagd.
Unieke vakken in de klas: Biologie, Engels, Geschiedenis, Wiskunde
Gemiddelde cijfer van de klas: 6.1
Student met het hoogste gemiddelde: Jan
Correcties uitvoeren (Y/N): Y
Voor student: Jan
Voor welk vak van student J (Wiskunce, Engels): Wiskunde
Geef de nieuwe reeks punten in van student Jan voor vak W (gescheiden door een spatie): 9
Overzicht met nieuwe resultaten printen (Y/N): Y
Unieke vakken in de klas: B, E, G, W
Gemiddelde cijfers:
Jan heeft een gemiddelde van 8.0 en is geslaagd.
An heeft een gemiddelde van 4.7 en is niet geslaagd.
Gemiddelde cijfer van de klas: 6.3
Student met het hoogste gemiddelde: Jan
Correcties uitvoeren (Y/N): N
Bedankt voor het ingeven van de punten.