Ejemplo n.º 1
0
        private static string PrintParams(MortalityParam mortMaternal, MortalityParam mortSibComp, MortalityParam mortSibHelp)
        {
            string strParams = "----" + System.Environment.NewLine + "Mortality parameters for this run:\n"
                               + string.Format("Risk of mortality during childbirth: {0}\n", Enum.GetName(typeof(MortalityParam), mortMaternal))
                               + string.Format("Sibling competition: {0}\n", Enum.GetName(typeof(MortalityParam), mortSibHelp))
                               + string.Format("Juvenile help: {0}\n", Enum.GetName(typeof(MortalityParam), mortSibHelp))
            ;

            return(strParams);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Parse string arguments passed to program. Return level of mortality parameter
        /// </summary>
        /// <param name="arg">String argument passed to model</param>
        /// <returns>MortalityParam: high, medium, low or none (default) </returns>
        private static MortalityParam parseArgs(string arg)
        {
            MortalityParam returnedValue = MortalityParam.None; // default to none

            switch (arg.ToUpper())
            {
            case "HIGH":
                returnedValue = MortalityParam.High;
                break;

            case "H":
                returnedValue = MortalityParam.High;
                break;

            case "MEDIUM":
                returnedValue = MortalityParam.Medium;
                break;

            case "M":
                returnedValue = MortalityParam.Medium;
                break;

            case "LOW":
                returnedValue = MortalityParam.Low;
                break;

            case "L":
                returnedValue = MortalityParam.Low;
                break;

            default:
                returnedValue = MortalityParam.None;
                break;
            }

            return(returnedValue);
        }
Ejemplo n.º 3
0
        private static void interactiveMode()
        {
            Console.WriteLine("(Running in interactive mode)");
            Console.WriteLine();

            Console.WriteLine("Please enter mortality parameters (h=high, m=medium, l=low, n=none):");
            Console.Write("Risk of mortality during childbirth: ");
            MortalityParam p1 = parseArgs(Console.ReadLine());

            Console.Write("Intensity of sibling competition: ");
            MortalityParam p2 = parseArgs(Console.ReadLine());

            Console.Write("Level of juvenile help: ");
            MortalityParam p3 = parseArgs(Console.ReadLine());

            Console.WriteLine(PrintParams(p1, p2, p3));

            Console.Write("Enter Siler parameter a1: ");
            double silerA1 = double.Parse(Console.ReadLine());

            Console.Write("Enter Siler parameter b1: ");
            double silerB1 = double.Parse(Console.ReadLine());

            Console.Write("Enter Siler parameter a2: ");
            double silerA2 = double.Parse(Console.ReadLine());

            Console.Write("Enter Siler parameter a3: ");
            double silerA3 = double.Parse(Console.ReadLine());

            Console.Write("Enter Siler parameter b3: ");
            double silerB3 = double.Parse(Console.ReadLine());

            bool done = false;

            // create and initialise model
            sdpInteractive = new BirthIntervals();

            // set parameters of model
            sdpInteractive.childbirthMortality = p1;
            sdpInteractive.siblingCompetition  = p2;
            sdpInteractive.siblingHelp         = p3;

            // set Siler params
            sdpInteractive.silerA1 = silerA1;
            sdpInteractive.silerB1 = silerB1;
            sdpInteractive.silerA2 = silerA2;
            sdpInteractive.silerA3 = silerA3;
            sdpInteractive.silerB3 = silerB3;

            do
            {
                // Main menu
                Console.WriteLine();
                Console.WriteLine("1 = calculate optimal interbirth intervals (backward iteration)");
                Console.WriteLine("2 = calculate population distributions (forward iteration)");
                Console.WriteLine("3 = calculate stats");
                Console.WriteLine("4 = full model run");
                Console.Write("Please select an option (0 = quit): ");

                string input = Console.ReadLine();

                int option;

                try
                {
                    option = int.Parse(input);
                }
                catch (FormatException e)
                {
                    Console.WriteLine("Invalid option. Try again");
                    continue;
                }

                if (option == 0)
                {
                    done = true;
                    continue;
                }
                else if (option == 1)
                {
                    back();
                }
                else if (option == 2)
                {
                    forward();
                }
                else if (option == 3)
                {
                    stats();
                }
                else if (option == 4)
                {
                    back();
                    forward();
                    stats();
                }
                else
                {
                    Console.WriteLine("{0} is an invalid option.", option);
                }
            } while (!done);
        }