Opdracht 28 Bsa monitor¶
Schrijf een applicatie waarbij je je behaalde cijfers in semester 1 invoert en daarna een overzicht krijgt van je studievoortgang. Zorg er voor dat de applicatie ook een voorspelling geeft of je een positief of negatief BSA zal krijgen.
Tijdens je opleiding op de Hogeschool van Amsterdam krijg je cijfers voor de vakken en projecten die je volgt. Aan het eind van jaar 1 krijgt iedere student een bindend studieadvies (BSA). Een BSA kan negatief of positief zijn. Is het BSA positief dan is het mogelijk om de opleiding te vervolgen. Bij een negatief BSA is het niet mogelijk om de opleiding te vervolgen aan de Hogeschool van Amsterdam. Een student ontvangt een negatief BSA als hij of zij aan het einde van het eerste jaar van inschrijving minder dan 50 studiepunten heeft behaald uit de propedeuse.
Ieder vak/project heeft een naam en een hoeveelheid studiepunten. Deze studiepunten ontvang je wanneer je alle bij het vak behorende toetsen (tentamen, opdrachten etc.) haalt.
De volgende tabel geeft een overzicht van de vakken en projecten die studenten in semester 1 gemeenschappelijk hebben:
Vak Studiepunten
Project Fasten Your Seatbelts 12 Programming 3 Databases 3 Personal & Project Skills 4
Daarnaast heeft elke richting nog twee vakken van 3 punten in het semester. Welke vakken dit zijn voor jouw richting kun je vinden in de studiegids . (De Essential Skills vakken laten we voor nu buiten beschouwing).
Het is handig je programma stap voor stap te maken. Controleer tussentijds steeds of je programma werkt, zoals verwacht.
Stappenplan¶
-
Maak een nieuw Python programma genaamd “BsaMonitor”.
-
Gebruik in je programma drie
list
’s, alle drie even lang:-
Een
list
genaamdcourse_names
waarin de namen van vakken en projecten komen. Vul de lijst met de namen van de vakken en projecten die jouw richting krijgt in semester 1. -
Een
list
genaamdcourse_points
waarin voor ieder vak de studiepunten van de vakken en projecten staan. Vul deze array met de juiste studiepunten, dus:
- Een
list
genaamdcourse_grades
, waarin je de cijfers die je voor elk vak behaalt zult opslaan.
-
-
Gebruik een loop om alle vakken af te gaan. Vraag de gebruiker per vak om het behaalde of verwachte cijfer in te voeren en sla de ingevoerde cijfers op in de
list
vakCijfers
. Zorg ervoor dat de gebruiker alleen geldige cijfers (tussen de 1.0 en de 10.0) kan invoeren door de invoer te controleren en opnieuw om het cijfer te vragen, als de invoer niet geldig is. -
Nadat de gebruiker de cijfers heeft ingevoerd, kan het programma bepalen hoeveel studiepunten je hebt gehaald voor ieder vak/project, gebaseerd op het aantal studiepunten dat je kan verdienen en het cijfer dat je hebt gehaald (of hoopt te halen). Je krijgt de bij het vak/project behorende studiepunten als je cijfer groter of gelijk is aan 5,5.
-
Gebruik weer een loop om alle vakken af te gaan:
- Tel de daadwerkelijk behaalde studiepunten voor de vakken met een voldoende cijfer op.
- Tel de maximaal te behalen studiepunten voor alle vakken op.
- Toon voor elk vak de resultaten op het scherm. Gebruik
.format()
om deze netjes uit te lijnen. \ Zie https://www.w3schools.com/python/ref_string_format.asp voor voorbeelden.
-
Toon tenslotte het aantal behaalde studiepunten. Als het aantal behaalde studiepunten kleiner is dan 5/6 van het totaal, dan moet de volgende melding worden afgedrukt: “PAS OP: je ligt op schema voor een negatief BSA!”.
-
Voldoet je programma aan de code conventions?
Voorbeeld input en output¶
Hieronder een voorbeeld van input/output van de applicatie voor de richting CS. Input die de gebruiker invoert is schuin en vetgedrukt.
Voer behaalde cijfers in: \ Fasten Your Seatbelts: 7.5 \ Programming: 10.0 \ Databases: 5.5 \ Personal Skills: 7 Project Skills: 5 \ Infrastructure: 8 \ Network Engineering 1: 5.4 \ \ Vak/project: Fasten Your Seatbelts Cijfer: 7.5 Behaalde punten: 12 \ Vak/project: Programming Cijfer: 10.0 Behaalde punten: 3 \ Vak/project: Databases Cijfer: 5.5 Behaalde punten: 3 \ Vak/project: Personal Skills Cijfer: 7.0 Behaalde punten: 2 \ Vak/project: Project Skills Cijfer: 5.0 Behaalde punten: 0 \ Vak/project: Infrastructure Cijfer: 8.0 Behaalde punten: 3 \ Vak/project: Network Engineering 1 Cijfer: 5.4 Behaalde punten: 0 \ \ Totaal behaalde studiepunten: 23/28 \ \ PAS OP: je ligt op schema voor een negatief BSA! \