Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            ExpTree tree = new ExpTree("A+B+3-(E3-54)"); //default starting value of our Expression tree.

            int number = 0;

            tree.SetVar("A", 2); //setting some example values to the variables
            tree.SetVar("B", 5);
            do
            {
                Console.WriteLine("Menu: (current expression: {0})", tree.ToString()); //menu
                Console.WriteLine("\t1 = Enter a new expression");
                Console.WriteLine("\t2 = Set a variable value");
                Console.WriteLine("\t3 = Evaluate tree");
                Console.WriteLine("\t4 = Quit");
                bool isInt = int.TryParse(Console.ReadLine(), out number); //gets user input and stres it in number if it is an integer.
                if (isInt)
                {
                    switch (number)
                    {
                    case 1:
                        Console.Write("Enter new expression: ");
                        string userInput = Console.ReadLine();
                        tree = new ExpTree(userInput);     //makes a new tree with the new expression
                        break;

                    case 2:
                        Console.Write("Enter variable name: ");
                        string userInputVariable = Console.ReadLine();
                        Console.Write("Enter variable value: ");
                        string userInputValue = Console.ReadLine();
                        bool   isDouble       = double.TryParse(userInputValue, out double parsedDouble); //stores the user input as a double if it is a double
                        if (isDouble)                                                                     //if the value inputted was a double
                        {
                            tree.SetVar(userInputVariable, parsedDouble);                                 //set the variable to that double
                        }
                        break;

                    case 3:
                        Console.WriteLine(tree.Eval());
                        break;
                    }
                }
            } while (number != 4); //runs until 4 is typed in and then falls out to main.
        }