Zie Scherp - Oefeningen
Handboek Zie Scherp Scherper 2e editieThe Corona filesHandboek backupOefeningen backup
  • Welkom
  • Oefeningen H1 tot en met H5
    • Oefeningen H1
    • Oefeningen H2
    • Oefeningen H3
    • Oefeningen H4
    • Oefeningen H5
    • Gecombineerde oefeningen
      • Opgave 1
      • Opgave 2
      • Opgave 3
      • Opgave 4
      • Opgave 5
  • Oefeningen H6 tot en met H8
    • Oefeningen H6
      • Week 1
      • Week 2
    • Oefeningen H7
      • Week 1
      • Week 2
    • Oefeningen H8
      • Week 1
      • Week 2
    • Voorbeeld vaardigheidsproeven
      • Opgave 1 (2022)
      • Opgave 2 (2019)
      • Opgave 3 (2019)
      • Opgave 4 (2020)
      • Opgave 5 (2020)
      • Opgave 6 (2021)
      • Opgave 7 (2022)
      • Opgave 8 (2022)
      • Opgave 9 (2023)
      • Opgave 10 (2024)
      • Opgave 11 (2024)
      • Opgave 12 (2025)
    • Gecombineerde opgaven
      • Console Matrix
      • Unicode filmpjes maken met loops
      • Unicode filmpjes maken met methoden
      • Music Maestro
      • Fun with methods: een verhaalgenerator
      • Tekst-gebaseerd Maze game
      • Conway game of life
      • How to make your console app look cool
  • Oefeningen H9 tot en met H12
    • Oefeningen H9
    • Oefeningen H10
    • Oefeningen H11
    • Oefeningen H12
    • Gecombineerde oefeningen
      • Opgave 1
      • Opgave 2
      • Opgave 3
      • Opgave 4
      • Opgave 5
  • Oefeningen H13 tot en met H18
    • Oefeningen H13
    • Oefeningen H14
    • Oefeningen H15
    • Oefeningen H16
    • Oefeningen H17
    • Oefeningen H18
    • Voorbeeld vaardigheidsproeven
      • Opgave 1 (2019)
      • Opgave 2 (2019)
      • Opgave 3 (2020)
      • Opgave 4 (2021)
      • Opgave 5 (2021)
      • Opgave 6 (2022)
      • Opgave 7 (2022)
      • Opgave 8 (2023)
      • Opgave 9 (2024)
    • Gecombineerde oefeningen
      • OO Textbased Game
      • Map Maker
      • Mapmaker & WPF
      • Magic The Gathering API
      • C# Game remakes
Powered by GitBook
On this page
  • Opgave 1
  • Klassen
  • Dynasty
  • Methoden
  • Hoofdprogramma

Was this helpful?

  1. Oefeningen H13 tot en met H18
  2. Voorbeeld vaardigheidsproeven

Opgave 9 (2024)

Deze opgave was onderdeel van de vaardigheidsproefopdracht voor het examen van dit vak (OOP) in juli 2024 (licht aangepast)

Opgave 1

Het Oude Egypte met z'n faraos, pyramides, vreemde goden en mummies spreekt tot de verbeelding. Voor een firma ga je een simulatie van het Oude Egypte maken.

Klassen

Pharaoh

De klasse heeft volgende eigenschappen :

  • Name (auto, string): De naam van de Pharaoh.

  • ReignStartYear (full, int): Het jaar waarin de Pharaoh begon met regeren. Kan enkel negatief zijn.

  • ReignEndYear (full, int): Het jaar waarin de regering van de Pharaoh eindigde. Kan enkel negatief zijn. Kan nooit kleiner zijn dan ReignStartYear, zoniet dan worden beide waarden verwisseld voor ze toegekend worden.

Voorts heeft iedere Pharaoh een private lijst van Achievements, waarin de belangrijkste prestaties of gebeurtenissen tijdens de regering van de Pharaoh in worden bijgehouden. Deze lijst bevat strings.

