Oefeningen
H12_2 SchoolAdmin: cursus opzoeken op Id
Functionele analyse
We willen cursussen makkelijk kunnen opvragen via Id. Schrijf in de klasse Course een methode SearchCourseById die dit doet.
Technische analyse
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 AllCourseselement 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.
Klassediagram

H12_3 SchoolAdmin: gelinkte objecten
Functionele analyse
Het is niet handig dat onze klasse CourseRegistrationeen cursus voorstelt als string. Dat maakt dat we de functionaliteit van Courseniet kunnen gebruiken. Pas daarom CourseRegistration aan zodat de klasse echt gelinkt is aan Course. Dit vereist aanpassingen op een aantal plaatsen.
Technische analyse
Wijzig de klasse CourseRegistration: verwijder Name, voeg de full property Coursetoe en pas de constructor aan.
Klassediagram

Door deze aanpassing moeten er een aantal wijzigingen gebeuren:
in de klasse
Student: - pas de methodeRegisterCourseResultaan door het parametertype van course te veranderen - zorg ervoor dat inShowOverviewin plaats van deNamevan een cursus deTitlevan de cursus getoond wordtIn de methode
DemoStudents(Program)moet je eerst 4Course-objecten aanmaken die je vervolgens als argument kan gebruiken bij het toepassen vanRegisterCourseResult.In de methode
DemoCoursesworden reeds 4 Cursus-objecten aangemaakt. Pas de oproepen naar de methodeRegisterCourseResultaan 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 methodeSearchCourseByIdkan je dan de juiste cursus terugvinden en deze gebruiken (als deze niet null is) inRegisterCourseResult.
Controleer ook dat al je testmethodes nog dezelfde resultaten leveren als eerder.
Voorbeeldinteractie
Na het uitvoeren van optie 2 (DemoCourses) en optie 3 (ReadTextFormatStudent):

H12_4 SchoolAdmin: Studieprogramma
Functionele analyse
We wensen cursussen te groeperen in studieprogramma's.
Technische analyse
Schrijf een klasse StudyProgram. Deze heeft een Name(enkele een getter) en bevat een lijst van cursussen. ShowOverviewtoont 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:
Klassediagram

H12_5 SchoolAdmin: Studieprogramma aanpassen
Functionele analyse
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".
Technische analyse
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.
Last updated