Boswandeling bevat drie spelletjes met getallen. Voor elk van deze spellen moet een ondersteunende functie geschreven worden die je straks gebruikt als je het spel gaat schrijven. Iedere duogroep moet één van de onderstaande functies schrijven. Uiteraard moet elke duogroep voor een andere functie kiezen. Alle functies zijn inclusief unit tests.
Iedere duogroep levert twee bestanden: een bronbestand en een headerbestand. Als alle bestanden af zijn, moeten jullie gezamenlijk één headerbestand maken voor alle drie de functies plus hun unit tests. Noem het headerbestand Getalfuncties.h.
Maak een bestand Main.cpp aan met daarin de code die hieronder staat. Deze code voert alle unit tests in één keer uit. Als de code niet werkt of als er een unit test niet slaagt, dan zijn jullie nog niet zo ver dat je je code kunt inleveren (je mag onderstaande code niet veranderen).
#include <iostream> #include "Getalfuncties.h" using namespace std; /** * Voert alle unit tests uit. */ void UnitTest() { // voer unit tests uit en houd bij of ze slagen bool myResult = true; myResult &= VergelijkGetallenTest(); myResult &= VoedingswaardeTest(); myResult &= TerugreisTest(); // zijn alle tests geslaagd? if (myResult == true) { // ja cout << "Alle testen zijn geslaagd. :-)"; } else { // nee cout << "Eén of meerdere testen zijn mislukt. :-("; } } /** * Het programma start hier. * * @return altijd 0 */ int main() { // voer unit tests uit UnitTest(); // wacht op enter cout << "\nDruk op een toets om door te gaan..."; cin.get(); return 0; }
Als alle bestanden klaar zijn, zet je ze in één zipbestand en dat zipbestand zet je in Leo.
De functie VergelijkGetallen vergelijkt twee getallen. De eerste parameter is het doelgetal en dat is het getal dat de speler moet raden. De tweede parameter is de poging van de speler om het doelgetal te raden. Als de twee getallen aan elkaar gelijk zijn, geeft VergelijkGetallen de waarde 0 terug. Als het geraden getal kleiner is dan het doelgetal, geeft VergelijkGetallen een getal kleiner dan 0 terug. Als het geraden getal groter is dan het doelgetal, geeft VergelijkGetallen een waarde groter dan 0 terug.
VergelijkGetallen heeft het volgende prototype:
int VergelijkGetallen(int doelgetal, int geradenGetal);
Schrijf voor VergelijkGetallen de volgende unit tests en zet ze in de functie VergelijkGetallenTest:
Uiteindelijk moet je twee bestanden opleveren.
Je mag bij het programmeren van de functies ondersteunende functies schrijven. Zet deze functies in VergelijkGetallen.cpp. Je hoeft ze niet op te nemen in het headerbestand omdat ze van buitenaf niet aangeroepen hoeven worden. Houd je bij het programmeren aan de algemene stijlregels.
Zet de twee bestanden in één zipbestand voordat je ze in Leo zet.
De functie Voedingswaarde berekent de totale voedingswaarde van een aantal noten. De functie krijgt vier parameters mee die elk het aantal noten van een bepaalde soort aangeven. Voedingswaarde geeft de voedingswaarde van alle noten bij elkaar terug. De onderstaande tabel geeft van elk soort noot de voedingswaarde aan.
soort noot | voedingswaarde |
---|---|
hazelnoot | 1 |
beukennoot | 2 |
walnoot | 5 |
kastanje | 3 |
Voedingswaarde heeft het volgende prototype:
int Voedingswaarde(int hazelnoten, int beukennoten, int walnoten, int kastanjes);
Schrijf voor Voedingswaarde de volgende unit tests en zet ze in de functie Voedingswaarde:
Uiteindelijk moet je twee bestanden opleveren.
Je mag bij het programmeren van de functies ondersteunende functies schrijven. Zet deze functies in Voedingswaarde.cpp. Je hoeft ze niet op te nemen in het headerbestand omdat ze van buitenaf niet aangeroepen hoeven worden. Houd je bij het programmeren aan de algemene stijlregels.
Zet de twee bestanden in één zipbestand voordat je ze in Leo zet.
De functie Terugreis bepaalt of de opgegeven terugreis je terugbrengt op de plaats waar je de opgegeven heenreis bent gestart. De eerste vier parameters geven aan hoe vaak je tijdens de heenreis vakjes in de richting noord, oost, zuid en west bent gereisd. De vijfde en zesde parameter geven aan hoe je terug wilt reizen. De vijfde parameter is het aantal vakjes dat je noord-zuid wilt reizen, waarbij een negatief getal een aantal vakjes in noordelijke richting is en een positief getal een aantal vakjes in zuidelijke richting. De zesde parameter is het aantal vakjes dat je oost-west wilt reizen, waarbij een negatief getal een aantal vakjes in westelijke richting is en een positief getal het aantal vakjes in oostelijke richting. Terugreis geeft true terug als de terugreis je terug brengt op het startpunt en anders false.
Terugreis heeft het volgende prototype:
bool Terugreis(int noord, int oost, int zuid, int west, int noordzuid, int oostwest);
Schrijf voor Terugreis de volgende unit tests en zet ze in de functie TerugreisTest
Uiteindelijk moet je twee bestanden opleveren
Je mag bij het programmeren van de functies ondersteunende functies schrijven. Zet deze functies in Terugreis.cpp. Je hoeft ze niet op te nemen in het headerbestand omdat ze van buitenaf niet aangeroepen hoeven worden. Houd je bij het programmeren aan de algemene stijlregels.
Zet de twee bestanden in één zipbestand voordat je ze in Leo zet.