diff --git a/.idea/.idea.BoykoSolution/.idea/.gitignore b/.idea/.idea.BoykoSolution/.idea/.gitignore
new file mode 100644
index 0000000..e5028a2
--- /dev/null
+++ b/.idea/.idea.BoykoSolution/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/projectSettingsUpdater.xml
+/.idea.BoykoSolution.iml
+/modules.xml
+/contentModel.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.BoykoSolution/.idea/.name b/.idea/.idea.BoykoSolution/.idea/.name
new file mode 100644
index 0000000..4264369
--- /dev/null
+++ b/.idea/.idea.BoykoSolution/.idea/.name
@@ -0,0 +1 @@
+BoykoSolution
\ No newline at end of file
diff --git a/.idea/.idea.BoykoSolution/.idea/encodings.xml b/.idea/.idea.BoykoSolution/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.BoykoSolution/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.BoykoSolution/.idea/indexLayout.xml b/.idea/.idea.BoykoSolution/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.BoykoSolution/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.BoykoSolution/.idea/vcs.xml b/.idea/.idea.BoykoSolution/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.BoykoSolution/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.cs b/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.cs
index 7f4fa39..68b0455 100644
--- a/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.cs
+++ b/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.cs
@@ -57,10 +57,9 @@ public abstract class AbstractCompany
/// Компания
/// Добавляемый объект
///
- public static bool operator +(AbstractCompany company, DrawingTrans trans)
+ public static int operator +(AbstractCompany company, DrawingTrans trans)
{
- return company._collection?.Insert(trans) ?? false;
-
+ return company._collection.Insert(trans);
}
///
@@ -69,9 +68,9 @@ public abstract class AbstractCompany
/// Компания
/// Номер удаляемого объекта
///
- public static bool operator -(AbstractCompany company, int position)
+ public static DrawingTrans? operator -(AbstractCompany company, int position)
{
- return company._collection?.Remove(position) ?? false;
+ return company._collection?.Remove(position);
}
///
diff --git a/ProjectElectroTrans/CollectionGenericObjects/ICollectionGenericObjects.cs b/ProjectElectroTrans/CollectionGenericObjects/ICollectionGenericObjects.cs
index d3902ba..f22a93e 100644
--- a/ProjectElectroTrans/CollectionGenericObjects/ICollectionGenericObjects.cs
+++ b/ProjectElectroTrans/CollectionGenericObjects/ICollectionGenericObjects.cs
@@ -1,4 +1,6 @@
-namespace ProjectElectroTrans.CollectionGenericObjects;
+using ProjectElectroTrans.Drawnings;
+
+namespace ProjectElectroTrans.CollectionGenericObjects;
///
/// Интерфейс описания действий для набора хранимых объектов
@@ -22,7 +24,7 @@ public interface ICollectionGenericObjects
///
/// Добавляемый объект
/// true - вставка прошла удачно, false - вставка не удалась
- bool Insert(T obj);
+ int Insert(T obj);
///
/// Добавление объекта в коллекцию на конкретную позицию
@@ -30,14 +32,14 @@ public interface ICollectionGenericObjects
/// Добавляемый объект
/// Позиция
/// true - вставка прошла удачно, false - вставка не удалась
- bool Insert(T obj, int position);
+ int Insert(T obj, int position);
///
/// Удаление объекта из коллекции с конкретной позиции
///
/// Позиция
/// true - удаление прошло удачно, false - удаление не удалось
- bool Remove(int position);
+ T? Remove(int position);
///
/// Получение объекта по позиции
diff --git a/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.cs b/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.cs
index 6b36e27..2beb914 100644
--- a/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.cs
+++ b/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.cs
@@ -1,4 +1,5 @@
using System.Runtime.Remoting;
+using ProjectElectroTrans.Drawnings;
namespace ProjectElectroTrans.CollectionGenericObjects;
@@ -6,89 +7,94 @@ namespace ProjectElectroTrans.CollectionGenericObjects;
/// Параметризованный набор объектов
///
/// Параметр: ограничение - ссылочный тип
-public class MassiveGenericObjects :ICollectionGenericObjects
- where T : class
+public class MassiveGenericObjects : ICollectionGenericObjects
+ where T : class
{
- ///
- /// Массив объектов, которые храним
- ///
- private T?[] _collection;
+ ///
+ /// Массив объектов, которые храним
+ ///
+ private T?[] _collection;
- public int Count => _collection.Length;
+ public int Count => _collection.Length;
- public int SetMaxCount
- {
- set
- {
- if (value > 0)
- {
- if (_collection.Length > 0)
- {
- Array.Resize(ref _collection, value);
- }
- else
- {
- _collection = new T?[value];
- }
- }
- }
- }
-
- ///
- /// Конструктор
- ///
- public MassiveGenericObjects()
- {
- _collection = Array.Empty();
- }
-
- public T? Get(int position)
- {
- if (position >= 0 && position < Count)
- {
- return _collection[position];
+ public int SetMaxCount
+ {
+ set
+ {
+ if (value > 0)
+ {
+ if (_collection.Length > 0)
+ {
+ Array.Resize(ref _collection, value);
+ }
+ else
+ {
+ _collection = new T?[value];
+ }
+ }
}
- return null;
}
- public bool Insert(T obj)
- {
- // вставка в свободное место набора
- for (int i = 0; i< Count; i++)
- {
- if (_collection[i] == null)
- {
- _collection[i] = obj;
- return true;
- }
- }
- return false;
- }
+ ///
+ /// Конструктор
+ ///
+ public MassiveGenericObjects()
+ {
+ _collection = Array.Empty();
+ }
- public bool Insert(T obj, int position)
- {
- // проверка позиции
- if (position < 0 || position >= Count)
- {
- return false;
- }
- // проверка, что элемент массива по этой позиции пустой, если нет, то
- // ищется свободное место после этой позиции и идет вставка туда
- // если нет после, ищем до
- if (_collection[position] != null)
- {
- bool pushed = false;
- for (int index = position + 1; index < Count; index++) {
- if (_collection[index] == null)
- {
- position = index;
- pushed = true;
- break;
- }
+ public T? Get(int position)
+ {
+ if (position >= 0 && position < Count)
+ {
+ return _collection[position];
+ }
+
+ return null;
+ }
+
+ public int Insert(T obj)
+ {
+ // вставка в свободное место набора
+ for (int i = 0; i < Count; i++)
+ {
+ if (_collection[i] == null)
+ {
+ _collection[i] = obj;
+ return i;
}
- if (!pushed)
- {
- for (int index = position- 1; index >= 0; index--)
+ }
+
+ return -1;
+ }
+
+ public int Insert(T obj, int position)
+ {
+ // проверка позиции
+ if (position < 0 || position >= Count)
+ {
+ return -1;
+ }
+
+ // проверка, что элемент массива по этой позиции пустой, если нет, то
+ // ищется свободное место после этой позиции и идет вставка туда
+ // если нет после, ищем до
+ if (_collection[position] != null)
+ {
+ bool pushed = false;
+ for (int index = position + 1; index < Count; index++)
+ {
+ if (_collection[index] == null)
+ {
+ position = index;
+ pushed = true;
+ break;
+ }
+ }
+
+ if (!pushed)
+ {
+ for (int index = position - 1; index >= 0; index--)
{
if (_collection[index] == null)
{
@@ -98,26 +104,30 @@ public class MassiveGenericObjects :ICollectionGenericObjects
}
}
}
- if (!pushed)
- {
- return false;
- }
- }
+
+ if (!pushed)
+ {
+ return position;
+ }
+ }
// вставка
_collection[position] = obj;
- return false;
- }
+ return position;
+ }
- public bool Remove(int position)
- {
+ public T? Remove(int position)
+ {
// проверка позиции
if (position < 0 || position >= Count)
{
- return false;
+ return null;
}
- // удаление объекта из массива, присвоив элементу массива значение null
- _collection[position] = null;
- return true;
- }
+
+ if (_collection[position] == null) return null;
+
+ T? temp = _collection[position];
+ _collection[position] = null;
+ return temp;
+ }
}
\ No newline at end of file
diff --git a/ProjectElectroTrans/FormTransCollection.Designer.cs b/ProjectElectroTrans/FormTransCollection.Designer.cs
index b4131a4..d1adee7 100644
--- a/ProjectElectroTrans/FormTransCollection.Designer.cs
+++ b/ProjectElectroTrans/FormTransCollection.Designer.cs
@@ -111,7 +111,7 @@ namespace ProjectElectroTrans
buttonAddSportCar.Name = "buttonAddSportCar";
buttonAddSportCar.Size = new Size(167, 40);
buttonAddSportCar.TabIndex = 2;
- buttonAddSportCar.Text = "Добавление спортивного поезда";
+ buttonAddSportCar.Text = "Добавление электропоезда";
buttonAddSportCar.UseVisualStyleBackColor = true;
buttonAddSportCar.Click += ButtonAddElectroTrans_Click;
//
diff --git a/ProjectElectroTrans/FormTransCollection.cs b/ProjectElectroTrans/FormTransCollection.cs
index 692a929..e700e38 100644
--- a/ProjectElectroTrans/FormTransCollection.cs
+++ b/ProjectElectroTrans/FormTransCollection.cs
@@ -70,7 +70,7 @@ public partial class FormTransCollection : Form
drawingTrans = new DrawingTrans(random.Next(100, 300), random.Next(1000, 3000), GetColor(random));
break;
case nameof(DrawingElectroTrans):
- // TODO вызов диалогового окна для выбора цвета
+ // вызов диалогового окна для выбора цвета
drawingTrans = new DrawingElectroTrans(random.Next(100, 300), random.Next(1000, 3000),
GetColor(random),
GetColor(random),
@@ -80,7 +80,7 @@ public partial class FormTransCollection : Form
return;
}
- if (_company + drawingTrans)
+ if (_company + drawingTrans != -1)
{
MessageBox.Show("Объект добавлен");
pictureBox.Image = _company.Show();
@@ -126,7 +126,7 @@ public partial class FormTransCollection : Form
}
int pos = Convert.ToInt32(maskedTextBoxPosition.Text);
- if (_company - pos)
+ if (_company - pos != null)
{
MessageBox.Show("Объект удален");
pictureBox.Image = _company.Show();