labWork_04 #5

Merged
gettterot merged 11 commits from labWork_04 into labWork_05 2024-04-17 08:11:23 +04:00
4 changed files with 50 additions and 38 deletions
Showing only changes of commit 9aec819091 - Show all commits

View File

@ -57,9 +57,10 @@ namespace ProjectLiner.CollectionGenericObjects
/// <param name="company">Компания</param>
/// <param name="Liner">Добавляемый объект</param>
/// <returns></returns>
public static bool operator +(AbstractCompany company, DrawningCommonLiner Liner)
public static int operator +(AbstractCompany company, DrawningCommonLiner airplan)
{
return company._collection?.Insert(Liner) ?? false;
return company._collection.Insert(airplan);
}
/// <summary>
@ -68,9 +69,9 @@ namespace ProjectLiner.CollectionGenericObjects
/// <param name="company">Компания</param>
/// <param name="position">Номер удаляемого объекта</param>
/// <returns></returns>
public static bool operator -(AbstractCompany company, int position)
public static DrawningCommonLiner operator -(AbstractCompany company, int position)
{
return company._collection?.Remove(position) ?? false;
return company._collection.Remove(position);
}
/// <summary>

View File

@ -22,7 +22,7 @@
/// </summary>
/// <param name="obj">Добавляемый объект</param>
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
bool Insert(T obj);
int Insert(T obj);
/// <summary>
/// Добавление объекта в коллекцию на конкретную позицию
@ -30,14 +30,14 @@
/// <param name="obj">Добавляемый объект</param>
/// <param name="position">Позиция</param>
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
bool Insert(T obj, int position);
int Insert(T obj, int position);
/// <summary>
/// Удаление объекта из коллекции с конкретной позиции
/// </summary>
/// <param name="position">Позиция</param>
/// <returns>true - удаление прошло удачно, false - удаление не удалось</returns>
bool Remove(int position);
T? Remove(int position);
/// <summary>
/// Получение объекта по позиции

View File

@ -12,7 +12,7 @@ namespace ProjectLiner.CollectionGenericObjects
/// Массив объектов, которые храним
/// </summary>
private T?[] _collection;
public int Count => _collection.Length;
public int SetMaxCount
@ -48,63 +48,74 @@ namespace ProjectLiner.CollectionGenericObjects
return _collection[position];
}
public bool Insert(T obj)
public int Insert(T obj)
{
for (int i = 0; i < Count; i++)
{
if (_collection[i] == null)
{
_collection[i] = obj;
return true;
return i;
}
}
return false;
return -1;
}
public bool Insert(T obj, int position)
public int Insert(T obj, int position)
{
if (position < 0 || position >= Count)
return false;
if (_collection[position] == null)
{
_collection[position] = obj;
return true;
return -1;
}
int temp = position + 1;
while (temp < Count)
if (_collection[position] != null)
{
if (_collection[temp] == null)
bool pushed = false;
for (int index = position + 1; index < Count; index++)
{
_collection[temp] = obj;
return true;
if (_collection[index] == null)
{
position = index;
pushed = true;
break;
}
}
temp++;
}
temp = position - 1;
while (temp > 0)
{
if (_collection[temp] == null)
if (!pushed)
{
_collection[temp] = obj;
return true;
for (int index = position - 1; index >= 0; index--)
{
if (_collection[index] == null)
{
position = index;
pushed = true;
break;
}
}
}
if (!pushed)
{
return position;
}
temp--;
}
return false;
_collection[position] = obj;
return position;
}
public bool Remove(int position)
public T? Remove(int position)
{
if (position < 0 || position >= Count)
return false;
{
return null;
}
if (_collection[position] == null) return null;
T? temp = _collection[position];
_collection[position] = null;
return true;
return temp;
}
}
}

View File

@ -63,7 +63,7 @@ namespace ProjectLiner
return;
}
if (_company + drawingLiner)
if (_company + drawingLiner != -1)
{
MessageBox.Show("Объект добавлен");
pictureBox.Image = _company.Show();
@ -123,7 +123,7 @@ namespace ProjectLiner
}
int pos = Convert.ToInt32(maskedTextBoxPosition.Text);
if (_company - pos)
if (_company - pos != null)
{
MessageBox.Show("Объект удален");
pictureBox.Image = _company.Show();