Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Regex     rx      = new Regex("[0-9*/+-]+");
            bool      loop    = true;
            ArrayList arrlist = new ArrayList();
            string    var;
            bool      backTop = true;
            string    restart = "";

            Console.WriteLine(DateTime.Now + "\n");
            Console.ForegroundColor = ConsoleColor.Green;

            Console.WriteLine("Välkommen till Gustavs miniräknare!\n");

            Console.WriteLine("Instruktioner : \n");
            Console.WriteLine("För att starta minräknaren så börjar du med att skriva \"ja\" ");
            Console.WriteLine("och sedan trycker du på Enter. Då startar miniräknaren och du kan börja räkna. \n");
            Console.WriteLine("För att räkna anger du ett tal per rad och sedan en operator på nästkommande rad.");
            Console.WriteLine("Du kan använda så många tal och operatorer du önskar.");
            Console.WriteLine("För att sedan får ett svar och räkna ut ditt tal, skriver du helt enkelt \"=\" på en egen rad och trycker enter.\n");

            Console.WriteLine("Vill du starta miniräknaren? ja/nej");
            string start = Console.ReadLine();

            if (start == "ja")
            {
                loop = true;;
                Console.Clear();
            }
            else
            {
                Console.WriteLine("Tack ändå");
                backTop = false;
            }
            while (backTop)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(DateTime.Now + "\n");
                Console.WriteLine("Välkommen till Gustavs miniräknare!\n");


                Console.ResetColor();
                while (loop)
                {
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine("enter a number or operator // type = to get the answer");
                    var = Console.ReadLine();

                    if (rx.IsMatch(var))

                    {
                        arrlist.Add(var);
                    }
                    else if (var.Equals("="))
                    {
                        loop = false;
                        Console.Beep();
                    }
                    else
                    {
                        Console.WriteLine("invalid number or operator");
                    }
                }


                try
                {
                    int i = 0;



                    while (i < arrlist.Count)
                    {
                        if (arrlist[i].Equals("*"))
                        {
                            arrlist[i - 1] = Convert.ToString(Convert.ToDouble(arrlist[i - 1]) * Convert.ToDouble(arrlist[i + 1]));
                            arrlist.RemoveAt(i);
                            arrlist.RemoveAt(i);
                            i = 0;
                        }

                        else if (arrlist[i].Equals("/"))

                        {
                            arrlist[i - 1] = Convert.ToString(Convert.ToDouble(arrlist[i - 1]) / Convert.ToDouble(arrlist[i + 1]));
                            arrlist.RemoveAt(i);
                            arrlist.RemoveAt(i);
                            i = 0;
                        }


                        i++;
                    }
                    i = 0;
                    while (i < arrlist.Count)

                    {
                        if (arrlist[i].Equals("+"))
                        {
                            arrlist[i - 1] = Convert.ToString(Convert.ToDouble(arrlist[i - 1]) + Convert.ToDouble(arrlist[i + 1]));
                            arrlist.RemoveAt(i);
                            arrlist.RemoveAt(i);
                            i = 0;
                        }
                        else if (arrlist[i].Equals("-"))
                        {
                            arrlist[i - 1] = Convert.ToString(Convert.ToDouble(arrlist[i - 1]) - Convert.ToDouble(arrlist[i + 1]));
                            arrlist.RemoveAt(i);
                            arrlist.RemoveAt(i);
                            i = 0;
                        }

                        i++;
                    }


                    Console.WriteLine(arrlist[0]);

                    Console.WriteLine("do you want to restart the calculator? yes/no?");
                    restart = Console.ReadLine();
                    if (restart == "yes")
                    {
                        arrlist.Clear();
                        loop = true;
                        Console.Clear();
                    }
                    else
                    {
                        Console.WriteLine("Thank you for using my calculator");
                        backTop = false;
                    }
                }

                catch (Exception e)
                {
                    Console.WriteLine(DateTime.Now);
                    Console.WriteLine("This is the error");
                    Console.WriteLine(e.StackTrace);
                    backTop = false;
                }
            }
        }
        static void Main(string[] args)
        {
            Vehicle[] crafts = new Vehicle[5] {
                new Aircraft("SU-27", 16.9), new Aircraft("MIG-29", 10.9),
                new Amphibian("DINGO", 3.6), new Amphibian("BE-200", 27.6), new Aircraft("SU-35", 19.0)
            };
            ArrayList arrayList = new ArrayList();

            arrayList.AddRange(crafts);
            int choice = 11;

            do
            {
                Console.WriteLine("**************************************");
                Console.WriteLine("*       Главное меню                 *");
                Console.WriteLine("*       выберите действие            *");
                Console.WriteLine("**************************************");
                Console.WriteLine("1 - просмотр коллекции");
                Console.WriteLine("2 - добавление элемента (конструктор с двумя параметрами)");
                Console.WriteLine("3 - добавление элемента по указанному индексу");
                Console.WriteLine("4 - нахождение элемента с начала коллекции");
                Console.WriteLine("5 - нахождение элемента с конца коллекции");
                Console.WriteLine("6 - удаление элемента по индексу");
                Console.WriteLine("7 - удаление элемента по значению");
                Console.WriteLine("8 - реверс коллекции");
                Console.WriteLine("9 - сортировка");
                Console.WriteLine("10 - выполнение методов всех обьектов, поддерживающих Interface2");
                Console.WriteLine("0 -  выход");
                choice = int.Parse(Console.ReadLine());
                switch (choice)
                {
                case 1:
                    ShowList(arrayList);
                    break;

                case 2:
                    AddObject(arrayList);
                    break;

                case 3:
                    AddByIndex(arrayList);
                    break;

                case 4:
                    Console.WriteLine("Элемент с начала коллекци");
                    ((Vehicle)arrayList[0]).Print1();
                    break;

                case 5:
                    Console.WriteLine("Элемент с конца коллекци");
                    ((Vehicle)arrayList[(arrayList.Count) - 1]).Print1();
                    break;

                case 6:
                    Console.WriteLine("Ввдите индекс удаляемого обьекта");
                    int delIndex = int.Parse(Console.ReadLine());
                    if (delIndex < 0 || delIndex >= (arrayList.Count))
                    {
                        Console.WriteLine("Неверный индекс!");
                    }
                    else
                    {
                        arrayList.RemoveAt(delIndex);
                        Console.WriteLine("Элемент с индексом {0} успешно удален из коллекции", delIndex);
                    }
                    break;

                case 7:
                    Console.WriteLine("*********Удаление элемента по значению*************");
                    Console.WriteLine("Введите имя удаляемого обьекта...");
                    string delObjectname = Console.ReadLine();
                    int    craftIndex    = 0;
                    int    craftIndex1   = 0;
                    bool   condition     = false;
                    foreach (Vehicle craft in arrayList)
                    {
                        if (delObjectname == craft.name)
                        {
                            craftIndex1 = craftIndex;
                            condition   = true;
                        }
                        craftIndex++;
                    }
                    if (condition)
                    {
                        Console.WriteLine("Элемент с указанным значением существует в коллекции и будет удален");
                        arrayList.RemoveAt(craftIndex1);
                    }
                    else
                    {
                        Console.WriteLine("Элемент с указанным значением не найден!");
                    }
                    break;

                case 8:
                    Console.WriteLine("Реверс коллекции выполнен");
                    arrayList.Reverse();
                    break;

                case 9:
                    Console.WriteLine("Сортировка коллекции выполнена");
                    arrayList.Sort();
                    break;

                case 10:
                    Console.WriteLine("Выполнение методов всех обьектов, поддерживающих интерфейс ISwiming");
                    foreach (Vehicle craft in arrayList)
                    {
                        if (craft is ISwiming)
                        {
                            ((ISwiming)craft).Swim();
                        }
                    }
                    break;

                default: return;
                }
            } while (choice != 0);
        }