Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.38 KB | None | 0 0
  1. using System;
  2. /*
  3.  * IntegerList.cs
  4.  *
  5.  * Определяет список целых чисел с возможностью его создания и заполнения
  6.  */
  7. public class IntegerList
  8. {
  9.     private static readonly Random Random = new Random();
  10.     private int count;
  11.     private int[] _list;
  12.  
  13.     /// <summary>
  14.     /// Создаёт список указанного размера
  15.     /// </summary>
  16.     /// <param name="size">Размер списка</param>
  17.     public IntegerList(int size)
  18.     {
  19.         _list = new int[size];
  20.         count = size;
  21.     }
  22.  
  23.     /// <summary>
  24.     /// Заполняет список числами между 1 и 100 включительно
  25.     /// </summary>
  26.     public void Randomize()
  27.     {
  28.         for (int i = 0; i < _list.Length; i++)
  29.             _list[i] = Random.Next(101);
  30.     }
  31.     private void IncreaseSize()
  32.     {
  33.         Array.Resize<Int32>(ref _list, _list.Length * 2);
  34.        
  35.     }
  36.     public void AddElement(int NewVal)
  37.     {
  38.         if (count == _list.Length)
  39.         {
  40.             IncreaseSize();
  41.         }
  42.         _list[count] = NewVal;
  43.         count += 1;
  44.  
  45.     }
  46.     public void RemoveFirst(int val) {
  47.         for (int i = 0; i < count; i++) {
  48.             if (val == _list[i]) {
  49.                 for (int j = i; j < count - 1; j++) {
  50.                     _list[j] = _list[j + 1];
  51.                 }
  52.                 _list[count-1] = 0;
  53.                 count -= 1;
  54.                 break;
  55.             }
  56.         }
  57.  
  58.     }
  59.     /// <summary>
  60.     /// Печатает элементы списка с их индексами
  61.     /// </summary>
  62.     public void Print()
  63.     {
  64.         for (int i = 0; i < count; i++)
  65.             Console.WriteLine(i + ":\t" + _list[i]);
  66.     }
  67. }
  68.     /*
  69.      * IntegerListTest.cs
  70.      * Тестирует класс IntegerList
  71.      */
  72. public class IntegerListTest
  73. {
  74.     private static IntegerList _list = new IntegerList(10);
  75.  
  76.     /// <summary>
  77.     /// Создаёт список и выполняет пользовательские операции,
  78.     /// пока пользователь не захочет выйти
  79.     /// </summary>
  80.     public static void Main()
  81.     {
  82.         PrintMenu();
  83.  
  84.         int choice = int.Parse(Console.ReadLine());
  85.  
  86.         while (choice != 0)
  87.         {
  88.             Dispatch(choice);
  89.             PrintMenu();
  90.  
  91.             choice = int.Parse(Console.ReadLine());
  92.         }
  93.     }
  94.  
  95.     /// <summary>
  96.     /// Выполняет действия меню
  97.     /// </summary>
  98.     /// <param name="choice">Выбранный пункт меню</param>
  99.     public static void Dispatch(int choice)
  100.     {
  101.         switch (choice)
  102.         {
  103.             case 0: Console.WriteLine("Пока!"); break;
  104.             case 1:
  105.                 Console.WriteLine("Какой размер будет у списка?");
  106.                 int size = int.Parse(Console.ReadLine());
  107.                 _list = new IntegerList(size);
  108.                 _list.Randomize();
  109.                 break;
  110.             case 2: _list.Print(); break;
  111.             case 3:
  112.                 int n;
  113.                 Console.WriteLine("Введите добавляемое число");
  114.                 int.TryParse(Console.ReadLine(), out n);
  115.                 _list.AddElement(n);
  116.                 break;
  117.             case 4:
  118.                 int k;
  119.                 Console.WriteLine("Введите удаляемое число");
  120.                 int.TryParse(Console.ReadLine(), out k);
  121.                 _list.RemoveFirst(k);
  122.                 break;
  123.             default: Console.WriteLine("Извините, вы выбрали что-то не то"); break;
  124.            
  125.         }
  126.     }
  127.  
  128.     /// <summary>
  129.     /// Выводит варианты пользователю
  130.     /// </summary>
  131.     public static void PrintMenu()
  132.     {
  133.         Console.WriteLine("\n Меню ");
  134.         Console.WriteLine(" ====");
  135.         Console.WriteLine("0: Выйти");
  136.         Console.WriteLine("1: Создать новый список (** сделайте это с самого начала!! **)");
  137.         Console.WriteLine("2: Напечатать список");
  138.         Console.WriteLine("3: Добавить элемент");
  139.         Console.WriteLine("4: Удалить элемент");
  140.         Console.Write("\nВведите ваш выбор: ");
  141.     }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement