Group-10 LastNameF.P. LabWork08 Simple #9

Closed
eegov wants to merge 5 commits from LabWork08 into LabWork07
14 changed files with 99 additions and 42 deletions
Showing only changes of commit e4ffccbd5b - Show all commits

View File

@ -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)
{
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);

View File

@ -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>

View File

@ -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)
{

View File

@ -38,6 +38,8 @@ public class EntityCar
BodyColor = bodyColor;
}
//TODO Прописать метод
/// <summary>
/// Получение строк со значениями свойств объекта класса-сущности
/// </summary>

View File

@ -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;
}
}

View File

@ -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() { }

View File

@ -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);

View File

@ -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)
{

View File

@ -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;

View File

@ -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;
}

View File

@ -59,7 +59,7 @@ public partial class FormSportCar : Form
}
/// <summary>
/// Перемешение объекта по форме (нажатие кнопок навигации)
/// Перемещение объекта по форме (нажатие кнопок навигации)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>