/// <summary>
        ///
        /// </summary>
        public void RunCheckParanthesis()
        {
            /*
             * Use this method to check if the paranthesis in a string is Correct or incorrect.
             * Example of correct: (()), {}, [({})],  List<int> list = new List<int>() { 1, 2, 3, 4 };
             * Example of incorrect: (()]), [), {[()}],  List<int> list = new List<int>() { 1, 2, 3, 4 );
             */

            bool   bValidInput = false;
            bool   bRun        = true;
            string strInput    = String.Empty;

            do
            {
                // Rensa
                strInput = String.Empty;
                Console.Clear();

                // Visa menyn
                Console.WriteLine(MenuFactory.GetMenu(MenuType.CHECKPARANTHESIS));

                strInput = Console.ReadLine();

                if (!String.IsNullOrWhiteSpace(strInput))
                {
                    strInput = strInput.Trim();
                    if (strInput.StartsWith('0'))
                    {    // Användaren vill avsluta och återgå till huvudmenyn
                        //Console.ReadLine();
                        bRun = false;
                    }
                    else if (strInput.StartsWith('1'))
                    {
                        Simulation();

                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                    else
                    {
                        bValidInput = CheckIfValidParantheses(strInput);
                        if (bValidInput == false)
                        {
                            Console.WriteLine(strInput + " * Not valid input *");
                        }
                        else
                        {
                            Console.WriteLine(strInput + " * Valid input *");
                        }


                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                }
            } while (bRun);
        }
Esempio n. 2
0
        /// <summary>
        /// Examines the datastructure Stack
        ///
        /// Simulera ännu en gång ICA-kö på papper. Denna gång med en stack . Varför är det inte så smart att använda en stack i det här fallet?
        ///     En stack är en så kallad LIFO samling av data. Det innebär att det som adderades sist är det som hämtas först.
        ///     Vilket är tvärt imot en kö som är en så kalald FIFO samling av data. Där den som adderades först hämtas först
        ///
        /// </summary>
        public void RunExamineStack()
        {
            /*
             * Loop this method until the user inputs something to exit to main menue.
             * Create a switch with cases to push or pop items
             * Make sure to look at the stack after pushing and and poping to see how it behaves
             */
            // Stack med inmatning från användaren
            Stack <string> stacken  = new Stack <string>();
            bool           bRun     = true;
            string         strInput = String.Empty;

            do
            {
                // Rensa
                strInput = String.Empty;
                Console.Clear();

                // Visa menyn
                Console.WriteLine(MenuFactory.GetMenu(MenuType.EXAMINESTACK));

                strInput = Console.ReadLine();

                if (!String.IsNullOrWhiteSpace(strInput))
                {
                    strInput = strInput.Trim();

                    if (strInput.StartsWith('0'))
                    {// Användaren vill avsluta och återgå till huvudmenyn
                        //Console.ReadLine();
                        bRun = false;
                    }
                    else
                    {
                        // Spara varje tecken från input i en stack
                        foreach (char ch in strInput)
                        {
                            stacken.Push(ch.ToString());
                        }

                        PrintStackToConsole(stacken);

                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                }
            } while (bRun);
        }
Esempio n. 3
0
        /// <summary>
        /// Examines the datastructure List
        ///
        /// Svar på frågor
        /// När ökar listans kapacitet? (Alltså den underliggande arrayens storlek)
        ///     Listans kapacitet ökas när man når nuvarande kapacitet
        ///
        /// Med hur mycket ökar kapaciteten?
        /// Storleken på listan dubblas
        ///
        /// Varför ökar inte listans kapacitet i samma takt som element läggs till?
        ///     Det skulle leda till att listan måste allokeras om för varje element som läggs till. Ger dålig prestanda
        ///
        /// Minskar kapaciteten när element tas bort ur listan?
        ///     Nej
        ///
        /// När är det då fördelaktigt att använda en egendefinierad array istället för en lista?
        ///     Om man vet hur många elemet som skall lagras i arrayen och att man inte ändrar antalet element i arrayen
        ///
        /// </summary>
        public void RunExamineList()
        {
            /*
             * Loop this method untill the user inputs something to exit to main menue.
             * Create a switch statement with cases '+' and '-'
             * '+': Add the rest of the input to the list (The user could write +Adam and "Adam" would be added to the list)
             * '-': Remove the rest of the input from the list (The user could write -Adam and "Adam" would be removed from the list)
             * In both cases, look at the count and capacity of the list
             * As a default case, tell them to use only + or -
             * Below you can see some inspirational code to begin working.
             */

            //List<string> theList = new List<string>();
            //string input = Console.ReadLine();
            //char nav = input[0];
            //string value = input.substring(1);

            //switch(nav){...}

            // Lista med inmatningar från användaren
            List <string> lsInput  = new List <string>();
            bool          bRun     = true;
            string        strInput = String.Empty;

            do
            {
                // Rensa
                strInput = String.Empty;
                Console.Clear();

                // Visa menyn
                Console.WriteLine(MenuFactory.GetMenu(MenuType.EXAMINELIST));

                strInput = Console.ReadLine();

                if (!String.IsNullOrWhiteSpace(strInput))
                {
                    strInput = strInput.Trim();

                    if (strInput.StartsWith('+') && strInput.Length > 1)
                    {// Användaren vill lägga till en text
                        Console.WriteLine(System.Environment.NewLine);

                        // Hämta inmatningen från tecken 1
                        strInput = strInput.Substring(1);
                        strInput = strInput?.Trim();
                        if (strInput?.Length > 0)
                        {// Lägg till texten till listan
                            lsInput.Add(strInput);
                        }

                        PrintListToConsole(lsInput);

                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                    else if (strInput.StartsWith('-') && strInput.Length > 1)
                    {// Användaren vill radera en text
                        Console.WriteLine(System.Environment.NewLine);

                        // Hämta inmatningen från tecken 1
                        strInput = strInput.Substring(1);
                        strInput = strInput?.Trim();
                        if (strInput?.Length > 0)
                        {// Radera texten från listan
                            lsInput.Remove(strInput);
                        }

                        PrintListToConsole(lsInput);

                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                    else if (strInput.StartsWith('0'))
                    {// Användaren vill avsluta och återgå till huvudmenyn
                        Console.ReadLine();
                        bRun = false;
                    }
                    else if (strInput.StartsWith('1'))
                    {// Användaren vill att innehållet i listan visas
                        PrintListToConsole(lsInput);

                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                    else
                    {
                        Console.WriteLine("Använd + för att lägga till text, - för att radera text, 0 för att återgå till huvudmenyn och 1 för att visa listan");
                        Console.ReadLine();
                    }
                }
            } while (bRun);
        }
        /// <summary>
        /// Examines the datastructure Queue
        /// </summary>
        public void RunExamineQueue()
        {
            /*
             * Loop this method untill the user inputs something to exit to main menue.
             * Create a switch with cases to enqueue items or dequeue items
             * Make sure to look at the queue after Enqueueing and Dequeueing to see how it behaves
             */

            // Queue med inmatningar från användaren
            Queue <string> queue    = new Queue <string>();
            bool           bRun     = true;
            string         strInput = String.Empty;

            do
            {
                // Rensa
                strInput = String.Empty;
                Console.Clear();

                // Visa menyn
                Console.WriteLine(MenuFactory.GetMenu(MenuType.EXAMINEQUEUE));

                strInput = Console.ReadLine();

                if (!String.IsNullOrWhiteSpace(strInput))
                {
                    strInput = strInput.Trim();

                    if (strInput.StartsWith('+') && strInput.Length > 1)
                    {// Användaren vill lägga till en person i kö
                        Console.WriteLine(System.Environment.NewLine);

                        // Hämta inmatningen från tecken 1
                        strInput = strInput.Substring(1);
                        strInput = strInput?.Trim();
                        if (strInput?.Length > 0)
                        {// Lägg till namnet på personen till kö
                            queue.Enqueue(strInput);
                        }

                        PrintQueueToConsole(queue);

                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                    else if (strInput.StartsWith('0'))
                    {// Användaren vill avsluta och återgå till huvudmenyn
                        //Console.ReadLine();
                        bRun = false;
                    }
                    else if (strInput.StartsWith('1'))
                    {// Användaren vill att innehållet i kö visas
                        PrintQueueToConsole(queue);

                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                    else if (strInput.StartsWith('2'))
                    {// Användaren vill att en person lämnar kö
                        queue.Dequeue();
                        PrintQueueToConsole(queue);

                        Console.WriteLine("Enter för att gå vidare");
                        Console.ReadLine();
                    }
                    else if (strInput.StartsWith('3'))
                    {// Simulera en kö
                        SimuleraEnKo();
                    }
                    else
                    {
                        Console.WriteLine("Använd + för att lägga till person, 0 för att återgå till huvudmenyn, 1 för att visa kö, 2 för att en person skall lämna kö och 3 för att simulera en kö");
                        Console.ReadLine();
                    }
                }
            } while (bRun);
        }