public override Kenmerk DetermineerKenmerk(Klimatogram klimatogram)
 {
     if (klimatogram == null) throw new ArgumentException("Argument klimatogram is null.");
     if ((JaKind == null) ||(NeeKind == null)) throw new InvalidOperationException("Een van de kinderen is null.");
     if (Vraag.LosOp(klimatogram)) return JaKind.DetermineerKenmerk(klimatogram);
     else return NeeKind.DetermineerKenmerk(klimatogram);
 }
 public override IList<bool> GaNaarCorrectKenmerk(Klimatogram klimatogram, IList<bool> antwoorden)
 {
     if (klimatogram == null) throw new ArgumentException("Argument klimatogram is null.");
     if ((JaKind == null) || (NeeKind == null)) throw new InvalidOperationException("Een van de kinderen is null.");
     bool antwoord = Vraag.LosOp(klimatogram);
     antwoorden.Add(antwoord);
     if (antwoord) return JaKind.GaNaarCorrectKenmerk(klimatogram, antwoorden);
     else return NeeKind.GaNaarCorrectKenmerk(klimatogram, antwoorden);
 }
 public virtual bool LosOp(Klimatogram klimatogram)
 {
     if (Parameter1 == null) throw new ArgumentException("Parameter1 is null.");
     if (Parameter2 == null) throw new ArgumentException("Parameter2 is null.");
     if (Vergelijking == null) throw new ArgumentException("Vergelijk is null.");
     if (klimatogram == null) throw new ArgumentException("Klimatogram is null.");
     double param1 = Parameter1.GeefParameterWaarde(klimatogram);
     double param2 = Parameter2.GeefParameterWaarde(klimatogram);
     return Vergelijking.Vergelijk(param1, param2);
 }
 public Node GaNaarLaatsteCorrecteStap(Klimatogram klimatogram)
 {
     if (!IsCompleet()) throw new InvalidOperationException("Determinatie is nog niet compleet.");
     Node n = _root;
     int index = 0;
     while ((index < Keuzes.Count) && (Keuzes[index] == ((VraagNode) n).Vraag.LosOp(klimatogram)))
     {
         if (Keuzes[index]) n = ((VraagNode) n).JaKind;
         else n = ((VraagNode)n).NeeKind;
         ++index;
     }
     while (index < Keuzes.Count) Keuzes.RemoveAt(Keuzes.Count-1);
     return n;
 }
示例#5
0
        public virtual bool LosOp(Klimatogram klimatogram)
        {
            if (Parameter1 == null)
            {
                throw new ArgumentException("Parameter1 is null.");
            }
            if (Parameter2 == null)
            {
                throw new ArgumentException("Parameter2 is null.");
            }
            if (Vergelijking == null)
            {
                throw new ArgumentException("Vergelijk is null.");
            }
            if (klimatogram == null)
            {
                throw new ArgumentException("Klimatogram is null.");
            }
            double param1 = Parameter1.GeefParameterWaarde(klimatogram);
            double param2 = Parameter2.GeefParameterWaarde(klimatogram);

            return(Vergelijking.Vergelijk(param1, param2));
        }
示例#6
0
        public ActionResult KiesLocatie(Leerling leerling, Land land, KlimatogramKiezenLocatieViewModel kVM)
        {
            if (!ModelState.IsValid)
            {
                return(null);
            }

            Klimatogram klimatogram = land.GeefKlimatogram(kVM.Locatie);

            if (kVM.Locatie == null || klimatogram == null)
            {
                TempData["Error"] = "Er zijn geen gegevens beschikbaar voor de geselecteerde locatie.";
                return(JavaScript("window.location = '" + Url.Action("Index") + "'"));
            }
            if (HttpContext != null && HttpContext.Session != null)
            {
                HttpContext.Session["klimatogram"] = klimatogram;
            }
            leerling.Klimatogram = klimatogram;

            object klim = klimatogram.MaakJsonObject();

            return(Json(klim, JsonRequestBehavior.AllowGet));
        }
示例#7
0
 public override ICollection <string> GeefMogelijkeAntwoorden(Klimatogram klimatogram)
 {
     throw new NotSupportedException();
 }
示例#8
0
 public override ICollection <string> GeefMogelijkeAntwoorden(Klimatogram klimatogram)
 {
     return(Enumerable.Range(0, 13).Select(n => n.ToString()).ToList());
 }
示例#9
0
 public override IComparable BerekenWaarde(Klimatogram klimatogram)
 {
     return(BerekenNeerslagWinter(klimatogram, true));
 }
