LabWork4Start

This commit is contained in:
Tonb73 2024-03-28 07:25:13 +03:00
parent 9e098ea128
commit 14379b9543
4 changed files with 34 additions and 31 deletions

View File

@ -59,9 +59,9 @@ public abstract class AbstractCompany
/// <param name="company">Компания</param>
/// <param name="Locomotive">Добавляемый объект</param>
/// <returns></returns>
public static bool operator +(AbstractCompany company, DrawningLocomotive locomotive)
public static int operator +(AbstractCompany company, DrawningLocomotive locomotive)
{
return company._collection?.Insert(locomotive) ?? false;
return company._collection.Insert(locomotive);
}
/// <summary>
/// Перегрузка оператора удаления для класса
@ -69,9 +69,9 @@ public abstract class AbstractCompany
/// <param name="company">Компания</param>
/// <param name="position">Номер удаляемого объекта</param>
/// <returns></returns>
public static bool operator -(AbstractCompany company, int position)
public static DrawningLocomotive operator -(AbstractCompany company, int position)
{
return company._collection?.Remove(position) ?? false;
return company._collection.Remove(position);
}
/// <summary>

View File

@ -27,7 +27,7 @@ public interface ICollectionGenericObjects<T>
/// </summary>
/// <param name="obj">Добавляемый объект</param>
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
bool Insert(T obj);
int Insert(T obj);
/// <summary>
/// Добавление объекта в коллекцию на конкретную позицию
@ -35,14 +35,14 @@ bool Insert(T obj);
/// <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>
/// Получение объекта по позиции
/// </summary>

View File

@ -47,26 +47,26 @@ namespace ProjectElectricLocomotive.CollectionGenericObjects
}
return _collection[position];
}
public bool Insert(T obj)
public int Insert(T obj)
{
if(obj == null){ return false; }
if(obj == null){ return -1; }
for(int i = 0; i < _collection.Length; 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(obj == null || position < 0)
{
return false;
return -1;
}
if (_collection[position] != null)
{
@ -75,7 +75,7 @@ namespace ProjectElectricLocomotive.CollectionGenericObjects
if (_collection[i] == null)
{
_collection[i] = obj;
return true;
return position;
}
}
for(int i = position; i > 0; i--)
@ -83,7 +83,7 @@ namespace ProjectElectricLocomotive.CollectionGenericObjects
if (_collection[i] == null)
{
_collection[i] = obj;
return true;
return position;
}
}
}
@ -94,14 +94,14 @@ namespace ProjectElectricLocomotive.CollectionGenericObjects
// ищется свободное место после этой позиции и идет вставка туда
// если нет после, ищем до
// TODO вставка
return false;
return -1;
}
public bool Remove(int position)
public T Remove(int position)
{
if(position < 0)
{
return false;
return null;
}
else
{
@ -109,7 +109,7 @@ namespace ProjectElectricLocomotive.CollectionGenericObjects
}
// TODO проверка позиции
// TODO удаление объекта из массива, присвоив элементу массива значение null
return true;
return Get(position);
}
}
}

View File

@ -70,7 +70,7 @@ public partial class FormLocomotiveCollection : Form
default:
return;
}
if (_company + drawningLocomotive)
if (_company + drawningLocomotive != null)
{
pictureBox.Image = _company.Show();
MessageBox.Show("Обьект добавлен");
@ -131,19 +131,22 @@ public partial class FormLocomotiveCollection : Form
{
return;
}
if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
{
return;
}
int pos = Convert.ToInt32(maskedTextBox.Text);
if (_company - pos)
{
MessageBox.Show("Объект удален");
pictureBox.Image = _company.Show();
}
else
{
MessageBox.Show("Не удалось удалить объект");
if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
{
return;
}
int pos = Convert.ToInt32(maskedTextBox.Text);
if (_company - pos != null)
{
MessageBox.Show("Объект удален");
pictureBox.Image = _company.Show();
}
else
{
MessageBox.Show("Не удалось удалить объект");
}
}
}