Compare commits

..

No commits in common. "4de869410dd7a3b40707c9269391a6e0d8c1bf37" and "34d5daf3b1b5fdb3784d62c28bcd2b083fd942e2" have entirely different histories.

6 changed files with 35 additions and 27 deletions

View File

@ -63,9 +63,9 @@ public abstract class AbstractCompany
/// <param name="company">Компания</param> /// <param name="company">Компания</param>
/// <param name="dozer">Добавляемый объект</param> /// <param name="dozer">Добавляемый объект</param>
/// <returns></returns> /// <returns></returns>
public static int operator +(AbstractCompany company, DrawningDozer dozer) public static bool operator +(AbstractCompany company, DrawningDozer dozer)
{ {
return company._collection.Insert(dozer); return company._collection?.Insert(dozer) ?? false;
} }
/// <summary> /// <summary>
@ -74,9 +74,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 DrawningDozer? operator -(AbstractCompany company, int position) public static bool operator -(AbstractCompany company, int position)
{ {
return company._collection.Remove(position); return company._collection?.Remove(position) ?? false;
} }
/// <summary> /// <summary>

View File

@ -31,10 +31,8 @@ public class Garage : AbstractCompany
{ {
int cntVertically = _pictureHeight / _placeSizeHeight; //Колличество мест по вертикали int cntVertically = _pictureHeight / _placeSizeHeight; //Колличество мест по вертикали
int cntHorizontally = _pictureWidth / _placeSizeWidth; //Колличество мест по горизонтали int cntHorizontally = _pictureWidth / _placeSizeWidth; //Колличество мест по горизонтали
Pen pen = new(Color.FromArgb(185, 140, 0)) Pen pen = new Pen(Color.FromArgb(185, 140, 0));
{ pen.Width = 3;
Width = 3
};
for (int i = 0; i < cntHorizontally; i++) for (int i = 0; i < cntHorizontally; i++)
{ {
@ -80,5 +78,7 @@ public class Garage : AbstractCompany
placeVertically--; placeVertically--;
} }
} }
//throw new NotImplementedException();
} }
} }

View File

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

View File

@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace ProjectBulldozer.CollectionGenericObjects; namespace ProjectBulldozer.CollectionGenericObjects;
public class MassiveGenericObject<T> : ICollectoinGenericObjects<T> public class MassiveGenericObject<T> : ICollectoinGenericObjects<T>
where T : class where T : class
{ {
/// <summary> /// <summary>
/// Массив объектов, который храним /// Массив объектов, который храним
@ -52,7 +52,7 @@ public class MassiveGenericObject<T> : ICollectoinGenericObjects<T>
} }
} }
public int Insert(T obj) public bool Insert(T obj)
{ {
//Вставка в свободное место набора //Вставка в свободное место набора
for (int i = 0; i < Count; i++) for (int i = 0; i < Count; i++)
@ -60,19 +60,19 @@ public class MassiveGenericObject<T> : ICollectoinGenericObjects<T>
if (_collection[i] == null) if (_collection[i] == null)
{ {
_collection[i] = obj; _collection[i] = obj;
return i; return true;
} }
} }
return -1; return false;
} }
public int Insert(T obj, int position) public bool Insert(T obj, int position)
{ {
//Проверка позиции //Проверка позиции
if ((position < 0) || (position >= Count)) if ((position < 0) || (position >= Count))
{ {
return -1; return false;
} }
//Проверка, что элемент массива по этой позиции пустой, если нет, то ищется свободное место после этой //Проверка, что элемент массива по этой позиции пустой, если нет, то ищется свободное место после этой
@ -105,26 +105,25 @@ public class MassiveGenericObject<T> : ICollectoinGenericObjects<T>
if (placed == false) if (placed == false)
{ {
return -1; return false;
} }
} }
//Вставка //Вставка
_collection[position] = obj; _collection[position] = obj;
return position; return true;
} }
public T? Remove(int position) public bool Remove(int position)
{ {
//Проверка позиции //Проверка позиции
if ((position < 0) || (position >= Count) || (_collection[position] == null)) if ((position < 0) || (position >= Count) || (_collection[position] == null))
{ {
return null; return false;
} }
//Удаление объекта из массива, присвоив элементу массива значение null //Удаление объекта из массива, присвоив элементу массива значение null
T? elem = _collection[position];
_collection[position] = null; _collection[position] = null;
return elem; return true;
} }
} }

View File

@ -137,7 +137,7 @@
comboBoxSelectorCompany.Name = "comboBoxSelectorCompany"; comboBoxSelectorCompany.Name = "comboBoxSelectorCompany";
comboBoxSelectorCompany.Size = new Size(332, 41); comboBoxSelectorCompany.Size = new Size(332, 41);
comboBoxSelectorCompany.TabIndex = 1; comboBoxSelectorCompany.TabIndex = 1;
comboBoxSelectorCompany.SelectedIndexChanged += ComboBoxSelectorCompany_SelectedIndexChanged; comboBoxSelectorCompany.SelectedIndexChanged += comboBoxSelectorCompany_SelectedIndexChanged;
// //
// pictureBox // pictureBox
// //

View File

@ -36,7 +36,7 @@ public partial class FormBulldozerCollection : Form
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void ComboBoxSelectorCompany_SelectedIndexChanged(object sender, EventArgs e) private void comboBoxSelectorCompany_SelectedIndexChanged(object sender, EventArgs e)
{ {
switch (comboBoxSelectorCompany.Text) switch (comboBoxSelectorCompany.Text)
{ {
@ -46,6 +46,15 @@ public partial class FormBulldozerCollection : Form
} }
} }
/* private void ComboBoxSelectorCompany_SelectedIndexChanget(object sender, EventArgs e)
{
switch (comboBoxSelectorCompany.Text)
{
case "Хранилище":
_company = new CarSharingService(pictureBox.Width, pictureBox.Height, new MassiveGenericObject<DrawningDozer>());
break;
}
}*/
/// <summary> /// <summary>
/// Добавление обычного бульдозера /// Добавление обычного бульдозера
@ -92,7 +101,7 @@ public partial class FormBulldozerCollection : Form
return; return;
} }
if (_company + drawningDozer != -1) if (_company + drawningDozer)
{ {
MessageBox.Show("Объект добавлен."); MessageBox.Show("Объект добавлен.");
pictureBox.Image = _company.Show(); pictureBox.Image = _company.Show();
@ -153,7 +162,7 @@ public partial class FormBulldozerCollection : Form
} }
int pos = Convert.ToInt32(maskedTextBox.Text); int pos = Convert.ToInt32(maskedTextBox.Text);
if (_company - pos != null) if (_company - pos)
{ {
MessageBox.Show("Объект удалён."); MessageBox.Show("Объект удалён.");
pictureBox.Image = _company.Show(); pictureBox.Image = _company.Show();