示例#10
0
 public DeterminatieResultaat Determineer(Klimatogram klimatogram)
 {
     return(Component.Determineer(klimatogram));
 }
 public void TestInit()
 {
     klimatogramDummy = new KlimatogramDummyCreator();
     klimatogram      = klimatogramDummy.GeefNieuwKlimatogram();
 }
 public override IList<bool> GaNaarCorrectKenmerk(Klimatogram klimatogram, IList<bool> antwoorden)
 {
     return antwoorden;
 }
 public override double GeefParameterWaarde(Klimatogram klimatogram)
 {
     return klimatogram.GeefNeerslagZomer();
 }
示例#14
0
        public ActionResult ToonVragenEersteGraad(Leerling leerling, VragenEersteGraadViewModel vm)
        {
            Klimatogram k = leerling.GekozenLocatie.Klimatogram;

            if (leerling.AantalPogingenVragen == 1)
            {
                if ((double)vm.WarmsteMaandVraag != new WarmsteMaandVraag(k).LosOp())
                {
                    ModelState.AddModelError("WarmsteMaandVraag", "Warmste maand niet correct!");
                }
                if (Double.Parse(vm.TemperatuurWarmsteMaandVraag) != new TemperatuurWarmsteMaandVraag(k).LosOp())
                {
                    ModelState.AddModelError("TemperatuurWarmsteMaandVraag", "Temperatuur warmste maand niet correct!");
                }
                if ((double)vm.KoudsteMaandVraag != new KoudsteMaandVraag(k).LosOp())
                {
                    ModelState.AddModelError("KoudsteMaandVraag", "Koudste maand niet correct!");
                }
                if (Double.Parse(vm.TemperatuurKoudsteMaandVraag) != new TemperatuurKoudsteMaandVraag(k).LosOp())
                {
                    ModelState.AddModelError("TemperatuurKoudsteMaandVraag", "Temperatuur Koudste maand niet correct!");
                }
                if (vm.AantalDrogeMaandenVraag != new AantalDrogeMaandenVraag(k).LosOp())
                {
                    ModelState.AddModelError("AantalDrogeMaandenVraag", "Aantal droge maanden niet correct!");
                }
                if (vm.NeerslagWinterVraag != new NeerslagWinterVraag(k).LosOp())
                {
                    ModelState.AddModelError("NeerslagWinterVraag", "Neerslag winter niet correct!");
                }
                if (vm.NeerslagZomerVraag != new NeerslagZomerVraag(k).LosOp())
                {
                    ModelState.AddModelError("NeerslagZomerVraag", "Neerslag zomer niet correct!");
                }
            }
            else
            {
                if ((double)vm.WarmsteMaandVraag != new WarmsteMaandVraag(k).LosOp())
                {
                    ModelState.AddModelError("WarmsteMaandVraag", "Warmste maand niet correct! Het juiste antwoord is: " + Enum.GetName(typeof(Maand), (Int32) new WarmsteMaandVraag(k).LosOp()));
                }
                if (Double.Parse(vm.TemperatuurWarmsteMaandVraag) != new TemperatuurWarmsteMaandVraag(k).LosOp())
                {
                    ModelState.AddModelError("TemperatuurWarmsteMaandVraag", "Temperatuur warmste maand niet correct! Het juiste antwoord is: " + new TemperatuurWarmsteMaandVraag(k).LosOp());
                }
                if ((double)vm.KoudsteMaandVraag != new KoudsteMaandVraag(k).LosOp())
                {
                    ModelState.AddModelError("KoudsteMaandVraag", "Koudste maand niet correct! Het juiste antwoord is: " + Enum.GetName(typeof(Maand), (Int32) new WarmsteMaandVraag(k).LosOp()));
                }
                if (Double.Parse(vm.TemperatuurKoudsteMaandVraag) != new TemperatuurKoudsteMaandVraag(k).LosOp())
                {
                    ModelState.AddModelError("TemperatuurKoudsteMaandVraag", "Temperatuur Koudste maand niet correct! Het juiste antwoord is: " + new TemperatuurKoudsteMaandVraag(k).LosOp());
                }
                if (vm.AantalDrogeMaandenVraag != new AantalDrogeMaandenVraag(k).LosOp())
                {
                    ModelState.AddModelError("AantalDrogeMaandenVraag", "Aantal droge maanden niet correct! Het juiste antwoord is: " + new AantalDrogeMaandenVraag(k).LosOp());
                }
                if (vm.NeerslagWinterVraag != new NeerslagWinterVraag(k).LosOp())
                {
                    ModelState.AddModelError("NeerslagWinterVraag", "Neerslag winter niet correct! Het juiste antwoord is: " + new NeerslagWinterVraag(k).LosOp());
                }
                if (vm.NeerslagZomerVraag != new NeerslagZomerVraag(k).LosOp())
                {
                    ModelState.AddModelError("NeerslagZomerVraag", "Neerslag zomer niet correct! Het juiste antwoord is: " + new NeerslagZomerVraag(k).LosOp());
                }
            }
            leerling.AantalPogingenVragen++;
            if (ModelState.IsValid)
            {
                return(RedirectToAction("Index", "Determinatie"));
            }
            ViewBag.AntwoordenTemperatuurWarmsteMaand = new TemperatuurWarmsteMaandVraag(k).GeefMogelijkeAntwoorden().ToArray();
            ViewBag.AntwoordenTemperatuurKoudsteMaand = new TemperatuurKoudsteMaandVraag(k).GeefMogelijkeAntwoorden().ToArray();
            ViewBag.AntwoordenAantalDrogeMaanden      = new AantalDrogeMaandenVraag(k).GeefMogelijkeAntwoorden().ToArray();
            return(View(vm));
        }
 public NeerslagZomerVraag(Klimatogram k)
 {
     this.Vraag       = "Hoeveelheid neerslag in de zomer?";
     this.Klimatogram = k;
 }
 public override double LosOp()
 {
     return(Klimatogram.GeefNeerslagZomer());
 }
 public TemperatuurWarmsteMaandVraag(Klimatogram k)
 {
     this.Vraag = "Wat is de temperatuur van de warmste maand?";
     this.Klimatogram = k;
 }
