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; } } }
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; } } }
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; } } }
private static void InputName(SailingShip elem) { Console.WriteLine("Введите имя нового корабля (оставьте пустым для генерации с помощью ДСЧ):"); string inpStr = Console.ReadLine(); if (inpStr != "") { elem.Name = inpStr; } }
public SailingShip GenerateNewShip() { while (true) { SailingShip sailingShip = new SailingShip(); if (!dictStringSail.ContainsKey(sailingShip.BaseShip.ToString())) { return(sailingShip); } } }
private static SailingShip InputElemFromKeyboard() { SailingShip elem = new SailingShip(); InputName(elem); InputMaxSpeed(elem); InputDateReleased(elem); InputNumOfSails(elem); InputNumOfMasts(elem); return(elem); }
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); }
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 { } } }
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); }
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))}"); }
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); } }