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="company">Компания</param>
/// <param name="Locomotive">Добавляемый объект</param> /// <param name="Locomotive">Добавляемый объект</param>
/// <returns></returns> /// <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> /// <summary>
/// Перегрузка оператора удаления для класса /// Перегрузка оператора удаления для класса
@ -69,9 +69,9 @@ public abstract class AbstractCompany
/// <param name="company">Компания</param> /// <param name="company">Компания</param>
/// <param name="position">Номер удаляемого объекта</param> /// <param name="position">Номер удаляемого объекта</param>
/// <returns></returns> /// <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> /// <summary>

View File

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

View File

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

View File

@ -70,7 +70,7 @@ public partial class FormLocomotiveCollection : Form
default: default:
return; return;
} }
if (_company + drawningLocomotive) if (_company + drawningLocomotive != null)
{ {
pictureBox.Image = _company.Show(); pictureBox.Image = _company.Show();
MessageBox.Show("Обьект добавлен"); MessageBox.Show("Обьект добавлен");
@ -131,19 +131,22 @@ public partial class FormLocomotiveCollection : Form
{ {
return; 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 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("Не удалось удалить объект");
}
} }
} }