示例#18
0
 public abstract IList<bool> GaNaarCorrectKenmerk(Klimatogram klimatogram, IList<bool> antwoorden);
 public WarmsteMaandVraag(Klimatogram k)
 {
     this.Vraag = "Wat is de warmste maand?";
     this.Klimatogram = k;
 }
 public override double GeefParameterWaarde(Klimatogram klimatogram)
 {
     return klimatogram.GeefTemperatuurWarmsteMaand();
 }
示例#21
0
 public override ICollection <string> GeefMogelijkeAntwoorden(Klimatogram klimatogram)
 {
     throw new NotSupportedException(); //wordt niet gebruikt bij de vragen
 }
示例#22
0
        protected override void Seed(KlimatogramContext context)
        {
            try
            {
                /*
                 * ==================================================================
                 * Continenten aanmaken
                 * ==================================================================
                 */
                //Europa
                Continent europa = new Continent("Europa", "150");

                //Afrika
                Continent afrika = new Continent("Afrika", "002");

                //Azië
                Continent azie = new Continent("Azië", "142");

                //Oceanië
                Continent oceanie = new Continent("Oceanië", "009");

                //Noord Amerika
                Continent noordAmerika = new Continent("Noord-Amerika", "021");

                //Zuid Amerika
                Continent zuidAmerika = new Continent("Zuid-Amerika", "005");

                /*
                 * ==================================================================
                 * Landen aanmaken
                 * ==================================================================
                 */
                //België
                Land belgie = new Land("België", "BE");

                //Frankrijk
                Land frankrijk = new Land("Frankrijk", "FR");

                //Ivoorkust
                Land ivoorkust = new Land("Ivoorkust", "CI");

                //China
                Land china = new Land("China", "CN");

                //Nieuw Zeeland
                Land nieuwZeeland = new Land("Nieuw Zeeland", "NZ");

                //Verenigde Staten
                Land verenigdeStaten = new Land("Verenigde Staten", "US");

                //Peru
                Land peru = new Land("Peru", "PE");

                /*
                 * ==================================================================
                 * Locaties aanmaken
                 * klimatogram aanmaken
                 * Koppelen
                 * ==================================================================
                 */
                //Eerste 2 lijsten aanmaken voor de temperaturen en neerslagen
                IList <double> temperaturen;
                IList <int>    neerslagen;
                Klimatogram    klimatogram;

                //Ukkel
                Locatie ukkel = new Locatie("Ukkel");
                temperaturen      = new[] { 2.5, 3.2, 5.7, 8.7, 12.7, 15.5, 17.2, 17, 14.4, 10.4, 6, 3.4 };
                neerslagen        = new[] { 67, 54, 73, 57, 70, 78, 75, 63, 59, 71, 78, 76 };
                klimatogram       = new Klimatogram(temperaturen, neerslagen, 50.802398, 4.340670, 1961, 1990);
                ukkel.Klimatogram = klimatogram;

                //Gent-Melle
                Locatie gentMelle = new Locatie("Gent-Melle");
                temperaturen          = new[] { 2.4, 3, 5.2, 8.4, 12.1, 15.1, 16.8, 16.6, 14.3, 10.3, 6.2, 3.2 };
                neerslagen            = new[] { 51, 42, 46, 50, 59, 65, 72, 74, 72, 72, 64, 59 };
                klimatogram           = new Klimatogram(temperaturen, neerslagen, 51.003672, 3.800314, 1960, 1996);
                gentMelle.Klimatogram = klimatogram;

                //Abidjan
                Locatie abidjan = new Locatie("Abidjan");
                temperaturen        = new[] { 26.8, 27.7, 27.9, 27.7, 26.9, 25.8, 24.7, 24.5, 25.6, 26.8, 27.4, 27 };
                neerslagen          = new[] { 16, 49, 107, 141, 294, 562, 206, 37, 81, 138, 143, 75 };
                klimatogram         = new Klimatogram(temperaturen, neerslagen, 5.316667, -4.033333, 1961, 1990);
                abidjan.Klimatogram = klimatogram;

                //Parijs
                Locatie parijs = new Locatie("Parijs");
                temperaturen       = new[] { 3.5, 4.5, 6.8, 9.7, 13.3, 16.4, 18.4, 18.2, 15.7, 11.8, 6.9, 4.3 };
                neerslagen         = new[] { 54, 46, 54, 47, 63, 58, 54, 52, 54, 56, 56, 56 };
                klimatogram        = new Klimatogram(temperaturen, neerslagen, 48.856614, 2.352222, 1960, 1990);
                parijs.Klimatogram = klimatogram;

                //Peking
                Locatie peking = new Locatie("Peking");
                temperaturen       = new[] { -4.3, -1.9, 5.1, 13.6, 20.0, 24.2, 25.9, 24.6, 19.6, 12.7, 4.3, -2.2 };
                neerslagen         = new[] { 3, 6, 9, 26, 29, 71, 176, 182, 49, 19, 6, 2 };
                klimatogram        = new Klimatogram(temperaturen, neerslagen, 39.904211, 116.407395, 1961, 1990);
                peking.Klimatogram = klimatogram;

                //Wellington
                Locatie wellington = new Locatie("Wellington");
                temperaturen           = new[] { 17.8, 17.7, 16.6, 14.3, 11.9, 10.1, 9.2, 9.8, 11.2, 12.8, 14.5, 16.4 };
                neerslagen             = new[] { 67, 48, 76, 87, 99, 113, 111, 106, 82, 81, 74, 74 };
                klimatogram            = new Klimatogram(temperaturen, neerslagen, -41.286460, 174.776236, 1961, 1990);
                wellington.Klimatogram = klimatogram;

                //Oklahoma City
                Locatie oklahomaCity = new Locatie("Oklahoma City");
                temperaturen             = new[] { 2.2, 4.9, 10.2, 15.8, 20.2, 24.8, 27.8, 27.3, 22.8, 16.7, 9.8, 4.1 };
                neerslagen               = new[] { 29, 40, 69, 70, 133, 110, 66, 66, 98, 82, 50, 36 };
                klimatogram              = new Klimatogram(temperaturen, neerslagen, 35.467560, -97.516428, 1961, 1990);
                oklahomaCity.Klimatogram = klimatogram;

                //
                Locatie lima = new Locatie("Lima");
                temperaturen     = new[] { 22.7, 23.3, 22.9, 21.2, 19.2, 17.8, 17.1, 16.8, 17.0, 17.9, 19.3, 21.3 };
                neerslagen       = new[] { 1, 0, 0, 0, 0, 1, 1, 2, 1, 0, 0, 0 };
                klimatogram      = new Klimatogram(temperaturen, neerslagen, -12.046374, -77.042793, 1961, 1990);
                lima.Klimatogram = klimatogram;

                /*
                 * ==================================================================
                 * Locaties aan landen koppelen
                 * ==================================================================
                 */
                //Aan Belgie
                belgie.VoegLocatieToe(ukkel);
                belgie.VoegLocatieToe(gentMelle);

                //Aan Frankrijk
                frankrijk.VoegLocatieToe(parijs);

                //Aan Ivoorkust
                ivoorkust.VoegLocatieToe(abidjan);

                //Aan China
                china.VoegLocatieToe(peking);

                //Aan Nieuw Zeeland
                nieuwZeeland.VoegLocatieToe(wellington);

                //Aan Verenigde Staten
                verenigdeStaten.VoegLocatieToe(oklahomaCity);

                //Aan Peru
                peru.VoegLocatieToe(lima);

                /*
                 * ==================================================================
                 * Landen aan continenten koppelen
                 * ==================================================================
                 */
                //Aan Europa
                europa.VoegLandToe(belgie);
                europa.VoegLandToe(frankrijk);

                //Aan Afrika
                afrika.VoegLandToe(ivoorkust);

                //Aan Azië
                azie.VoegLandToe(china);

                //Aan Oceanië
                oceanie.VoegLandToe(nieuwZeeland);

                //Aan Noord-Amerika
                noordAmerika.VoegLandToe(verenigdeStaten);

                //Aan Zuid-Amerika
                zuidAmerika.VoegLandToe(peru);

                /*
                 * ===================================================================
                 * Kenmerken aanmaken
                 *
                 * Moet in juiste volgorde gemaakt zijn zodat determinatietabel
                 * klopt.
                 * ===================================================================
                 */
                IList <Kenmerk> kenmerkList = new List <Kenmerk>();
                string[]        klimaten    = (new string[] { "Koud klimaat zonder dooiseizoen", "Koud klimaat met dooiseizoen", "Koudgematigd klimaat met strenge winter", "Gematigd altijd droog klimaat", "Warm altijd droog klimaat", "Gematigd, droog klimaat", "Koudgematigd klimaat met strenge winter", "Koelgematigd klimaat met koude winter", "Koelgematigd klimaat met zachte winter", "Warmgematigd altijd nat klimaat", "Koelgematigd klimaat met natte winter", "Warmgematigd klimaat met natte winter", "Warmgematigd klimaat met natte zomer", "Warm klimaat met nat seizoen", "Warm altijd nat klimaat", "Koud zonder dooiseizoen", "Koud met dooiseizoen", "Koud gematigd", "Koel gematigd met strenge winter", "Koel gematigd met zachte winter", "Warm gematigd met natte winter", "Gematigd en droog", "Warm" });
                string[]        vegetaties  = (new string[] { "Ijswoestijn", "Toendra", "Taiga", "Woestijn van de middelbreedten", "Woestijn van de tropen", "Steppe", "Taiga", "Gemengd-woud", "Loofbos", "Subtropisch regenwoud", "Hardbladige-vegetatie van de centrale middelbreedten", "Hardbladige-vegetatie van subtropen", "Subtropische savanne", "Tropische savanne", "Tropisch regenwoud", "Koud", "Koud", "Gematigd", "Gematigd", "Gematigd", "Gematigd", "Droog", "Warm" });
                for (int i = 0; i < klimaten.Length; ++i)
                {
                    Kenmerk k = new Kenmerk();
                    k.KlimaatKenmerk   = klimaten[i];
                    k.VegetatieKenmerk = vegetaties[i];
                    kenmerkList.Add(k);
                }

                /*
                 * ===================================================================
                 * Test determinatietabel maken
                 *
                 * Rechts is ja
                 * Omlaag is nee
                 *
                 * Zie Use case 3 determineertabel graad 2 & 3
                 * ===================================================================
                 */

                //Factories maken, deze zorgen dat dezelfde waarden maar 1 keer in de db komen
                VergelijkingFactory vergelijkingFactory = new VergelijkingFactory();
                ParameterFactory    parameterFactory    = new ParameterFactory();

                //De vragen aanmaken
                //TW <= 10
                DeterminatieVraag d1 = new DeterminatieVraag();
                d1.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurWarmsteMaand);
                d1.Parameter2   = parameterFactory.GeefConstanteParameter(10);
                d1.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //TW <= 0
                DeterminatieVraag d2 = new DeterminatieVraag();
                d2.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurWarmsteMaand);
                d2.Parameter2   = parameterFactory.GeefConstanteParameter(0);
                d2.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //TJ <= 0
                DeterminatieVraag d3 = new DeterminatieVraag();
                d3.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.GemiddeldeJaarTemperatuur);
                d3.Parameter2   = parameterFactory.GeefConstanteParameter(0);
                d3.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //NJ <= 200
                DeterminatieVraag d4 = new DeterminatieVraag();
                d4.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.TotaleJaarNeerslag);
                d4.Parameter2   = parameterFactory.GeefConstanteParameter(200);
                d4.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //TK <= 15
                DeterminatieVraag d5 = new DeterminatieVraag();
                d5.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurKoudsteMaand);
                d5.Parameter2   = parameterFactory.GeefConstanteParameter(15);
                d5.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //TK <= 18
                DeterminatieVraag d6 = new DeterminatieVraag();
                d6.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurKoudsteMaand);
                d6.Parameter2   = parameterFactory.GeefConstanteParameter(18);
                d6.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //NJ <= 400
                DeterminatieVraag d7 = new DeterminatieVraag();
                d7.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.TotaleJaarNeerslag);
                d7.Parameter2   = parameterFactory.GeefConstanteParameter(400);
                d7.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //Tk <= -10
                DeterminatieVraag d8 = new DeterminatieVraag();
                d8.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurKoudsteMaand);
                d8.Parameter2   = parameterFactory.GeefConstanteParameter(-10);
                d8.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //D <= 1
                DeterminatieVraag d9 = new DeterminatieVraag();
                d9.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.AantalDrogeMaanden);
                d9.Parameter2   = parameterFactory.GeefConstanteParameter(1);
                d9.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //Tk <= -3
                DeterminatieVraag d10 = new DeterminatieVraag();
                d10.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurKoudsteMaand);
                d10.Parameter2   = parameterFactory.GeefConstanteParameter(-3);
                d10.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //TW <= 22
                DeterminatieVraag d11 = new DeterminatieVraag();
                d11.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurWarmsteMaand);
                d11.Parameter2   = parameterFactory.GeefConstanteParameter(22);
                d11.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);

                //NZ <= NW
                DeterminatieVraag d12 = new DeterminatieVraag();
                d12.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.NeerslagZomer);
                d12.Parameter2   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.NeerslagWinter);
                d12.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDanOfGelijkAan);


                //Boom opmaken vanaf de leafs

                Node n14 = new VraagNode(d9);
                n14.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[14]));
                n14.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[13]));

                Node n13 = new VraagNode(d11);
                n13.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[10]));
                n13.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[11]));

                Node n12 = new VraagNode(d12);
                n12.VoegKindToeAanJaNode(n13);
                n12.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[12]));

                Node n11 = new VraagNode(d11);
                n11.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[8]));
                n11.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[9]));

                Node n10 = new VraagNode(d10);
                n10.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[7]));
                n10.VoegKindToeAanNeeNode(n11);

                Node n9 = new VraagNode(d9);
                n9.VoegKindToeAanJaNode(n10);
                n9.VoegKindToeAanNeeNode(n12);

                Node n8 = new VraagNode(d8);
                n8.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[6]));
                n8.VoegKindToeAanNeeNode(n9);

                Node n7 = new VraagNode(d7);
                n7.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[5]));
                n7.VoegKindToeAanNeeNode(n8);

                Node n6 = new VraagNode(d6);
                n6.VoegKindToeAanJaNode(n7);
                n6.VoegKindToeAanNeeNode(n14);

                Node n5 = new VraagNode(d5);
                n5.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[3]));
                n5.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[4]));

                Node n4 = new VraagNode(d4);
                n4.VoegKindToeAanJaNode(n5);
                n4.VoegKindToeAanNeeNode(n6);

                Node n3 = new VraagNode(d3);
                n3.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[2]));
                n3.VoegKindToeAanNeeNode(n4);

                Node n2 = new VraagNode(d2);
                n2.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[0]));
                n2.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[1]));

                Node root = new VraagNode(d1);
                root.VoegKindToeAanJaNode(n2);
                root.VoegKindToeAanNeeNode(n3);

                DeterminatieTree determinatieGraad2 = new DeterminatieTree(root, Graad.graad2);
                DeterminatieTree determinatieGraad3 = new DeterminatieTree(root, Graad.graad3);

                //Opstellen determinatietree eerste graad
                //TW < 10
                d1              = new DeterminatieVraag();
                d1.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurWarmsteMaand);
                d1.Parameter2   = parameterFactory.GeefConstanteParameter(10);
                d1.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDan);

                //TW < 0
                d2              = new DeterminatieVraag();
                d2.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurWarmsteMaand);
                d2.Parameter2   = parameterFactory.GeefConstanteParameter(0);
                d2.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDan);

                //(TM >= 10) < 4
                d3            = new DeterminatieVraag();
                d3.Parameter1 =
                    parameterFactory.GeefAantalMaandenParameter(AantalMaandenParameterEnum.aantalMaandenMetTemperatuur,
                                                                10, vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.GroterDanOfGelijkAan));
                d3.Parameter2   = parameterFactory.GeefConstanteParameter(4);
                d3.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDan);

                //TK < 18
                d4              = new DeterminatieVraag();
                d4.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurKoudsteMaand);
                d4.Parameter2   = parameterFactory.GeefConstanteParameter(18);
                d4.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDan);

                //NJ > 400
                d5              = new DeterminatieVraag();
                d5.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.TotaleJaarNeerslag);
                d5.Parameter2   = parameterFactory.GeefConstanteParameter(400);
                d5.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.GroterDan);

                //TK < -3
                d6              = new DeterminatieVraag();
                d6.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurKoudsteMaand);
                d6.Parameter2   = parameterFactory.GeefConstanteParameter(-3);
                d6.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDan);

                //TW < 22
                d7              = new DeterminatieVraag();
                d7.Parameter1   = parameterFactory.GeefSimpeleParameter(SimpeleParameterEnum.temperatuurWarmsteMaand);
                d7.Parameter2   = parameterFactory.GeefConstanteParameter(22);
                d7.Vergelijking = vergelijkingFactory.GeefVergelijking(VergelijkingenEnum.KleinerDan);

                //Tree opstellen eerste graad
                n7 = new VraagNode(d7);
                n7.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[19]));
                n7.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[20]));

                n6 = new VraagNode(d6);
                n6.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[18]));
                n6.VoegKindToeAanNeeNode(n7);

                n5 = new VraagNode(d5);
                n5.VoegKindToeAanJaNode(n6);
                n5.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[21]));

                n4 = new VraagNode(d4);
                n4.VoegKindToeAanJaNode(n5);
                n4.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[22]));

                n3 = new VraagNode(d3);
                n3.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[17]));
                n3.VoegKindToeAanNeeNode(n4);

                n2 = new VraagNode(d2);
                n2.VoegKindToeAanJaNode(new KenmerkNode(kenmerkList[15]));
                n2.VoegKindToeAanNeeNode(new KenmerkNode(kenmerkList[16]));

                root = new VraagNode(d1);
                root.VoegKindToeAanJaNode(n2);
                root.VoegKindToeAanNeeNode(n3);

                DeterminatieTree determinatieGraad1 = new DeterminatieTree(root, Graad.graad1);


                /*
                 * ==================================================================
                 * Proberen opslaan zeker?
                 * ==================================================================
                 */
                Continent[]        continenten = (new Continent[] { europa, afrika, azie, oceanie, noordAmerika, zuidAmerika });
                DeterminatieTree[] trees       = (new DeterminatieTree[] { determinatieGraad1, determinatieGraad2, determinatieGraad3 });
                context.Continenten.AddRange(continenten);
                context.DeterminatieTrees.AddRange(trees);
                context.Kenmerken.AddRange(kenmerkList.ToArray());
                context.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                string s = "Fout creatie databank ";
                foreach (var eve in e.EntityValidationErrors)
                {
                    s += String.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                       eve.Entry.Entity.GetType().Name, eve.Entry.GetValidationResult());
                    foreach (var ve in eve.ValidationErrors)
                    {
                        s += String.Format("- IsActief: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw new Exception(s);
            }
        }
 public NeerslagWinterVraag(Klimatogram k)
 {
     this.Vraag = "Hoeveelheid neerslag in de winter?";
     this.Klimatogram = k;
 }
 public override Kenmerk DetermineerKenmerk(Klimatogram klimatogram)
 {
     if (klimatogram == null) throw new ArgumentException("Argument klimatogram is null.");
     return Kenmerk;
 }
