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); }