Group-10 LastNameF.P. LabWork08 Simple #9
@ -2,8 +2,17 @@
|
||||
|
||||
namespace ProjectSportCar.CollectionGenericObjects;
|
||||
|
||||
/// <summary>
|
||||
/// Реализация абстрактной компании - каршеринг
|
||||
/// </summary>
|
||||
public class CarSharingService : AbstractCompany
|
||||
{
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="picWidth"></param>
|
||||
/// <param name="picHeight"></param>
|
||||
/// <param name="collection"></param>
|
||||
public CarSharingService(int picWidth, int picHeight, ICollectionGenericObjects<DrawningCar> collection) : base(picWidth, picHeight, collection)
|
||||
{
|
||||
}
|
||||
|
@ -1,6 +1,4 @@
|
||||
using ProjectSportCar.Drawnings;
|
||||
|
||||
namespace ProjectSportCar.CollectionGenericObjects;
|
||||
namespace ProjectSportCar.CollectionGenericObjects;
|
||||
|
||||
/// <summary>
|
||||
/// Параметризованный набор объектов
|
||||
@ -21,7 +19,20 @@ public class ListGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
|
||||
public int Count => _collection.Count;
|
||||
|
||||
public int SetMaxCount { set { if (value > 0) { _maxCount = value; } } }
|
||||
public int MaxCount
|
||||
{
|
||||
get => _maxCount;
|
||||
set
|
||||
{
|
||||
if (value > 0)
|
||||
{
|
||||
_maxCount = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public CollectionType GetCollectionType => throw new NotImplementedException();
|
||||
|
||||
public int MaxCount { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
|
||||
|
||||
@ -38,15 +49,14 @@ public class ListGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
public T? Get(int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// TODO выборс ошибки, если выход за границы массива
|
||||
// TODO выброс ошибки, если выход за границы массива
|
||||
return _collection[position];
|
||||
}
|
||||
|
||||
public bool Insert(T obj, IEqualityComparer<DrawningCar?>? comparer = null)
|
||||
{
|
||||
// TODO проверка, что не превышено максимальное количество элементов
|
||||
// TODO выборс ошибки, если переполнение
|
||||
// TODO выборс ошибки, если такой объект есть в коллекции
|
||||
// TODO выброс ошибки, если переполнение
|
||||
// TODO вставка в конец набора
|
||||
return true;
|
||||
}
|
||||
@ -54,7 +64,7 @@ public class ListGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
public bool Insert(T obj, int position, IEqualityComparer<DrawningCar?>? comparer = null)
|
||||
{
|
||||
// TODO проверка, что не превышено максимальное количество элементов
|
||||
// TODO выборс ошибки, если такой объект есть в коллекции
|
||||
// TODO выброс ошибки, если переполнение
|
||||
// TODO проверка позиции
|
||||
// TODO вставка по позиции
|
||||
return true;
|
||||
@ -63,7 +73,7 @@ public class ListGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
public bool Remove(int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// TODO выборс ошибки, если выход за границы массива
|
||||
// TODO выброс ошибки, если выход за границы массива
|
||||
// TODO удаление объекта из списка
|
||||
return true;
|
||||
}
|
||||
|
@ -23,12 +23,18 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
{
|
||||
return _collection.Length;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value > 0)
|
||||
{
|
||||
_collection = new T?[value];
|
||||
if (_collection.Length > 0)
|
||||
{
|
||||
Array.Resize(ref _collection, value);
|
||||
}
|
||||
else
|
||||
{
|
||||
_collection = new T?[value];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -46,16 +52,15 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
public T? Get(int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// TODO выборс ошибки, если выход за границы массива
|
||||
// TODO выборс ошибки, если объект пустой
|
||||
// TODO выброс ошибки, если выход за границы массива
|
||||
// TODO выброс ошибки, если объект пустой
|
||||
return _collection[position];
|
||||
}
|
||||
|
||||
public bool Insert(T obj, IEqualityComparer<DrawningCar?>? comparer = null)
|
||||
{
|
||||
// TODO вставка в свободное место набора
|
||||
// TODO выборс ошибки, если переполнение
|
||||
// TODO выборс ошибки, если такой объект есть в коллекции
|
||||
// TODO выброс ошибки, если переполнение
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -63,11 +68,11 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
{
|
||||
// TODO выборс ошибки, если такой объект есть в коллекции
|
||||
// TODO проверка позиции
|
||||
// TODO выборс ошибки, если выход за границы массива
|
||||
// TODO выброс ошибки, если выход за границы массива
|
||||
// TODO проверка, что элемент массива по этой позиции пустой, если нет, то
|
||||
// ищется свободное место после этой позиции и идет вставка туда
|
||||
// если нет после, ищем до
|
||||
// TODO выборс ошибки, если переполнение
|
||||
// TODO выброс ошибки, если переполнение
|
||||
// TODO вставка
|
||||
return false;
|
||||
}
|
||||
@ -75,9 +80,9 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
public bool Remove(int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// TODO выборс ошибки, если выход за границы массива
|
||||
// TODO выборс ошибки, если объект пустой
|
||||
// TODO удаление объекта из массива, присовив элементу массива значение null
|
||||
// TODO выброс ошибки, если выход за границы массива
|
||||
// TODO выброс ошибки, если объект пустой
|
||||
// TODO удаление объекта из массива, присвоив элементу массива значение null
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -173,8 +173,8 @@ public class StorageCollection<T>
|
||||
|
||||
CollectionInfo? collectionInfo = CollectionInfo.GetCollectionInfo(record[0]) ??
|
||||
throw new Exception("Не удалось определить информацию коллекции:" + record[0]);
|
||||
ICollectionGenericObjects<T>? collection = StorageCollection<T>.CreateCollection(collectionInfo.CollectionType) ??
|
||||
throw new Exception("Не удалось создать коллекцию");
|
||||
ICollectionGenericObjects<T>? collection = StorageCollection<T>.CreateCollection(collectionInfo.CollectionType) ??
|
||||
throw new Exception("Не удалось определить тип коллекции:" + record[1]);
|
||||
collection.MaxCount = Convert.ToInt32(record[1]);
|
||||
|
||||
string[] set = record[2].Split(_separatorItems, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
@ -84,6 +84,15 @@ public class DrawningCar
|
||||
EntityCar = new EntityCar(speed, weight, bodyColor);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="car">Класс-сущность</param>
|
||||
public DrawningCar(EntityCar car) : this()
|
||||
{
|
||||
// TODO продумать логику
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор для наследников
|
||||
/// </summary>
|
||||
|
@ -20,7 +20,16 @@ public class DrawningSportCar : DrawningCar
|
||||
public DrawningSportCar(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool wing, bool sportLine) : base(110, 60)
|
||||
{
|
||||
EntityCar = new EntitySportCar(speed, weight, bodyColor, additionalColor, bodyKit, wing, sportLine);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="car">Класс-сущность</param>
|
||||
public DrawningSportCar(EntityCar car) : base(110, 60)
|
||||
{
|
||||
// TODO продумать логику
|
||||
}
|
||||
|
||||
public override void DrawTransport(Graphics g)
|
||||
{
|
||||
|
@ -38,6 +38,8 @@ public class EntityCar
|
||||
BodyColor = bodyColor;
|
||||
}
|
||||
|
||||
//TODO Прописать метод
|
||||
|
||||
/// <summary>
|
||||
/// Получение строк со значениями свойств объекта класса-сущности
|
||||
/// </summary>
|
||||
|
@ -26,7 +26,7 @@ public class EntitySportCar : EntityCar
|
||||
public bool SportLine { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Инициализация полей объекта-класса спортивного автомобиля
|
||||
/// Конструктор сущности
|
||||
/// </summary>
|
||||
/// <param name="speed">Скорость</param>
|
||||
/// <param name="weight">Вес автомобиля</param>
|
||||
@ -35,11 +35,24 @@ public class EntitySportCar : EntityCar
|
||||
/// <param name="bodyKit">Признак наличия обвеса</param>
|
||||
/// <param name="wing">Признак наличия антикрыла</param>
|
||||
/// <param name="sportLine">Признак наличия гоночной полосы</param>
|
||||
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool wing, bool sportLine)
|
||||
public EntitySportCar(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool wing, bool sportLine) : base(0, 0, Color.Black)
|
||||
{
|
||||
AdditionalColor = additionalColor;
|
||||
BodyKit = bodyKit;
|
||||
Wing = wing;
|
||||
SportLine = sportLine;
|
||||
}
|
||||
|
||||
//TODO Прописать метод
|
||||
|
||||
/// <summary>
|
||||
/// Создание объекта из массива строк
|
||||
/// </summary>
|
||||
/// <param name="strs"></param>
|
||||
/// <returns></returns>
|
||||
public static EntitySportCar? CreateEntitySportCar(string[] strs)
|
||||
{
|
||||
// TODO продумать логику
|
||||
return null;
|
||||
}
|
||||
}
|
@ -8,7 +8,7 @@ namespace ProjectSportCar.Exceptions;
|
||||
[Serializable]
|
||||
internal class CollectionOverflowException : ApplicationException
|
||||
{
|
||||
public CollectionOverflowException(int count) : base("В коллекции превышено допустимое количество: count" + count) { }
|
||||
public CollectionOverflowException(int count) : base("В коллекции превышено допустимое количество: " + count) { }
|
||||
|
||||
public CollectionOverflowException() : base() { }
|
||||
|
||||
|
@ -86,7 +86,7 @@
|
||||
panelCompanyTools.Controls.Add(buttonGoToCheck);
|
||||
panelCompanyTools.Dock = DockStyle.Bottom;
|
||||
panelCompanyTools.Enabled = false;
|
||||
panelCompanyTools.Location = new Point(3, 349);
|
||||
panelCompanyTools.Location = new Point(3, 336);
|
||||
panelCompanyTools.Name = "panelCompanyTools";
|
||||
panelCompanyTools.Size = new Size(173, 299);
|
||||
panelCompanyTools.TabIndex = 9;
|
||||
@ -253,7 +253,7 @@
|
||||
pictureBox.Dock = DockStyle.Fill;
|
||||
pictureBox.Location = new Point(0, 24);
|
||||
pictureBox.Name = "pictureBox";
|
||||
pictureBox.Size = new Size(783, 651);
|
||||
pictureBox.Size = new Size(783, 592);
|
||||
pictureBox.TabIndex = 1;
|
||||
pictureBox.TabStop = false;
|
||||
//
|
||||
@ -323,7 +323,7 @@
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(962, 675);
|
||||
ClientSize = new Size(962, 616);
|
||||
Controls.Add(pictureBox);
|
||||
Controls.Add(groupBoxTools);
|
||||
Controls.Add(menuStrip);
|
||||
|
@ -60,7 +60,7 @@ public partial class FormCarCollection : Form
|
||||
/// Добавление автомобиля в коллекцию
|
||||
/// </summary>
|
||||
/// <param name="car"></param>
|
||||
private void SetCar(DrawningCar car)
|
||||
private void SetCar(DrawningCar? car)
|
||||
{
|
||||
if (_company == null || car == null)
|
||||
{
|
||||
|
@ -33,7 +33,7 @@
|
||||
panelPurple = new Panel();
|
||||
panelYellow = new Panel();
|
||||
panelBlack = new Panel();
|
||||
panelGrey = new Panel();
|
||||
panelGray = new Panel();
|
||||
panelBlue = new Panel();
|
||||
panelWhite = new Panel();
|
||||
panelGreen = new Panel();
|
||||
@ -86,7 +86,7 @@
|
||||
groupBoxColors.Controls.Add(panelPurple);
|
||||
groupBoxColors.Controls.Add(panelYellow);
|
||||
groupBoxColors.Controls.Add(panelBlack);
|
||||
groupBoxColors.Controls.Add(panelGrey);
|
||||
groupBoxColors.Controls.Add(panelGray);
|
||||
groupBoxColors.Controls.Add(panelBlue);
|
||||
groupBoxColors.Controls.Add(panelWhite);
|
||||
groupBoxColors.Controls.Add(panelGreen);
|
||||
@ -122,13 +122,13 @@
|
||||
panelBlack.Size = new Size(34, 34);
|
||||
panelBlack.TabIndex = 4;
|
||||
//
|
||||
// panelGrey
|
||||
// panelGray
|
||||
//
|
||||
panelGrey.BackColor = Color.Gray;
|
||||
panelGrey.Location = new Point(67, 66);
|
||||
panelGrey.Name = "panelGrey";
|
||||
panelGrey.Size = new Size(34, 34);
|
||||
panelGrey.TabIndex = 5;
|
||||
panelGray.BackColor = Color.Gray;
|
||||
panelGray.Location = new Point(67, 66);
|
||||
panelGray.Name = "panelGray";
|
||||
panelGray.Size = new Size(34, 34);
|
||||
panelGray.TabIndex = 5;
|
||||
//
|
||||
// panelBlue
|
||||
//
|
||||
@ -349,7 +349,7 @@
|
||||
private Panel panelPurple;
|
||||
private Panel panelYellow;
|
||||
private Panel panelBlack;
|
||||
private Panel panelGrey;
|
||||
private Panel panelGray;
|
||||
private Panel panelBlue;
|
||||
private Panel panelWhite;
|
||||
private Panel panelGreen;
|
||||
|
@ -27,7 +27,7 @@ public partial class FormCarConfig : Form
|
||||
panelBlue.MouseDown += Panel_MouseDown;
|
||||
panelYellow.MouseDown += Panel_MouseDown;
|
||||
panelWhite.MouseDown += Panel_MouseDown;
|
||||
panelGrey.MouseDown += Panel_MouseDown;
|
||||
panelGray.MouseDown += Panel_MouseDown;
|
||||
panelBlack.MouseDown += Panel_MouseDown;
|
||||
panelPurple.MouseDown += Panel_MouseDown;
|
||||
|
||||
@ -52,7 +52,7 @@ public partial class FormCarConfig : Form
|
||||
Bitmap bmp = new(pictureBoxObject.Width, pictureBoxObject.Height);
|
||||
Graphics gr = Graphics.FromImage(bmp);
|
||||
_car?.SetPictureSize(pictureBoxObject.Width, pictureBoxObject.Height);
|
||||
_car?.SetPosition(5, 5);
|
||||
_car?.SetPosition(15, 15);
|
||||
_car?.DrawTransport(gr);
|
||||
pictureBoxObject.Image = bmp;
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ public partial class FormSportCar : Form
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перемешение объекта по форме (нажатие кнопок навигации)
|
||||
/// Перемещение объекта по форме (нажатие кнопок навигации)
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
|
Loading…
Reference in New Issue
Block a user