示例#25
0
 public void InitializeMyParameterTest()
 {
     klimatogramNoord = new KlimatogramNoordDummy();
     klimatogramZuid  = new KlimatogramZuidDummy();
 }
示例#26
0
        public void BuildUpTheTrees()
        {
            // Kenmerken opstellen
            correctKenmerk = new Kenmerk();
            correctKenmerk.KlimaatKenmerk = "correct";
            foutiefKenmerk = new Kenmerk();
            foutiefKenmerk.KlimaatKenmerk = "foutief";

            // KlimatogramVragen opstellen
            vraagWaar   = new KlimatogramVraagWaarDummy();
            vraagOnwaar = new KlimatogramVraagOnwaarDummy();

            // Klimatogram opstellen
            klimatogram = new KlimatogramNoordDummy();

            /*
             * Tree 1 opstellen
             * Kc
             */
            //Root zetten
            rootTree1        = new KenmerkNode(correctKenmerk);
            correctNodeTree1 = rootTree1;

            /*
             * Tree 2 opstellen
             * T -> Kc
             * Kw
             */
            //T
            Node vNode = new VraagNode(vraagWaar);

            correctNodeTree2 = new KenmerkNode(correctKenmerk);

            vNode.VoegKindToeAanJaNode(correctNodeTree2);
            vNode.VoegKindToeAanNeeNode(new KenmerkNode(foutiefKenmerk));
            //Root zetten
            rootTree2 = vNode;

            /*
             * Tree 3 opstellen
             * F2 -> T3 -> Kw
             *      Kw
             * T2 -> F1 -> Kw
             *      Kc
             * T1 -> Kw
             * Kw
             */
            //T1
            VraagNode t1 = new VraagNode(vraagWaar);

            correctNodeTree3 = new KenmerkNode(correctKenmerk);

            t1.VoegKindToeAanJaNode(new KenmerkNode(foutiefKenmerk));
            t1.VoegKindToeAanNeeNode(new KenmerkNode(foutiefKenmerk));
            //F1
            VraagNode f1 = new VraagNode(vraagOnwaar);

            f1.VoegKindToeAanJaNode(new KenmerkNode(foutiefKenmerk));
            f1.VoegKindToeAanNeeNode(correctNodeTree3);
            //T2
            VraagNode t2 = new VraagNode(vraagWaar);

            t2.VoegKindToeAanJaNode(f1);
            t2.VoegKindToeAanNeeNode(t1);
            //T3
            VraagNode t3 = new VraagNode(vraagWaar);

            t3.VoegKindToeAanJaNode(new KenmerkNode(foutiefKenmerk));
            t3.VoegKindToeAanNeeNode(new KenmerkNode(foutiefKenmerk));
            //F2
            VraagNode f2 = new VraagNode(vraagOnwaar);

            f2.VoegKindToeAanJaNode(t3);
            f2.VoegKindToeAanNeeNode(t2);
            //Root zetten
            rootTree3 = f2;
        }
