schedule_maker / track.h
track.h
Raw
#ifndef TrackHVar  // voorkom dat dit bestand meerdere keren
#define TrackHVar  // ge-include wordt

#include <vector>
#include "beschikbaarheid.h"

using namespace std;

class Track : public Beschikbaarheid {
    private:
        // Id van de track
        int trackId;

        // Array voor hoeveel vakken de track op een dag heeft
        int vakkenPerDag[MaxNrDagen];

        // Array voor het aantal tussenuren de track heeft op een dag
        int tussenuur[MaxNrDagen];

        // Vector voor de id's van de vakken die de track heeft
        vector<int> vakIds;

        // Boolean die onthoudt of de track theoretisch mogelijk is
        bool theoretischMogelijk;

    public:
        // Reset de arrays vakkenPerDag[] en tussenuur[],
        // zodat er een nieuw rooster kan worden gemaakt
        void resetTrack();

        // Default constructor
        Track();

        // Setter voor de id van de track
        void setId(int const id0);

        // Voegt een vakId toe aan de vector met vakIds
        void addVak(int const vakId);

        // Setter voor of de track theoretisch mogelijk is
        void setTheoretischMogelijk(bool const theoretischMogelijk0);

        // Verhoogt het aantal tussenuren op deze dag
        void nieuwTussenuur(int const dag);

        // Verlaagt het aantal tussenuren op deze dag
        void verwijderTussenuur(int const dag);

        // Verhoogt het aantal ingeroosterde vakken op deze dag
        void nieuwVakOpDag(int const dag);

        // Verlaagt het aantal ingeroosterde vakken op deze dag
        void verwijderVakOpDag(int const dag);

        // Getter voor de id van de track
        int const getId();

        // Retourneert hoeveel ingeroosterde vakken de track op deze dag heeft
        int const aantalVakken(int const dag);

        // Getter voor het aantal tussenuren op deze dag
        int const getTussenuren(int const dag);

        // Getter voor of de track theoretisch mogelijk is
        bool const getTheoretischMogelijk();

        // Getter voor de vakId's van de track
        vector<int> getVakIds();

        // Geeft een 'rang' terug die weergeeft hoe goed de 
        // beschikbaarheid is in de tracks van het vak op een tijdslot
        int const trackBeschikbaarheid(int const tijdslot, int const nrUrenPerDag);
};

#endif