Oefeningen
Last updated
Last updated
We willen cursussen makkelijk kunnen opvragen via Id. Schrijf in de klasse Course
een methode SearchCourseById
die dit doet.
Deze methode werkt op klasseniveau, want je hebt geen cursus nodig om een andere cursus te vinden. Ze heeft één parameter, id
. Het return type is Course
, maar het kan zijn dat je geen cursus met het gevraagde Id kan terugvinden.
De methode werkt door AllCourses
element per element te doorlopen en de waarde van het attribuut Id
van elk element te vergelijken met het meegegeven argument. Als de gevraagde cursus niet bestaat, mag je programma niet crashen, maar krijg je null
terug.
Het is niet handig dat onze klasse CourseRegistration
een cursus voorstelt als string. Dat maakt dat we de functionaliteit van Course
niet kunnen gebruiken. Pas daarom CourseRegistration
aan zodat de klasse echt gelinkt is aan Course
. Dit vereist aanpassingen op een aantal plaatsen.
Wijzig de klasse CourseRegistration
: verwijder Name
, voeg de full property Course
toe en pas de constructor aan.
Door deze aanpassing moeten er een aantal wijzigingen gebeuren:
in de klasse Student
:
- pas de methode RegisterCourseResult
aan door het parametertype van course te veranderen
- zorg ervoor dat in ShowOverview
in plaats van de Name
van een cursus de Title
van de cursus getoond wordt
In de methode DemoStudents(Program)
moet je eerst 4 Course
-objecten aanmaken die je vervolgens als argument kan gebruiken bij het toepassen van RegisterCourseResult
.
In de methode DemoCourses
worden reeds 4 Cursus-objecten aangemaakt. Pas de oproepen naar de methode RegisterCourseResult
aan en schuif ze verder naar onderen zodat deze methode terug correct werkt.
Aanpassingen ReadTextFormatStudent
:
Vanaf nu gebruiken we in de csv-gegevens van een student niet meer de naam van een cursus maar het ID. Met behulp van de methode SearchCourseById
kan je dan de juiste cursus terugvinden en deze gebruiken (als deze niet null is) in RegisterCourseResult
.
Controleer ook dat al je testmethodes nog dezelfde resultaten leveren als eerder.
Na het uitvoeren van optie 2 (DemoCourses
) en optie 3 (ReadTextFormatStudent
):
We wensen cursussen te groeperen in studieprogramma's.
Schrijf een klasse StudyProgram
. Deze heeft een Name
(enkele een getter) en bevat een lijst van cursussen. ShowOverview
toont de naam van het programma en daaronder het overzicht voor elke cursus.
Voorzie ook een methode DemoStudyProgram
die hieronder gegeven wordt:
Gebruik volgende code voor de demonstratiemethode:
We willen aanpassingen doen aan het studieprogramma SNB. Eerst schrappen we de cursus Databanken en vervolgens wijzigen we de titel van de cursus programmeren naar "Scripting".
Eerste wijziging:
Pas DemoStudyProgram
aan met een Remove
van de cursus Databanken uit het programma van SNB:
Hier loopt iets mis. Benoem de oorzaak en corrigeer de fout.
Tweede wijziging:
Gebruik nu volgende code voor de demonstratiemethode:
Opnieuw loopt het fout. Benoem zelf de oorzaak en corrigeer de fout.