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();
}