Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- /*
- * IntegerList.cs
- *
- * Определяет список целых чисел с возможностью его создания и заполнения
- */
- public class IntegerList
- {
- private static readonly Random Random = new Random();
- private int count;
- private int[] _list;
- /// <summary>
- /// Создаёт список указанного размера
- /// </summary>
- /// <param name="size">Размер списка</param>
- public IntegerList(int size)
- {
- _list = new int[size];
- count = size;
- }
- /// <summary>
- /// Заполняет список числами между 1 и 100 включительно
- /// </summary>
- public void Randomize()
- {
- for (int i = 0; i < _list.Length; i++)
- _list[i] = Random.Next(101);
- }
- private void IncreaseSize()
- {
- Array.Resize<Int32>(ref _list, _list.Length * 2);
- }
- public void AddElement(int NewVal)
- {
- if (count == _list.Length)
- {
- IncreaseSize();
- }
- _list[count] = NewVal;
- count += 1;
- }
- public void RemoveFirst(int val) {
- for (int i = 0; i < count; i++) {
- if (val == _list[i]) {
- for (int j = i; j < count - 1; j++) {
- _list[j] = _list[j + 1];
- }
- _list[count-1] = 0;
- count -= 1;
- break;
- }
- }
- }
- /// <summary>
- /// Печатает элементы списка с их индексами
- /// </summary>
- public void Print()
- {
- for (int i = 0; i < count; i++)
- Console.WriteLine(i + ":\t" + _list[i]);
- }
- }
- /*
- * IntegerListTest.cs
- * Тестирует класс IntegerList
- */
- public class IntegerListTest
- {
- private static IntegerList _list = new IntegerList(10);
- /// <summary>
- /// Создаёт список и выполняет пользовательские операции,
- /// пока пользователь не захочет выйти
- /// </summary>
- public static void Main()
- {
- PrintMenu();
- int choice = int.Parse(Console.ReadLine());
- while (choice != 0)
- {
- Dispatch(choice);
- PrintMenu();
- choice = int.Parse(Console.ReadLine());
- }
- }
- /// <summary>
- /// Выполняет действия меню
- /// </summary>
- /// <param name="choice">Выбранный пункт меню</param>
- public static void Dispatch(int choice)
- {
- switch (choice)
- {
- case 0: Console.WriteLine("Пока!"); break;
- case 1:
- Console.WriteLine("Какой размер будет у списка?");
- int size = int.Parse(Console.ReadLine());
- _list = new IntegerList(size);
- _list.Randomize();
- break;
- case 2: _list.Print(); break;
- case 3:
- int n;
- Console.WriteLine("Введите добавляемое число");
- int.TryParse(Console.ReadLine(), out n);
- _list.AddElement(n);
- break;
- case 4:
- int k;
- Console.WriteLine("Введите удаляемое число");
- int.TryParse(Console.ReadLine(), out k);
- _list.RemoveFirst(k);
- break;
- default: Console.WriteLine("Извините, вы выбрали что-то не то"); break;
- }
- }
- /// <summary>
- /// Выводит варианты пользователю
- /// </summary>
- public static void PrintMenu()
- {
- Console.WriteLine("\n Меню ");
- Console.WriteLine(" ====");
- Console.WriteLine("0: Выйти");
- Console.WriteLine("1: Создать новый список (** сделайте это с самого начала!! **)");
- Console.WriteLine("2: Напечатать список");
- Console.WriteLine("3: Добавить элемент");
- Console.WriteLine("4: Удалить элемент");
- Console.Write("\nВведите ваш выбор: ");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement