Beispiel #1
0
        private static void InputNumOfMasts(SailingShip elem)
        {
            Console.WriteLine("Введите кол-во мачт парусника(оставьте пустым для генерации с помощью ДСЧ):");
            bool   check  = false;
            string inpStr = "";

            while (!check)
            {
                try
                {
                    inpStr = Console.ReadLine();
                    if (inpStr == "")
                    {
                        return;
                    }
                    elem.NumOfMasts = Convert.ToInt32(inpStr);
                    check           = true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    check = false;
                }
            }
        }
Beispiel #2
0
        private static void InputDateReleased(SailingShip elem)
        {
            Console.WriteLine("Введите дату выпуска корабля в формате дд/мм/гггг или дд.мм.гггг" +
                              "(оставьте пустым для генерации с помощью ДСЧ):");
            bool   check  = false;
            string inpStr = "";

            while (!check)
            {
                try
                {
                    inpStr = Console.ReadLine();
                    if (inpStr == "")
                    {
                        return;
                    }
                    elem.DateReleased = inpStr;
                    check             = true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    check = false;
                }
            }
        }
Beispiel #3
0
        private static void InputMaxSpeed(SailingShip elem)
        {
            Console.WriteLine("Введите максимальную скорость в узлах (оставьте пустым для генерации с помощью ДСЧ):");
            bool   check  = false;
            string inpStr = "";

            while (!check)
            {
                try
                {
                    inpStr = Console.ReadLine();
                    if (inpStr == "")
                    {
                        return;
                    }
                    elem.MaxSpeed = Convert.ToInt32(inpStr);
                    check         = true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    check = false;
                }
            }
        }
Beispiel #4
0
        private static void InputName(SailingShip elem)
        {
            Console.WriteLine("Введите имя нового корабля (оставьте пустым для генерации с помощью ДСЧ):");
            string inpStr = Console.ReadLine();

            if (inpStr != "")
            {
                elem.Name = inpStr;
            }
        }
Beispiel #5
0
 public SailingShip GenerateNewShip()
 {
     while (true)
     {
         SailingShip sailingShip = new SailingShip();
         if (!dictStringSail.ContainsKey(sailingShip.BaseShip.ToString()))
         {
             return(sailingShip);
         }
     }
 }
Beispiel #6
0
        private static SailingShip InputElemFromKeyboard()
        {
            SailingShip elem = new SailingShip();

            InputName(elem);
            InputMaxSpeed(elem);
            InputDateReleased(elem);
            InputNumOfSails(elem);
            InputNumOfMasts(elem);
            return(elem);
        }
Beispiel #7
0
 public void AddElem(SailingShip elem)
 {
     if (dictStringSail.ContainsKey(elem.BaseShip.ToString()))
     {
         throw new ContainException("Элемент с таким ключом уже существует в коллекции");
     }
     Console.WriteLine("Элемент {0} добавлен в коллекции", elem);
     queueShip.Enqueue(elem.BaseShip);
     queueString.Enqueue(elem.BaseShip.ToString());
     dictShipSail.Add(elem.BaseShip, elem);
     dictStringSail.Add(elem.BaseShip.ToString(), elem);
 }
Beispiel #8
0
 private void GenerateCollections(int size)
 {
     queueShip      = new Queue <Ship>(size);
     queueString    = new Queue <string>(size);
     dictShipSail   = new SortedDictionary <Ship, SailingShip>();
     dictStringSail = new SortedDictionary <string, SailingShip>();
     for (int i = 0; i < size;)
     {
         SailingShip curShip = new SailingShip();
         try { AddElem(curShip); i++; }
         catch { }
     }
 }
Beispiel #9
0
 public void FindElem(SailingShip elem)
 {
     System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
     Console.WriteLine("Поиск элемента {0} в коллекции Queue<Ship>", elem);
     sw.Start();
     if (!queueShip.Contains(elem.BaseShip))
     {
         Console.WriteLine("Элемент отсутствует в коллекции");
     }
     sw.Stop();
     Console.WriteLine("Результат: {0}\n", sw.ElapsedMilliseconds / 100.0);
     Console.WriteLine("Поиск элемента в коллекции Queue<string>");
     sw.Restart();
     if (!queueString.Contains(elem.BaseShip.ToString()))
     {
         Console.WriteLine("Элемент отсутствует в коллекции");
     }
     sw.Stop();
     Console.WriteLine("Результат: {0}\n", sw.ElapsedMilliseconds / 100.0);
     Console.WriteLine("Поиск элемента в коллекции SortedDictionary<Ship, SailingShip>");
     sw.Restart();
     if (!dictShipSail.ContainsKey(elem.BaseShip))
     {
         Console.WriteLine("Элемент с таким ключом отсутствует в коллекции");
     }
     sw.Stop();
     Console.WriteLine("Результат (.ContainsKey): {0}", sw.ElapsedMilliseconds / 100.0);
     sw.Restart();
     if (!dictShipSail.ContainsValue(elem))
     {
         Console.WriteLine("Элемент с таким значением отсутствует в коллекции");
     }
     sw.Stop();
     Console.WriteLine("Результат (.ContainsValue): {0}\n", sw.ElapsedMilliseconds / 100.0);
     Console.WriteLine("Поиск элемента в коллекции SortedDictionary<string, SailingShip>");
     sw.Restart();
     if (!dictStringSail.ContainsKey(elem.BaseShip.ToString()))
     {
         Console.WriteLine("Элемент с таким ключом отсутствует в коллекции");
     }
     sw.Stop();
     Console.WriteLine("Результат (.ContainsKey): {0}", sw.ElapsedMilliseconds / 100.0);
 }
Beispiel #10
0
        static public void sendSailSailingShip()
        {
            List <SailingShip> sailingShipsIsPaid = getIsPaidListSailingShips();

            Console.WriteLine("Выберите нужный вам корабль:");

            if (printListSailingShip(sailingShipsIsPaid) == 0)
            {
                Console.WriteLine("У вас пока что нету ни одного парахода.");
                Console.ReadLine();

                return;
            }

            int id = inputButton(1, sailingShipsIsPaid.Count()) - 1;

            Console.Clear();

            SailingShip sailingShip = sailingShipsIsPaid[id];
            int         locationId;

            while (true)
            {
                locationId = selectLocation();
                if (locationId == sailingShip.LocationId)
                {
                    Console.Clear();
                    Console.WriteLine("Корабль уже в этом порту. Выберите коректный порт.\n");
                }
                else
                {
                    break;
                }
            }

            var rand = new Random();

            Console.WriteLine($"Количество груза: {sailingShip.SendSail(locationId, nowDate, rand.Next(steamships[id].MaxNumberOfPassengers))}");
        }
Beispiel #11
0
 public void FindElem(int pos)
 {
     try
     {
         System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
         Ship curShip = queueShip.ElementAt <Ship>(pos);
         Console.WriteLine("Поиск элемента {0} в коллекции Queue<Ship>", curShip);
         sw.Start();
         queueShip.Contains(curShip);
         sw.Stop();
         Console.WriteLine("Результат: {0}\n", sw.ElapsedMilliseconds / 100.0);
         Console.WriteLine("Поиск элемента в коллекции Queue<string>");
         sw.Start();
         queueString.Contains(curShip.ToString());
         sw.Stop();
         Console.WriteLine("Результат: {0}\n", sw.ElapsedMilliseconds / 100.0);
         Console.WriteLine("Поиск элемента в коллекции SortedDictionary<Ship, SailingShip>");
         sw.Start();
         dictShipSail.ContainsKey(curShip);
         sw.Stop();
         Console.WriteLine("Результат (.ContainsKey): {0}", sw.ElapsedMilliseconds / 100.0);
         SailingShip curSailShip = dictShipSail[curShip];
         sw.Start();
         dictShipSail.ContainsValue(curSailShip);
         sw.Stop();
         Console.WriteLine("Результат (.ContainsValue): {0}\n", sw.ElapsedMilliseconds / 100.0);
         Console.WriteLine("Поиск элемента в коллекции SortedDictionary<string, SailingShip>");
         sw.Start();
         dictStringSail.ContainsKey(curShip.ToString());
         sw.Stop();
         Console.WriteLine("Результат (.ContainsKey): {0}", sw.ElapsedMilliseconds / 100.0);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
 }