예제 #1
0
        //Køres kun i generation 0
        void GenerateFamilyMember(int index, int gen)
        {
            PersonInfo pi        = new PersonInfo();
            PersonInfo partnerPi = new PersonInfo();

            //Sætter generationen
            pi.Generation = gen;

            //Sætter ID
            pi.ID = this.ID;

            //Skabningen af køn
            if (index == 0)
            {
                pi.Gender = "m";
            }
            else if (index == 1)
            {
                pi.Gender = "f";
            }

            //Skabningen af navn
            if (pi.Gender == "m")
            {
                index   = rnd.Next(mNames.Count);
                pi.Name = mNames[index];
            }
            else if (pi.Gender == "f")
            {
                index   = rnd.Next(fNames.Count);
                pi.Name = fNames[index];
            }

            //Skabning af gift status
            pi.IsMarried = 1;

            //Skabningen af efternavn
            index      = rnd.Next(surnames.Count);
            pi.Surname = surnames[index];

            //Skabningen af alder
            index  = rnd.Next(60, 101);
            pi.Age = index;

            //Skabning af fødselsår
            index       = rnd.Next(1900, 2000);
            pi.YearBorn = index;

            //Skabning af dødsår
            pi.YearDeath = pi.YearBorn + pi.Age;

            //Skabning af fødselsdato
            pi.DateBorn = DateOf();

            //Skabning af dødsstatus
            pi.IsDead = 1;

            //Skabning af dødsdato
            pi.DateDeath = DateOf();

            //Skabningen af addressen
            index      = rnd.Next(address.Count);
            pi.Address = address[index] + " " + rnd.Next(1, 300);

            //Skabningen af byen
            index   = rnd.Next(city.Count);
            pi.City = city[index];

            //Skabning af antal af børn
            index      = rnd.Next(2, 4);
            pi.KidsNum = index;

            //Skabning & tilkobling af partnerPi
            partnerPi    = GenerateFamilyMember(pi);
            pi.PartnerID = partnerPi.ID;

            //Skaber barn med forældres informationer
            gen++;
            for (int kid = 1; kid <= pi.KidsNum; kid++)
            {
                GenerateFamilyMember(pi, partnerPi, gen, kid);
            }

            DatabaseQuerys p = new DatabaseQuerys();

            p.AddRow(pi);
            p.AddRow(partnerPi);
        }
예제 #2
0
        //Bruges til skabning af alle generationer efter generation 0
        void GenerateFamilyMember(PersonInfo dadPi, PersonInfo momPi, int gen, int kid)
        {
            PersonInfo pi        = new PersonInfo();
            PersonInfo partnerPi = new PersonInfo();
            int        index;

            ID++;

            //Sætter generationen
            pi.Generation = gen;

            //Sætter ID
            pi.ID = ID;

            index = rnd.Next(0, 2);
            //Skabningen af køn
            if (index == 0)
            {
                pi.Gender = "m";
            }
            else if (index == 1)
            {
                pi.Gender = "f";
            }

            //Skabningen af navn
            if (pi.Gender == "m")
            {
                index   = rnd.Next(mNames.Count);
                pi.Name = mNames[index];
            }
            else if (pi.Gender == "f")
            {
                index   = rnd.Next(fNames.Count);
                pi.Name = fNames[index];
            }

            //Skabningen af alder
            switch (gen)
            {
            default:
                index  = rnd.Next(60, 101);
                pi.Age = index;
                break;

            case maxGen - 1:
                index  = rnd.Next(35, 60);
                pi.Age = index;
                break;

            case maxGen:
                if (dadPi.Age < 35 && momPi.Age < 35)
                {
                    index = rnd.Next(0, 15);
                }
                else if (dadPi.Age < 40)
                {
                    index = rnd.Next(0, 20);
                }
                else if (dadPi.Age < 45)
                {
                    index = rnd.Next(5, 25);
                }
                else if (dadPi.Age < 50)
                {
                    index = rnd.Next(10, 30);
                }
                else if (dadPi.Age < 55)
                {
                    index = rnd.Next(15, 35);
                }
                pi.Age = index;
                break;
            }

            //Bedømmelse af personen er gift
            index = rnd.Next(0, 100);
            if (pi.Age > 25)
            {
                if (index <= 85)
                {
                    pi.IsMarried = 1;
                }
                else
                {
                    pi.IsMarried = 0;
                }
            }

            //Skabningen af efternavn
            if (pi.IsMarried == 1)
            {
                index      = rnd.Next(surnames.Count);
                pi.Surname = surnames[index];
            }
            else
            {
                pi.Surname = dadPi.Surname;
            }

            //Skabning af fødselsår
            pi.YearBorn = dadPi.YearBorn + rnd.Next(18, 50);

            //Skabning af død
            index = rnd.Next(0, 1000);
            if (pi.Generation != maxGen - 1 && pi.Generation != maxGen || index >= 999)
            {
                pi.IsDead = 1;
            }

            //Skabning af dødsår
            if (pi.IsDead == 1)
            {
                pi.YearDeath = pi.YearBorn + pi.Age;
            }

            //Skabning af fødselsdato
            pi.DateBorn = DateOf();

            //Skabning af dødsdato
            if (pi.IsDead == 1)
            {
                pi.DateDeath = DateOf();
            }

            //Indsæt ID til forældres PersonInfo
            switch (kid)
            {
            case 1:
                dadPi.Kid1ID = pi.ID;
                momPi.Kid1ID = pi.ID;
                break;

            case 2:
                dadPi.Kid2ID = pi.ID;
                momPi.Kid2ID = pi.ID;
                break;

            case 3:
                dadPi.Kid3ID = pi.ID;
                momPi.Kid3ID = pi.ID;
                break;

            case 4:
                dadPi.Kid4ID = pi.ID;
                momPi.Kid4ID = pi.ID;
                break;
            }

            //Indsættelse af fatherID og momID
            pi.FatherID = dadPi.ID;
            pi.MotherID = momPi.ID;

            //Skabningen af addressen
            index      = rnd.Next(address.Count);
            pi.Address = address[index] + " " + rnd.Next(1, 300);

            //Skabningen af byen
            index   = rnd.Next(city.Count);
            pi.City = city[index];

            //Skabning af antal af børn
            if (gen != maxGen && pi.IsMarried == 1)
            {
                index = rnd.Next(1, 100);
                if (index < 95)
                {
                    if (pi.Age >= 35)
                    {
                        index = rnd.Next(1, 4);
                    }
                    else if (pi.Age >= 40)
                    {
                        index = rnd.Next(1, 5);
                    }
                    pi.KidsNum = index;
                }
                else
                {
                    pi.KidsNum = 0;
                }
            }
            else
            {
                pi.KidsNum = 0;
            }

            //Følgene gøres kun hvis personen er gift
            if (pi.IsMarried == 1)
            {
                //Skabning & tilkobling af partnerPi
                partnerPi    = GenerateFamilyMember(pi);
                pi.PartnerID = partnerPi.ID;


                //Skaber barn med forældres informationer
                gen++;
                if (gen <= maxGen)
                {
                    for (kid = 1; kid <= pi.KidsNum; kid++)
                    {
                        GenerateFamilyMember(pi, partnerPi, gen, kid);
                    }
                }
            }

            //Indskriv informationer til database
            DatabaseQuerys p = new DatabaseQuerys();

            p.AddRow(pi);
            if (pi.IsMarried == 1)
            {
                p.AddRow(partnerPi);
            }
        }