De klasse heeft volgende methoden:

  • CalculateReignLength() -> int: Bereken de lengte van de regeringsperiode van de Pharaoh, uitgedrukt in jaren.

  • AddAchievement(string achievement): Voeg een prestatie toe aan de lijst van belangrijke prestaties. Dit stelt je in staat om dynamisch prestaties toe te voegen aan het record van de Pharaoh.

  • ShowAchievements(): Deze methode zal alle prestaties van de Pharaoh onder elkaar oplijsten op het scherm.

Je dient twee constructors te implementeren voor de Pharaoh klasse:

  1. Een constructor die alle eigenschappen als parameters neemt, inclusief ReignEndYear. De constructor controleert dat ReignEndYear later is dan ReignStartYear.

  2. Een constructor die ReignEndYear weggelaten, voor het geval het einde van de regering onbekend is. ReignEndYearwordt dan op 0 gezet.

Dynasty

Deze klasse modelleert een dynastie in het oude Egypte, met eigenschappen en methoden die de relatie en informatie van meerdere Pharaoh's binnen dezelfde dynastie weergeven:

De klasse heeft volgende eigenschappen

  • Name (auto,string, ): De naam van de dynastie, bijvoorbeeld "18e Dynastie".

  • StartYear (full, int): Het jaar waarin de dynastie begon. Kan enkel negatief zijn.

  • EndYear (full, int): Het jaar waarin de dynastie eindigde. Kan enkel negatief zijn. Kan nooit kleiner zijn dan StartYear.

De klasse heeft ook een lijst van Pharaoh objecten die de Pharaoh's binnen deze dynastie vertegenwoordigen.

Methoden

  • AddPharaoh(Pharaoh pharaoh): Voeg een Pharaoh object toe aan de lijst van Pharaoh's. Deze methode maakt het mogelijk om Pharaoh's dynamisch toe te voegen aan een dynastie. Indien een Pharaoh wordt toegevoegd wiens regeerperiode niet overlapt met die van de dynastie, dan wordt er een Exception opgeworpen. Voorbeeld: dynastie is van -500 tot -300, dan zal de Pharaoh die leefde tussen -510 en -480 wél worden toegevoegd. Maar de Pharaoh die leefde tussen -600 en -530 niet.

  • CalculateDuration() -> int: Bereken de duur van de dynastie, uitgedrukt in jaren.

  • ShowEvents(): Deze methode toont alle achievements van de Pharaohs in deze dynastie door de ShowAchievements methode van iedere faroah in de lijst aan te roepen, voorafgegaan door de naam van de Pharaoh.

  • ShowPharaohs: Deze methode lijst de Pharaohs op die in de lijst van Pharaoh objecten staat.

Hoofdprogramma

Schrijf een applicatie die

  1. Creëer ten minste twee Pharaoh objecten met verschillende namen, regeerperioden, en voeg aan elk minimaal twee prestaties toe met de AddAchievement methode. Zorg ervoor dat de regeerperioden van deze Pharaoh's overlappen met de periode van de dynastie die je in stap 2 zult creëren.

  2. Maak een Dynasty object en initialiseer deze met een naam en de start- en eindjaren. Zorg ervoor dat de start- en eindjaren negatieve getallen zijn om de historische tijdlijn van het Oude Egypte na te bootsen.

  3. Voeg de Pharaoh objecten toe aan de Dynasty met behulp van de AddPharaoh methode. Vang eventuele exceptions op die worden opgeworpen als een Pharaoh niet binnen de periode van de dynastie valt.

  4. Roep de CalculateDuration methode aan op je Dynasty object om de duur van de dynastie te tonen.

  5. Gebruik de ShowEvents methode van de Dynasty klasse om alle prestaties van de Pharaoh's binnen die dynastie te tonen.

PreviousOpgave 8 (2023)NextGecombineerde oefeningen

Last updated 7 months ago

Was this helpful?