示例#27
0
 public override double LosOp()
 {
     return(Klimatogram.GeefTemperatuurKoudsteMaand());
 }
示例#28
0
 public void LocatieTestSetup()
 {
     klimatogram = new KlimatogramNoordDummy();
 }
示例#29
0
 public TemperatuurKoudsteMaandVraag(Klimatogram k)
 {
     this.Vraag       = "Wat is de temperatuur van de koudste maand?";
     this.Klimatogram = k;
 }
示例#30
0
 public override double GeefParameterWaarde(Klimatogram klimatogram)
 {
     return(1.0);
 }
 public override double GeefParameterWaarde(Klimatogram klimatogram)
 {
     return klimatogram.GeefGemiddeldeJaarTemperatuur();
 }
示例#32
0
 public override IComparable BerekenWaarde(Klimatogram klimatogram)
 {
     return(klimatogram.Maanden.Count(m => m.Neerslag / _factor <= m.Temperatuur));
 }
示例#33
0
 public abstract Kenmerk DetermineerKenmerk(Klimatogram klimatogram);
示例#34
0
 public override IComparable BerekenWaarde(Klimatogram klimatogram)
 {
     return(klimatogram.Maanden.Sum(m => m.Neerslag));
 }
示例#35
0
 public override List <string> GeefMogelijkeAntwoorden(Klimatogram klimatogram)
 {
     return(null);
 }
示例#36
0
 public override IComparable BerekenWaarde(Klimatogram klimatogram)
 {
     return(klimatogram.Maanden.ToList().OrderByDescending(m => m.Temperatuur).ElementAt(3).Temperatuur);
 }
示例#37
0
 public override List <string> GeefMogelijkeAntwoorden(Klimatogram klimatogram)
 {
     string[] aantal = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };
     return(aantal.ToList());
 }
示例#38
0
 public override IComparable BerekenWaarde(Klimatogram klimatogram)
 {
     return(klimatogram.Maanden.Max(m => m.Temperatuur));
 }
示例#39
0
 public KoudsteMaandVraag(Klimatogram k)
 {
     this.Vraag       = "Wat is de koudste maand?";
     this.Klimatogram = k;
 }
 public override double GeefParameterWaarde(Klimatogram klimatogram)
 {
     return klimatogram.MaandGegevens.Count(m => Vergelijking.Vergelijk(m.Temperatuur, Constante));
 }
 public AantalDrogeMaandenVraag(Klimatogram k)
 {
     this.Vraag = "Hoeveel droge maanden zijn er?";
     this.Klimatogram = k;
 }
 public override double GeefParameterWaarde(Klimatogram klimatogram)
 {
     return(Constante);
 }
 public override double GeefParameterWaarde(Klimatogram klimatogram)
 {
     return(klimatogram.GeefAantalDrogeMaanden());
 }
 public abstract DeterminatieResultaat Determineer(Klimatogram klimatogram);
 public Kenmerk DetermineerKenmerk(Klimatogram klimatogram)
 {
     if (klimatogram == null) throw new ArgumentException("Klimatogram mag niet null zijn.");
     return Root.DetermineerKenmerk(klimatogram);
 }
示例#46
0
 public override bool LosOp(Klimatogram klimatogram)
 {
     return(true);
 }
 public Node GaNaarCorrectKenmerk(Klimatogram klimatogram)
 {
     Keuzes = _root.GaNaarCorrectKenmerk(klimatogram, new List<bool>());
     return GeefHuidigeNode();
 }
示例#48
0
 public override double LosOp()
 {
     return((double)Klimatogram.GeefDeKoudsteMaand());
 }
 public override double GeefParameterWaarde(Klimatogram klimatogram)
 {
     return klimatogram.GeefTotaleJaarNeerslag();
 }