Public void Delete(int Numb);

Этот метод служит для удаления номера. Передаёт значение Numb типа int.

{

if (Numb <= k)

Если переменная Numb меньше или равна k, то

{

if (Numb == 1)

Если переменнаяNumb равна единице, то

first = first.Next;

указатель first будет равен first.Next,

Else

{

Element temp;

temp = first;

Иначе переменная temp будет равна first.

for (int i = 1; i < Numb-1; i++)

Цикл от единицы до Numb-1, с шагом i++

{

temp = temp.Next;

в котором переменная temp будет равна temp.Next.

}

temp.Next = temp.Next.Next;

temp.Next равно temp.Next.Next.

}

K--;

После удаления уменьшается счётчик количества элементов.

}

}

Public potok GetByIndex(int Number);

Метод для нахождения по индексу. Он является открытым по принципу инкапсуляции: все методы должны быть открытыми, а параметры закрытыми.

{

if (Number <= k)

Если переменная Number меньше или равна переменнойk, то

{

Element temp = first;

переменная Element temp будет равна first

for (int i = 1; i < Number; i++)

Цикл от единицы до переменнойNumber с шагомi++

{

temp = temp.Next;

в котором переменная temp будет равна temp.Next.

}

Return temp.Potok;

возвращает temp.Potok.

}

Else

Return null;

Иначе возвращает null.

}

Public potok ReadNext();

Метод для считывания следующего элемента по кругу. Если находит, то возвращает следующий элемент, иначе возвращает null.

{

if (k != 0)

Если переменная k не равна нулю, то

{

if (mNext != null)

ЕслиmNext не равно пустоте, то

mNext = mNext.Next;

mNext будет равно указателю на следующий элемент

Else

mNext = first;

иначеmNext будет равна first

if (mNext == null)

условие на равенствоmNextпустоте, то

mNext = first;

mNext равно first

Return mNext.Potok;

и возвращает указатель на следующий элемент потока (mNext.Potok).

}

Else return null;

Иначе вернутьnull.

}

}

}

//----------------------------------------------------------------------------------------------------------------------------

Class SystemManager

Класс очередь.

{

const int N = 20;

private Process[] arr = new Process[N];

Закрытый параметр – массив класса очередь.

Private string mOS;

Параметр mOS типа string является закрытым по принципу инкапсуляции.

Private int k, first, last;

Закрытые параметры k, first, last типа int класса SystemManager.

Public bool Empty();

Метод для проверки на пустоту очередь. Метод является открытым. Возвращает либо true, либо false.

{

Get

{

if (k == 0)

Если переменная k равна нулю, то

Return true;

вернуть значение true

Else

Return false;

иначе false.

}

}

Public bool Full();

Этот метод для проверки на заполненость очереди. Метод открытый по принципу инкапсуляции. Возвращает либо true, либо false.

{

Get

{

if (k == N)

Если переменная k равна количеству элементов, то

Return true;

вернуть значение true

Else

Return false;

иначе false.

}

}

Public void Add(Process Proc);

Открытый метод добавления параметра ProcклассаProcess в конец. Передаёт значение Proc.

{

arr[last] = Proc;

Элементу arr[last] присваивается переменная Proc.

last++;

При этом указатель на last элемент переместится на следующий.

if (last == N)

Если last будет равен количеству элементов, то

last = 0;

last будет равен нулю

k++;

и k увеличится на единицу.

}

Public void Delete();

Метод удаления элемента стоящего в начале.

{

arr[first] = null;

Передаёт значение arr[first] и обнуляет его.

first++;

При этом указатель на первый элемент перемещается на следующий.

if (first == N)

Если же указатель first равен количеству элементов в массиве, то

first = 0;

указатель first будет равен нулю.

}

Public int Count()

Открытый метод возвращает количество элементов данного класса через параметр k.

{

Return k;

}

Public Process GetByIndex(int Number);

Открытый метод для поиска по номеру.

{

return arr[(index + first) % N];

Возвращает параметр Number типа int через массив индексов.

}

Public void SaveToFile(string path);

Этот метод предназначен для записи в файл данных. Он является открытым. Передаёт значение path типа string.Сохраняет в файл.

{

Stream TestFileStream = File.Create(path);

SoapFormatter serializer = new SoapFormatter();

Serializer.Serialize(TestFileStream, this);

TestFileStream.Close();

}