From ece84af0ad16cdbf9f2b6c64e7c4fe5d56f4f761 Mon Sep 17 00:00:00 2001 From: ILYAkuznetsov73 <148066069+ILYAkuznetsov73@users.noreply.github.com> Date: Wed, 8 May 2024 08:43:22 +0400 Subject: [PATCH 1/2] =?UTF-8?q?=D0=BB=D0=B0=D0=B1=D0=B07?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aop4/Aop4.sln | 31 ++++ Aop4/Aop4/Aop4.cpp | 128 +++++++++++++++++ Aop4/Aop4/Aop4.vcxproj | 136 ++++++++++++++++++ Aop4/Aop4/Aop4.vcxproj.filters | 22 +++ Coursework/Coursework.sln | 25 ++++ Coursework/Coursework/Coursework.csproj | 11 ++ Coursework/Coursework/Program.cs | 18 +++ Coursework/Coursework/classes/Manager.cs | 46 ++++++ Coursework/Coursework/classes/Parameters.cs | 13 ++ .../classes/SortedArrayOperation.cs | 39 +++++ Coursework/Coursework/classes/State.cs | 17 +++ Coursework/Coursework/classes/StateStorage.cs | 59 ++++++++ Coursework/Coursework/classes/Visualizer.cs | 20 +++ .../Coursework/forms/InputForm.Designer.cs | 39 +++++ Coursework/Coursework/forms/InputForm.cs | 62 ++++++++ Coursework/Coursework/forms/InputForm.resx | 120 ++++++++++++++++ .../Coursework/forms/MainForm.Designer.cs | 39 +++++ Coursework/Coursework/forms/MainForm.cs | 56 ++++++++ Coursework/Coursework/forms/MainForm.resx | 120 ++++++++++++++++ Coursework2/Coursework2.sln | 25 ++++ Coursework2/Coursework2/Coursework2.csproj | 11 ++ Coursework2/Coursework2/Program.cs | 17 +++ .../AbstractCompany.cs | 2 +- .../ListGenericObjects.cs | 36 ++--- .../MassiveGenericObjects.cs | 25 ++-- .../StorageCollection.cs | 32 +++-- .../Exceptions/CollectionOverflowException.cs | 17 +++ .../Exceptions/ObjectNotFoundException.cs | 17 +++ .../PositionOutOfCollectionException.cs | 17 +++ .../FormTankerCollection.cs | 124 +++++++++++----- .../ProjectGasolineTanker/Program.cs | 27 +++- .../ProjectGasolineTanker.csproj | 20 +++ .../ProjectGasolineTanker/serilog.json | 15 ++ 33 files changed, 1313 insertions(+), 73 deletions(-) create mode 100644 Aop4/Aop4.sln create mode 100644 Aop4/Aop4/Aop4.cpp create mode 100644 Aop4/Aop4/Aop4.vcxproj create mode 100644 Aop4/Aop4/Aop4.vcxproj.filters create mode 100644 Coursework/Coursework.sln create mode 100644 Coursework/Coursework/Coursework.csproj create mode 100644 Coursework/Coursework/Program.cs create mode 100644 Coursework/Coursework/classes/Manager.cs create mode 100644 Coursework/Coursework/classes/Parameters.cs create mode 100644 Coursework/Coursework/classes/SortedArrayOperation.cs create mode 100644 Coursework/Coursework/classes/State.cs create mode 100644 Coursework/Coursework/classes/StateStorage.cs create mode 100644 Coursework/Coursework/classes/Visualizer.cs create mode 100644 Coursework/Coursework/forms/InputForm.Designer.cs create mode 100644 Coursework/Coursework/forms/InputForm.cs create mode 100644 Coursework/Coursework/forms/InputForm.resx create mode 100644 Coursework/Coursework/forms/MainForm.Designer.cs create mode 100644 Coursework/Coursework/forms/MainForm.cs create mode 100644 Coursework/Coursework/forms/MainForm.resx create mode 100644 Coursework2/Coursework2.sln create mode 100644 Coursework2/Coursework2/Coursework2.csproj create mode 100644 Coursework2/Coursework2/Program.cs create mode 100644 ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/CollectionOverflowException.cs create mode 100644 ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/ObjectNotFoundException.cs create mode 100644 ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/PositionOutOfCollectionException.cs create mode 100644 ProjectGasolineTanker/ProjectGasolineTanker/serilog.json diff --git a/Aop4/Aop4.sln b/Aop4/Aop4.sln new file mode 100644 index 0000000..351e1a6 --- /dev/null +++ b/Aop4/Aop4.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34525.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aop4", "Aop4\Aop4.vcxproj", "{325E9151-1DD3-46F9-92DF-38BF04D3741F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Debug|x64.ActiveCfg = Debug|x64 + {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Debug|x64.Build.0 = Debug|x64 + {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Debug|x86.ActiveCfg = Debug|Win32 + {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Debug|x86.Build.0 = Debug|Win32 + {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Release|x64.ActiveCfg = Release|x64 + {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Release|x64.Build.0 = Release|x64 + {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Release|x86.ActiveCfg = Release|Win32 + {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {11FE05AC-626B-4577-BD0E-7AA74D8175A2} + EndGlobalSection +EndGlobal diff --git a/Aop4/Aop4/Aop4.cpp b/Aop4/Aop4/Aop4.cpp new file mode 100644 index 0000000..a13f1e6 --- /dev/null +++ b/Aop4/Aop4/Aop4.cpp @@ -0,0 +1,128 @@ +#define _CRT_SECURE_NO_WARNINGS + +#include + +#include +#include +#include +#include + +#define SIZE 10 + +struct DataItem { + int key; + int data; +}; + +struct DataItem* hashArray[SIZE]; +struct DataItem* dummyItem; + +int hashCode1(int key) { + return key % SIZE; +} + +int hashCode2(int key) { + return 7 - (key % 7); // should be a prime number less than SIZE +} + +void insert(int key, int data) { + struct DataItem* item = (struct DataItem*)malloc(sizeof(struct DataItem)); + item->key = key; + item->data = data; + + int hashIndex = hashCode1(key); + int stepSize = hashCode2(key); + + while (hashArray[hashIndex] != NULL && hashArray[hashIndex]->key != -1) { + hashIndex += stepSize; + hashIndex %= SIZE; + } + + hashArray[hashIndex] = item; +} + +struct DataItem* search(int key) { + int hashIndex = hashCode1(key); + int stepSize = hashCode2(key); + + while (hashArray[hashIndex] != NULL) { + if (hashArray[hashIndex]->key == key) { + return hashArray[hashIndex]; + } + + hashIndex += stepSize; + hashIndex %= SIZE; + } + + return NULL; +} + +void display() { + int i; + for (i = 0; i < SIZE; i++) { + if (hashArray[i] != NULL) { + printf("(%d,%d) ", hashArray[i]->key, hashArray[i]->data); + } + else { + printf("~ "); + } + } + printf("\n"); +} + +int main() { + int choice, key, data; + dummyItem = (struct DataItem*)malloc(sizeof(struct DataItem)); + dummyItem->key = -1; + dummyItem->data = -1; + + // Fill the hash table with random values at the start + srand(time(NULL)); + for (int i = 0; i < SIZE; i++) { + int key = rand() % 100; // Generate a random key + int data = rand() % 1000; // Generate a random data + insert(key, data); + } + + while (1) { + printf("\n--- Menu ---\n"); + printf("1. Insert an element"); + printf("2. Search for an element"); + printf("3. Display the hash table"); + printf("4. Exit"); + printf("Choose an action: "); + scanf("%d", &choice); + + switch (choice) { + case 1: + printf("Enter key: "); + scanf("%d", &key); + printf("Enter data: "); + scanf("%d", &data); + insert(key, data); + break; + case 2: + printf("Enter key to search for: "); + scanf("%d", &key); + struct DataItem* item = search(key); + if (item != NULL) { + printf("Element found: (%d, %d)\n", item->key, item->data); + } + else { + printf("Element not found.\n"); + } + break; + case 3: + printf("Hash table: "); + display(); + break; + case 4: + printf("Program terminated.\n"); + exit(0); + default: + printf("Invalid choice. Please try again.\n"); + } + } + + return 0; +} \ No newline at end of file diff --git a/Aop4/Aop4/Aop4.vcxproj b/Aop4/Aop4/Aop4.vcxproj new file mode 100644 index 0000000..b34cf0b --- /dev/null +++ b/Aop4/Aop4/Aop4.vcxproj @@ -0,0 +1,136 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {325e9151-1dd3-46f9-92df-38bf04d3741f} + Aop4 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdc11 + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/Aop4/Aop4/Aop4.vcxproj.filters b/Aop4/Aop4/Aop4.vcxproj.filters new file mode 100644 index 0000000..656314d --- /dev/null +++ b/Aop4/Aop4/Aop4.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Исходные файлы + + + \ No newline at end of file diff --git a/Coursework/Coursework.sln b/Coursework/Coursework.sln new file mode 100644 index 0000000..6b0f705 --- /dev/null +++ b/Coursework/Coursework.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34525.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Coursework", "Coursework\Coursework.csproj", "{937829AA-8125-47BC-9126-78E67D379D9D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {937829AA-8125-47BC-9126-78E67D379D9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {937829AA-8125-47BC-9126-78E67D379D9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {937829AA-8125-47BC-9126-78E67D379D9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {937829AA-8125-47BC-9126-78E67D379D9D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DA38A496-655D-4DA5-B898-F9A1FB78DA07} + EndGlobalSection +EndGlobal diff --git a/Coursework/Coursework/Coursework.csproj b/Coursework/Coursework/Coursework.csproj new file mode 100644 index 0000000..e1a0735 --- /dev/null +++ b/Coursework/Coursework/Coursework.csproj @@ -0,0 +1,11 @@ + + + + WinExe + net7.0-windows + enable + true + enable + + + \ No newline at end of file diff --git a/Coursework/Coursework/Program.cs b/Coursework/Coursework/Program.cs new file mode 100644 index 0000000..a99519e --- /dev/null +++ b/Coursework/Coursework/Program.cs @@ -0,0 +1,18 @@ +using Coursework.forms; + +namespace Coursework; + +public class Program +{ + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new MainForm()); + } +} \ No newline at end of file diff --git a/Coursework/Coursework/classes/Manager.cs b/Coursework/Coursework/classes/Manager.cs new file mode 100644 index 0000000..728c3d4 --- /dev/null +++ b/Coursework/Coursework/classes/Manager.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Coursework.classes +{ + public class Manager + { + private SortedArrayOperation arrayOperation; + private StateStorage stateStorage; + + public Manager() + { + arrayOperation = new SortedArrayOperation(); + stateStorage = new StateStorage(); + } + + public void PerformOperation(int element, bool isAddOperation) + { + if (isAddOperation) + { + arrayOperation.AddElement(element); + } + else + { + arrayOperation.RemoveElement(element); + } + + State currentState = arrayOperation.GetState(); + stateStorage.AddState(currentState); + } + + public void SaveStates(string filePath) + { + stateStorage.SaveStatesToFile(filePath); + } + + public void LoadStates(string filePath) + { + stateStorage.LoadStatesFromFile(filePath); + } + } + +} diff --git a/Coursework/Coursework/classes/Parameters.cs b/Coursework/Coursework/classes/Parameters.cs new file mode 100644 index 0000000..90c64de --- /dev/null +++ b/Coursework/Coursework/classes/Parameters.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Coursework.classes; + +public class Parameters +{ + public int InitialSize { get; set; } + public int InitialMaxValue { get; set; } +} diff --git a/Coursework/Coursework/classes/SortedArrayOperation.cs b/Coursework/Coursework/classes/SortedArrayOperation.cs new file mode 100644 index 0000000..4661305 --- /dev/null +++ b/Coursework/Coursework/classes/SortedArrayOperation.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.IO; +using System.Windows.Forms; +using static System.Windows.Forms.AxHost; + +namespace Coursework.classes; + +public class SortedArrayOperation +{ + private List sortedArray; + + public SortedArrayOperation() + { + sortedArray = new List(); + } + + public void AddElement(int element) + { + int index = sortedArray.BinarySearch(element); + if (index < 0) + { + sortedArray.Insert(~index, element); + } + } + + public void RemoveElement(int element) + { + sortedArray.Remove(element); + } + + public State GetState() + { + return new State(sortedArray); + } +} diff --git a/Coursework/Coursework/classes/State.cs b/Coursework/Coursework/classes/State.cs new file mode 100644 index 0000000..883c8d0 --- /dev/null +++ b/Coursework/Coursework/classes/State.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Coursework.classes; + +public class State +{ + public List ArrayState { get; } + + public State(List arrayState) + { + ArrayState = new List(arrayState); + } +} diff --git a/Coursework/Coursework/classes/StateStorage.cs b/Coursework/Coursework/classes/StateStorage.cs new file mode 100644 index 0000000..d1564f3 --- /dev/null +++ b/Coursework/Coursework/classes/StateStorage.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Coursework.classes; + +public class StateStorage +{ + private List states; + + public StateStorage() + { + states = new List(); + } + + public void AddState(State state) + { + states.Add(state); + } + + public void SaveStatesToFile(string filePath) + { + using (StreamWriter writer = new StreamWriter(filePath)) + { + foreach (State state in states) + { + foreach (int element in state.ArrayState) + { + writer.WriteLine(element); + } + writer.WriteLine(); + } + } + } + + public void LoadStatesFromFile(string filePath) + { + states.Clear(); + using (StreamReader reader = new StreamReader(filePath)) + { + List currentState = new List(); + string line; + while ((line = reader.ReadLine()) != null) + { + if (line == "") + { + states.Add(new State(currentState)); + currentState.Clear(); + } + else + { + currentState.Add(int.Parse(line)); + } + } + } + } +} diff --git a/Coursework/Coursework/classes/Visualizer.cs b/Coursework/Coursework/classes/Visualizer.cs new file mode 100644 index 0000000..52fd97a --- /dev/null +++ b/Coursework/Coursework/classes/Visualizer.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Coursework.classes; + +public class Visualizer +{ + public void Visualize(State state) + { + // Implement visualization of the array state + foreach (int element in state.ArrayState) + { + Console.Write(element + " "); + } + Console.WriteLine(); + } +} diff --git a/Coursework/Coursework/forms/InputForm.Designer.cs b/Coursework/Coursework/forms/InputForm.Designer.cs new file mode 100644 index 0000000..e32b7a9 --- /dev/null +++ b/Coursework/Coursework/forms/InputForm.Designer.cs @@ -0,0 +1,39 @@ +namespace Coursework.forms +{ + partial class InputForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Text = "InputForm"; + } + + #endregion + } +} \ No newline at end of file diff --git a/Coursework/Coursework/forms/InputForm.cs b/Coursework/Coursework/forms/InputForm.cs new file mode 100644 index 0000000..ff607e4 --- /dev/null +++ b/Coursework/Coursework/forms/InputForm.cs @@ -0,0 +1,62 @@ +using Coursework.classes; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Coursework.forms +{ + public partial class InputForm : Form + { + private Manager manager; + + public InputForm(Manager manager) + { + this.manager = manager; + + Label label1 = new Label(); + label1.Text = "Initial Size:"; + TextBox sizeTextBox = new TextBox(); + + Label label2 = new Label(); + label2.Text = "Initial Max Value:"; + TextBox maxValueTextBox = new TextBox(); + + Button submitButton = new Button(); + submitButton.Text = "Submit"; + submitButton.Click += (sender, e) => + { + int size = int.Parse(sizeTextBox.Text); + int maxValue = int.Parse(maxValueTextBox.Text); + + // Set initial parameters + Parameters initialParameters = new Parameters + { + InitialSize = size, + InitialMaxValue = maxValue + }; + + // Initialize array with initial values + Random random = new Random(); + for (int i = 0; i < size; i++) + { + manager.PerformOperation(random.Next(maxValue), true); + } + + this.Close(); + }; + + Controls.Add(label1); + Controls.Add(sizeTextBox); + Controls.Add(label2); + Controls.Add(maxValueTextBox); + Controls.Add(submitButton); + } + } + +} diff --git a/Coursework/Coursework/forms/InputForm.resx b/Coursework/Coursework/forms/InputForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Coursework/Coursework/forms/InputForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Coursework/Coursework/forms/MainForm.Designer.cs b/Coursework/Coursework/forms/MainForm.Designer.cs new file mode 100644 index 0000000..edd5ccd --- /dev/null +++ b/Coursework/Coursework/forms/MainForm.Designer.cs @@ -0,0 +1,39 @@ +namespace Coursework.forms +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Text = "MainForm"; + } + + #endregion + } +} \ No newline at end of file diff --git a/Coursework/Coursework/forms/MainForm.cs b/Coursework/Coursework/forms/MainForm.cs new file mode 100644 index 0000000..f8692ff --- /dev/null +++ b/Coursework/Coursework/forms/MainForm.cs @@ -0,0 +1,56 @@ +using Coursework.classes; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Coursework.forms +{ + public partial class MainForm : Form + { + private Manager manager; + private TextBox elementTextBox; + + public MainForm() + { + InitializeComponent(); + manager = new Manager(); + + // Create TableLayoutPanel + var tableLayoutPanel = new TableLayoutPanel(); + tableLayoutPanel.Dock = DockStyle.Top; + tableLayoutPanel.RowCount = 1; + tableLayoutPanel.ColumnCount = 3; + + // Add controls to TableLayoutPanel + tableLayoutPanel.Controls.Add(new Label { Text = "Element:" }, 0, 0); + elementTextBox = new TextBox(); + tableLayoutPanel.Controls.Add(elementTextBox, 1, 0); + var addButton = new Button { Text = "Add Element" }; + addButton.Click += AddButtonClick; + tableLayoutPanel.Controls.Add(addButton, 2, 0); + var removeButton = new Button { Text = "Remove Element" }; + removeButton.Click += RemoveButtonClick; + tableLayoutPanel.Controls.Add(removeButton, 3, 0); + + Controls.Add(tableLayoutPanel); + } + + private void AddButtonClick(object sender, EventArgs e) + { + int element = int.Parse(elementTextBox.Text); + manager.PerformOperation(element, true); + } + + private void RemoveButtonClick(object sender, EventArgs e) + { + int element = int.Parse(elementTextBox.Text); + manager.PerformOperation(element, false); + } + } +} diff --git a/Coursework/Coursework/forms/MainForm.resx b/Coursework/Coursework/forms/MainForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Coursework/Coursework/forms/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Coursework2/Coursework2.sln b/Coursework2/Coursework2.sln new file mode 100644 index 0000000..99b07de --- /dev/null +++ b/Coursework2/Coursework2.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34525.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Coursework2", "Coursework2\Coursework2.csproj", "{CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6AF063FA-1D75-4AAD-91B5-FCB220F89BAB} + EndGlobalSection +EndGlobal diff --git a/Coursework2/Coursework2/Coursework2.csproj b/Coursework2/Coursework2/Coursework2.csproj new file mode 100644 index 0000000..e1a0735 --- /dev/null +++ b/Coursework2/Coursework2/Coursework2.csproj @@ -0,0 +1,11 @@ + + + + WinExe + net7.0-windows + enable + true + enable + + + \ No newline at end of file diff --git a/Coursework2/Coursework2/Program.cs b/Coursework2/Coursework2/Program.cs new file mode 100644 index 0000000..f794ce3 --- /dev/null +++ b/Coursework2/Coursework2/Program.cs @@ -0,0 +1,17 @@ +namespace Coursework2 +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/AbstractCompany.cs b/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/AbstractCompany.cs index 6eb2517..dbb2052 100644 --- a/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/AbstractCompany.cs +++ b/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/AbstractCompany.cs @@ -38,7 +38,7 @@ public abstract class AbstractCompany /// /// Вычисление максимального количества элементов, который можно разместить в окне /// - private int GetMaxCount => _pictureWidth * _pictureHeight / (_placeSizeWidth * _placeSizeHeight); + private int GetMaxCount => _pictureWidth * _pictureHeight / (_placeSizeWidth * _placeSizeHeight)-6; /// /// Конструктор diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/ListGenericObjects.cs b/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/ListGenericObjects.cs index 86a38e5..8de8d91 100644 --- a/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/ListGenericObjects.cs +++ b/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/ListGenericObjects.cs @@ -1,4 +1,5 @@ -using System; +using ProjectGasolineTanker.Exceptions; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -21,16 +22,6 @@ public class ListGenericObjects : ICollectionGenericObjects public int Count => _collection.Count; - /// - /// Конструктор - /// - public ListGenericObjects() - { - _collection = new(); - } - - public CollectionType GetCollectionType => CollectionType.List; - public int MaxCount { get @@ -47,10 +38,20 @@ public class ListGenericObjects : ICollectionGenericObjects } } + public CollectionType GetCollectionType => CollectionType.List; + + /// + /// Конструктор + /// + public ListGenericObjects() + { + _collection = new(); + } + public T? Get(int position) { if (position >= Count || position < 0) - return null; + throw new PositionOutOfCollectionException(position); return _collection[position]; } @@ -58,7 +59,8 @@ public class ListGenericObjects : ICollectionGenericObjects public int Insert(T obj) { if (Count + 1 > _maxCount) - return -1; + throw new CollectionOverflowException(Count); + _collection.Add(obj); return Count; } @@ -66,9 +68,11 @@ public class ListGenericObjects : ICollectionGenericObjects public int Insert(T obj, int position) { if (Count + 1 > _maxCount) - return -1; + throw new CollectionOverflowException(Count); + if (position < 0 || position > Count) - return -1; + throw new PositionOutOfCollectionException(position); + _collection.Insert(position, obj); return 1; } @@ -76,7 +80,7 @@ public class ListGenericObjects : ICollectionGenericObjects public T? Remove(int position) { if (position < 0 || position > Count) - return null; + throw new PositionOutOfCollectionException(position); T? temp = _collection[position]; _collection.RemoveAt(position); diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/MassiveGenericObjects.cs b/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/MassiveGenericObjects.cs index c019d95..aebffc2 100644 --- a/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/MassiveGenericObjects.cs +++ b/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/MassiveGenericObjects.cs @@ -1,4 +1,5 @@ -using System; +using ProjectGasolineTanker.Exceptions; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -52,12 +53,16 @@ public class MassiveGenericObjects : ICollectionGenericObjects public T? Get(int position) { if (position < 0 || position >= Count) - return null; + throw new PositionOutOfCollectionException(position); + + if (position >= _collection.Length && _collection[position] == null) + throw new ObjectNotFoundException(position); + return _collection[position]; } public int Insert(T obj) - { + { for (int i = 0; i < Count; i++) { if (_collection[i] == null) @@ -66,13 +71,13 @@ public class MassiveGenericObjects : ICollectionGenericObjects return i; } } - return -1; + throw new CollectionOverflowException(Count); } public int Insert(T obj, int position) { if (position < 0 || position >= Count) - return -1; + throw new PositionOutOfCollectionException(position); if (_collection[position] == null) { @@ -101,19 +106,16 @@ public class MassiveGenericObjects : ICollectionGenericObjects } temp--; } - - return -1; + throw new CollectionOverflowException(Count); } public T? Remove(int position) { if (position < 0 || position >= Count) - return null; + throw new PositionOutOfCollectionException(position); if (_collection[position] == null) - { - return null; - } + throw new ObjectNotFoundException(position); T? temp = _collection[position]; _collection[position] = null; @@ -128,3 +130,4 @@ public class MassiveGenericObjects : ICollectionGenericObjects } } } + diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/StorageCollection.cs b/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/StorageCollection.cs index b3abe18..1c90976 100644 --- a/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/StorageCollection.cs +++ b/ProjectGasolineTanker/ProjectGasolineTanker/CollectionGenericObjects/StorageCollection.cs @@ -1,4 +1,5 @@ using ProjectGasolineTanker.Drawings; +using ProjectGasolineTanker.Exceptions; using System; using System.Collections.Generic; using System.Linq; @@ -92,10 +93,10 @@ public class StorageCollection } } - public bool SaveData(string filename) + public void SaveData(string filename) { if (_storages.Count == 0) - return false; + throw new InvalidDataException("В хранилище отсутсвуют коллекции для сохранения"); if (File.Exists(filename)) File.Delete(filename); @@ -130,14 +131,13 @@ public class StorageCollection sw.Write(_separatorItems); } } - return true; } - public bool LoadData(string filename) + public void LoadData(string filename) { if (!File.Exists(filename)) { - return false; + throw new FileNotFoundException("Файл не существует"); } using (FileStream fs = new(filename, FileMode.Open)) @@ -147,12 +147,12 @@ public class StorageCollection string str = sr.ReadLine(); if (str == null || str.Length == 0) { - return false; + throw new InvalidDataException("В файле нет данных"); } if (!str.Equals(_collectionKey)) { - return false; + throw new InvalidOperationException("В файле неверные данные"); } _storages.Clear(); @@ -168,7 +168,7 @@ public class StorageCollection ICollectionGenericObjects? collection = StorageCollection.CreateCollection(collectionType); if (collection == null) { - return false; + throw new InvalidOperationException("Не удалось создать коллекцию"); } collection.MaxCount = Convert.ToInt32(record[2]); @@ -176,16 +176,24 @@ public class StorageCollection string[] set = record[3].Split(_separatorItems, StringSplitOptions.RemoveEmptyEntries); foreach (string elem in set) { - if (elem?.CreateDrawingTanker() is T airplane) + if (elem?.CreateDrawingTanker() is T tanker) { - if (collection.Insert(airplane) == -1) - return false; + try + { + if (collection.Insert(tanker) == -1) + { + throw new InvalidOperationException("Объект не удалось добавить в коллекцию: " + record[3]); + } + } + catch (CollectionOverflowException ex) + { + throw new ArgumentOutOfRangeException("Коллекция переполнена", ex); + } } } _storages.Add(record[0], collection); } } - return true; } private static ICollectionGenericObjects? CreateCollection(CollectionType collectionType) diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/CollectionOverflowException.cs b/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/CollectionOverflowException.cs new file mode 100644 index 0000000..047cd31 --- /dev/null +++ b/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/CollectionOverflowException.cs @@ -0,0 +1,17 @@ +using System.Runtime.Serialization; + +namespace ProjectGasolineTanker.Exceptions; + +[Serializable] +internal class CollectionOverflowException : ApplicationException +{ + public CollectionOverflowException(int count) : base("В коллекции превышено допустимое количество: " + count) { } + + public CollectionOverflowException() : base() { } + + public CollectionOverflowException(string message) : base(message) { } + + public CollectionOverflowException(string message, Exception exception) : base(message, exception) { } + + protected CollectionOverflowException(SerializationInfo info, StreamingContext contex) : base(info, contex) { } +} diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/ObjectNotFoundException.cs b/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/ObjectNotFoundException.cs new file mode 100644 index 0000000..9cc8bbf --- /dev/null +++ b/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/ObjectNotFoundException.cs @@ -0,0 +1,17 @@ +using System.Runtime.Serialization; + +namespace ProjectGasolineTanker.Exceptions; + +[Serializable] +internal class ObjectNotFoundException : ApplicationException +{ + public ObjectNotFoundException(int i) : base("Не найден объект по позиции " + i) { } + + public ObjectNotFoundException() : base() { } + + public ObjectNotFoundException(string message) : base(message) { } + + public ObjectNotFoundException(string message, Exception exception) : base(message, exception) { } + + protected ObjectNotFoundException(SerializationInfo info, StreamingContext contex) : base(info, contex) { } +} \ No newline at end of file diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/PositionOutOfCollectionException.cs b/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/PositionOutOfCollectionException.cs new file mode 100644 index 0000000..ca0ef90 --- /dev/null +++ b/ProjectGasolineTanker/ProjectGasolineTanker/Exceptions/PositionOutOfCollectionException.cs @@ -0,0 +1,17 @@ +using System.Runtime.Serialization; + +namespace ProjectGasolineTanker.Exceptions; + +[Serializable] +internal class PositionOutOfCollectionException : ApplicationException +{ + public PositionOutOfCollectionException(int i) : base("Выход за границы коллекции. Позиция " + i) { } + + public PositionOutOfCollectionException() : base() { } + + public PositionOutOfCollectionException(string message) : base(message) { } + + public PositionOutOfCollectionException(string message, Exception exception) : base(message, exception) { } + + protected PositionOutOfCollectionException(SerializationInfo info, StreamingContext contex) : base(info, contex) { } +} diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/FormTankerCollection.cs b/ProjectGasolineTanker/ProjectGasolineTanker/FormTankerCollection.cs index 8f697ef..4652365 100644 --- a/ProjectGasolineTanker/ProjectGasolineTanker/FormTankerCollection.cs +++ b/ProjectGasolineTanker/ProjectGasolineTanker/FormTankerCollection.cs @@ -9,6 +9,8 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ProjectGasolineTanker.Drawings; +using Microsoft.Extensions.Logging; +using ProjectGasolineTanker.Exceptions; namespace ProjectGasolineTanker; @@ -20,13 +22,17 @@ public partial class FormTankerCollection : Form /// private AbstractCompany? _company = null; + private readonly ILogger _logger; + /// /// Конструктор /// - public FormTankerCollection() + public FormTankerCollection(ILogger logger) { InitializeComponent(); _storageCollection = new(); + _logger = logger; + _logger.LogInformation("Форма загрузилась"); } /// @@ -49,18 +55,26 @@ public partial class FormTankerCollection : Form private void SetTanker(DrawingTanker tanker) { if (_company == null || tanker == null) - { return; - } - if (_company + tanker != -1) + try { - MessageBox.Show("Объект добавлен"); - pictureBox.Image = _company.Show(); + if (_company + tanker != -1) + { + MessageBox.Show("Объект добавлен"); + pictureBox.Image = _company.Show(); + _logger.LogInformation("Добавлен объект: " + tanker.GetDataForSave()); + } } - else + catch (CollectionOverflowException ex) { - MessageBox.Show("Не удалось добавить объект"); + MessageBox.Show(ex.Message); + _logger.LogError("Ошибка: {Message}", ex.Message); + } + catch (ObjectNotFoundException ex) + { + MessageBox.Show(ex.Message); + _logger.LogError("Ошибка: {Message}", ex.Message); } } @@ -82,14 +96,25 @@ public partial class FormTankerCollection : Form } int pos = Convert.ToInt32(maskedTextBox1.Text); - if (_company - pos != null) + + try { - MessageBox.Show("Объект удален"); - pictureBox.Image = _company.Show(); + if (_company - pos != null) + { + MessageBox.Show("Объект удален"); + pictureBox.Image = _company.Show(); + _logger.LogInformation("Удален объект по позиции " + pos); + } } - else + catch (PositionOutOfCollectionException ex) { - MessageBox.Show("Не удалось удалить объект"); + MessageBox.Show(ex.Message); + _logger.LogError("Ошибка: {Message}", ex.Message); + } + catch (ObjectNotFoundException ex) + { + MessageBox.Show(ex.Message); + _logger.LogError("Ошибка: {Message}", ex.Message); } } @@ -109,11 +134,22 @@ public partial class FormTankerCollection : Form int counter = 100; while (tanker == null) { - tanker = _company.GetRandomObject(); - counter--; - if (counter <= 0) + try { - break; + tanker = _company.GetRandomObject(); + counter--; + if (counter <= 0) + { + break; + } + } + catch (PositionOutOfCollectionException ex) + { + MessageBox.Show(ex.Message); + } + catch (ObjectNotFoundException ex) + { + MessageBox.Show(ex.Message); } } @@ -152,14 +188,34 @@ public partial class FormTankerCollection : Form return; } - CollectionType collectionType = CollectionType.None; - if (radioButtonMassive.Checked) - collectionType = CollectionType.Massive; - else if (radioButtonList.Checked) - collectionType = CollectionType.List; + //CollectionType collectionType = CollectionType.None; + //if (radioButtonMassive.Checked) + // collectionType = CollectionType.Massive; + //else if (radioButtonList.Checked) + // collectionType = CollectionType.List; - _storageCollection.AddCollection(textBoxCollectionName.Text, collectionType); - RefreshListBoxItems(); + //_storageCollection.AddCollection(textBoxCollectionName.Text, collectionType); + //RefreshListBoxItems(); + + try + { + CollectionType collectionType = CollectionType.None; + if (radioButtonMassive.Checked) + { + collectionType = CollectionType.Massive; + } + else if (radioButtonList.Checked) + { + collectionType = CollectionType.List; + } + _storageCollection.AddCollection(textBoxCollectionName.Text, collectionType); + RefreshListBoxItems(); + _logger.LogInformation("Коллекция добавлена " + textBoxCollectionName.Text); + } + catch (Exception ex) + { + _logger.LogError("Ошибка: {Message}", ex.Message); + } } private void RefreshListBoxItems() @@ -169,9 +225,7 @@ public partial class FormTankerCollection : Form { string? colName = _storageCollection.Keys?[i]; if (!string.IsNullOrEmpty(colName)) - { listBoxCollection.Items.Add(colName); - } } } @@ -221,13 +275,16 @@ public partial class FormTankerCollection : Form { if (saveFileDialog.ShowDialog() == DialogResult.OK) { - if (_storageCollection.SaveData(saveFileDialog.FileName)) + try { + _storageCollection.SaveData(saveFileDialog.FileName); MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.LogInformation("Сохранение в файл: {filename}", saveFileDialog.FileName); } - else + catch (Exception ex) { - MessageBox.Show("Не сохранилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(ex.Message, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.LogError("Ошибка: {Message}", ex.Message); } } } @@ -236,14 +293,17 @@ public partial class FormTankerCollection : Form { if (openFileDialog.ShowDialog() == DialogResult.OK) { - if (_storageCollection.LoadData(openFileDialog.FileName)) + try { + _storageCollection.LoadData(openFileDialog.FileName); MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); RefreshListBoxItems(); + _logger.LogInformation("Загрузка из файла: {filename}", openFileDialog.FileName); } - else + catch (Exception ex) { - MessageBox.Show("Не сохранилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(ex.Message, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.LogError("Ошибка: {Message}", ex.Message); } } } diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/Program.cs b/ProjectGasolineTanker/ProjectGasolineTanker/Program.cs index 913060e..d3731fc 100644 --- a/ProjectGasolineTanker/ProjectGasolineTanker/Program.cs +++ b/ProjectGasolineTanker/ProjectGasolineTanker/Program.cs @@ -1,3 +1,8 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Serilog; + namespace ProjectGasolineTanker { internal static class Program @@ -11,7 +16,27 @@ namespace ProjectGasolineTanker // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new FormTankerCollection()); + ServiceCollection services = new(); + ConfigureServices(services); + using ServiceProvider serviceProvider = services.BuildServiceProvider(); + Application.Run(serviceProvider.GetRequiredService()); + } + + private static void ConfigureServices(ServiceCollection services) + { + string[] path = Directory.GetCurrentDirectory().Split('\\'); + string pathNeed = ""; + for (int i = 0; i < path.Length - 3; i++) + { + pathNeed += path[i] + "\\"; + } + services.AddSingleton() + .AddLogging(option => + { + option.SetMinimumLevel(LogLevel.Information); + option.AddSerilog(new LoggerConfiguration() + .ReadFrom.Configuration(new ConfigurationBuilder().AddJsonFile($"{pathNeed}serilog.json").Build()).CreateLogger()); + }); } } } \ No newline at end of file diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/ProjectGasolineTanker.csproj b/ProjectGasolineTanker/ProjectGasolineTanker/ProjectGasolineTanker.csproj index af03d74..08ed916 100644 --- a/ProjectGasolineTanker/ProjectGasolineTanker/ProjectGasolineTanker.csproj +++ b/ProjectGasolineTanker/ProjectGasolineTanker/ProjectGasolineTanker.csproj @@ -8,6 +8,20 @@ enable + + + + + + + + + + + + + + True @@ -23,4 +37,10 @@ + + + Always + + + \ No newline at end of file diff --git a/ProjectGasolineTanker/ProjectGasolineTanker/serilog.json b/ProjectGasolineTanker/ProjectGasolineTanker/serilog.json new file mode 100644 index 0000000..fa91ef7 --- /dev/null +++ b/ProjectGasolineTanker/ProjectGasolineTanker/serilog.json @@ -0,0 +1,15 @@ +{ + "Serilog": { + "Using": [ "Serilog.Sinks.File" ], + "MinimumLevel": "Debug", + "WriteTo": [ + { + "Name": "File", + "Args": { "path": "log.log" } + } + ], + "Properties": { + "Application": "Sample" + } + } +} \ No newline at end of file -- 2.25.1 From a6176637ea0f84690a899bf5e871810922acf9bd Mon Sep 17 00:00:00 2001 From: ILYAkuznetsov73 <148066069+ILYAkuznetsov73@users.noreply.github.com> Date: Tue, 21 May 2024 21:25:10 +0400 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BE=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BE=D1=82=20=D0=BD=D0=B5=D0=BD=D1=83=D0=B6=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aop4/Aop4.sln | 31 ---- Aop4/Aop4/Aop4.cpp | 128 --------------- Aop4/Aop4/Aop4.vcxproj | 136 ---------------- Aop4/Aop4/Aop4.vcxproj.filters | 22 --- Coursework/Coursework.sln | 25 --- Coursework/Coursework/Coursework.csproj | 11 -- Coursework/Coursework/Program.cs | 18 --- Coursework/Coursework/classes/Manager.cs | 46 ------ Coursework/Coursework/classes/Parameters.cs | 13 -- .../classes/SortedArrayOperation.cs | 39 ----- Coursework/Coursework/classes/State.cs | 17 -- Coursework/Coursework/classes/StateStorage.cs | 59 ------- Coursework/Coursework/classes/Visualizer.cs | 20 --- .../Coursework/forms/InputForm.Designer.cs | 39 ----- Coursework/Coursework/forms/InputForm.cs | 62 ------- Coursework/Coursework/forms/InputForm.resx | 120 -------------- .../Coursework/forms/MainForm.Designer.cs | 39 ----- Coursework/Coursework/forms/MainForm.cs | 56 ------- Coursework/Coursework/forms/MainForm.resx | 120 -------------- Coursework2/Coursework2.sln | 25 --- Coursework2/Coursework2/Coursework2.csproj | 11 -- Coursework2/Coursework2/Program.cs | 17 -- Lab1_OAP/Lab1_OAP.sln | 31 ---- Lab1_OAP/Lab1_OAP/Lab1_OAP.cpp | 1 - Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj | 135 ---------------- Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj.filters | 22 --- laboap1/laboap1.sln | 31 ---- laboap1/laboap1/laboap1.cpp | 151 ------------------ laboap1/laboap1/laboap1.vcxproj | 136 ---------------- laboap1/laboap1/laboap1.vcxproj.filters | 22 --- 30 files changed, 1583 deletions(-) delete mode 100644 Aop4/Aop4.sln delete mode 100644 Aop4/Aop4/Aop4.cpp delete mode 100644 Aop4/Aop4/Aop4.vcxproj delete mode 100644 Aop4/Aop4/Aop4.vcxproj.filters delete mode 100644 Coursework/Coursework.sln delete mode 100644 Coursework/Coursework/Coursework.csproj delete mode 100644 Coursework/Coursework/Program.cs delete mode 100644 Coursework/Coursework/classes/Manager.cs delete mode 100644 Coursework/Coursework/classes/Parameters.cs delete mode 100644 Coursework/Coursework/classes/SortedArrayOperation.cs delete mode 100644 Coursework/Coursework/classes/State.cs delete mode 100644 Coursework/Coursework/classes/StateStorage.cs delete mode 100644 Coursework/Coursework/classes/Visualizer.cs delete mode 100644 Coursework/Coursework/forms/InputForm.Designer.cs delete mode 100644 Coursework/Coursework/forms/InputForm.cs delete mode 100644 Coursework/Coursework/forms/InputForm.resx delete mode 100644 Coursework/Coursework/forms/MainForm.Designer.cs delete mode 100644 Coursework/Coursework/forms/MainForm.cs delete mode 100644 Coursework/Coursework/forms/MainForm.resx delete mode 100644 Coursework2/Coursework2.sln delete mode 100644 Coursework2/Coursework2/Coursework2.csproj delete mode 100644 Coursework2/Coursework2/Program.cs delete mode 100644 Lab1_OAP/Lab1_OAP.sln delete mode 100644 Lab1_OAP/Lab1_OAP/Lab1_OAP.cpp delete mode 100644 Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj delete mode 100644 Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj.filters delete mode 100644 laboap1/laboap1.sln delete mode 100644 laboap1/laboap1/laboap1.cpp delete mode 100644 laboap1/laboap1/laboap1.vcxproj delete mode 100644 laboap1/laboap1/laboap1.vcxproj.filters diff --git a/Aop4/Aop4.sln b/Aop4/Aop4.sln deleted file mode 100644 index 351e1a6..0000000 --- a/Aop4/Aop4.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34525.116 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aop4", "Aop4\Aop4.vcxproj", "{325E9151-1DD3-46F9-92DF-38BF04D3741F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Debug|x64.ActiveCfg = Debug|x64 - {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Debug|x64.Build.0 = Debug|x64 - {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Debug|x86.ActiveCfg = Debug|Win32 - {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Debug|x86.Build.0 = Debug|Win32 - {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Release|x64.ActiveCfg = Release|x64 - {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Release|x64.Build.0 = Release|x64 - {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Release|x86.ActiveCfg = Release|Win32 - {325E9151-1DD3-46F9-92DF-38BF04D3741F}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {11FE05AC-626B-4577-BD0E-7AA74D8175A2} - EndGlobalSection -EndGlobal diff --git a/Aop4/Aop4/Aop4.cpp b/Aop4/Aop4/Aop4.cpp deleted file mode 100644 index a13f1e6..0000000 --- a/Aop4/Aop4/Aop4.cpp +++ /dev/null @@ -1,128 +0,0 @@ -#define _CRT_SECURE_NO_WARNINGS - -#include - -#include -#include -#include -#include - -#define SIZE 10 - -struct DataItem { - int key; - int data; -}; - -struct DataItem* hashArray[SIZE]; -struct DataItem* dummyItem; - -int hashCode1(int key) { - return key % SIZE; -} - -int hashCode2(int key) { - return 7 - (key % 7); // should be a prime number less than SIZE -} - -void insert(int key, int data) { - struct DataItem* item = (struct DataItem*)malloc(sizeof(struct DataItem)); - item->key = key; - item->data = data; - - int hashIndex = hashCode1(key); - int stepSize = hashCode2(key); - - while (hashArray[hashIndex] != NULL && hashArray[hashIndex]->key != -1) { - hashIndex += stepSize; - hashIndex %= SIZE; - } - - hashArray[hashIndex] = item; -} - -struct DataItem* search(int key) { - int hashIndex = hashCode1(key); - int stepSize = hashCode2(key); - - while (hashArray[hashIndex] != NULL) { - if (hashArray[hashIndex]->key == key) { - return hashArray[hashIndex]; - } - - hashIndex += stepSize; - hashIndex %= SIZE; - } - - return NULL; -} - -void display() { - int i; - for (i = 0; i < SIZE; i++) { - if (hashArray[i] != NULL) { - printf("(%d,%d) ", hashArray[i]->key, hashArray[i]->data); - } - else { - printf("~ "); - } - } - printf("\n"); -} - -int main() { - int choice, key, data; - dummyItem = (struct DataItem*)malloc(sizeof(struct DataItem)); - dummyItem->key = -1; - dummyItem->data = -1; - - // Fill the hash table with random values at the start - srand(time(NULL)); - for (int i = 0; i < SIZE; i++) { - int key = rand() % 100; // Generate a random key - int data = rand() % 1000; // Generate a random data - insert(key, data); - } - - while (1) { - printf("\n--- Menu ---\n"); - printf("1. Insert an element"); - printf("2. Search for an element"); - printf("3. Display the hash table"); - printf("4. Exit"); - printf("Choose an action: "); - scanf("%d", &choice); - - switch (choice) { - case 1: - printf("Enter key: "); - scanf("%d", &key); - printf("Enter data: "); - scanf("%d", &data); - insert(key, data); - break; - case 2: - printf("Enter key to search for: "); - scanf("%d", &key); - struct DataItem* item = search(key); - if (item != NULL) { - printf("Element found: (%d, %d)\n", item->key, item->data); - } - else { - printf("Element not found.\n"); - } - break; - case 3: - printf("Hash table: "); - display(); - break; - case 4: - printf("Program terminated.\n"); - exit(0); - default: - printf("Invalid choice. Please try again.\n"); - } - } - - return 0; -} \ No newline at end of file diff --git a/Aop4/Aop4/Aop4.vcxproj b/Aop4/Aop4/Aop4.vcxproj deleted file mode 100644 index b34cf0b..0000000 --- a/Aop4/Aop4/Aop4.vcxproj +++ /dev/null @@ -1,136 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 17.0 - Win32Proj - {325e9151-1dd3-46f9-92df-38bf04d3741f} - Aop4 - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - stdc11 - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - - \ No newline at end of file diff --git a/Aop4/Aop4/Aop4.vcxproj.filters b/Aop4/Aop4/Aop4.vcxproj.filters deleted file mode 100644 index 656314d..0000000 --- a/Aop4/Aop4/Aop4.vcxproj.filters +++ /dev/null @@ -1,22 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Исходные файлы - - - \ No newline at end of file diff --git a/Coursework/Coursework.sln b/Coursework/Coursework.sln deleted file mode 100644 index 6b0f705..0000000 --- a/Coursework/Coursework.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34525.116 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Coursework", "Coursework\Coursework.csproj", "{937829AA-8125-47BC-9126-78E67D379D9D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {937829AA-8125-47BC-9126-78E67D379D9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {937829AA-8125-47BC-9126-78E67D379D9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {937829AA-8125-47BC-9126-78E67D379D9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {937829AA-8125-47BC-9126-78E67D379D9D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DA38A496-655D-4DA5-B898-F9A1FB78DA07} - EndGlobalSection -EndGlobal diff --git a/Coursework/Coursework/Coursework.csproj b/Coursework/Coursework/Coursework.csproj deleted file mode 100644 index e1a0735..0000000 --- a/Coursework/Coursework/Coursework.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - WinExe - net7.0-windows - enable - true - enable - - - \ No newline at end of file diff --git a/Coursework/Coursework/Program.cs b/Coursework/Coursework/Program.cs deleted file mode 100644 index a99519e..0000000 --- a/Coursework/Coursework/Program.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Coursework.forms; - -namespace Coursework; - -public class Program -{ - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new MainForm()); - } -} \ No newline at end of file diff --git a/Coursework/Coursework/classes/Manager.cs b/Coursework/Coursework/classes/Manager.cs deleted file mode 100644 index 728c3d4..0000000 --- a/Coursework/Coursework/classes/Manager.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Coursework.classes -{ - public class Manager - { - private SortedArrayOperation arrayOperation; - private StateStorage stateStorage; - - public Manager() - { - arrayOperation = new SortedArrayOperation(); - stateStorage = new StateStorage(); - } - - public void PerformOperation(int element, bool isAddOperation) - { - if (isAddOperation) - { - arrayOperation.AddElement(element); - } - else - { - arrayOperation.RemoveElement(element); - } - - State currentState = arrayOperation.GetState(); - stateStorage.AddState(currentState); - } - - public void SaveStates(string filePath) - { - stateStorage.SaveStatesToFile(filePath); - } - - public void LoadStates(string filePath) - { - stateStorage.LoadStatesFromFile(filePath); - } - } - -} diff --git a/Coursework/Coursework/classes/Parameters.cs b/Coursework/Coursework/classes/Parameters.cs deleted file mode 100644 index 90c64de..0000000 --- a/Coursework/Coursework/classes/Parameters.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Coursework.classes; - -public class Parameters -{ - public int InitialSize { get; set; } - public int InitialMaxValue { get; set; } -} diff --git a/Coursework/Coursework/classes/SortedArrayOperation.cs b/Coursework/Coursework/classes/SortedArrayOperation.cs deleted file mode 100644 index 4661305..0000000 --- a/Coursework/Coursework/classes/SortedArrayOperation.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.IO; -using System.Windows.Forms; -using static System.Windows.Forms.AxHost; - -namespace Coursework.classes; - -public class SortedArrayOperation -{ - private List sortedArray; - - public SortedArrayOperation() - { - sortedArray = new List(); - } - - public void AddElement(int element) - { - int index = sortedArray.BinarySearch(element); - if (index < 0) - { - sortedArray.Insert(~index, element); - } - } - - public void RemoveElement(int element) - { - sortedArray.Remove(element); - } - - public State GetState() - { - return new State(sortedArray); - } -} diff --git a/Coursework/Coursework/classes/State.cs b/Coursework/Coursework/classes/State.cs deleted file mode 100644 index 883c8d0..0000000 --- a/Coursework/Coursework/classes/State.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Coursework.classes; - -public class State -{ - public List ArrayState { get; } - - public State(List arrayState) - { - ArrayState = new List(arrayState); - } -} diff --git a/Coursework/Coursework/classes/StateStorage.cs b/Coursework/Coursework/classes/StateStorage.cs deleted file mode 100644 index d1564f3..0000000 --- a/Coursework/Coursework/classes/StateStorage.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Coursework.classes; - -public class StateStorage -{ - private List states; - - public StateStorage() - { - states = new List(); - } - - public void AddState(State state) - { - states.Add(state); - } - - public void SaveStatesToFile(string filePath) - { - using (StreamWriter writer = new StreamWriter(filePath)) - { - foreach (State state in states) - { - foreach (int element in state.ArrayState) - { - writer.WriteLine(element); - } - writer.WriteLine(); - } - } - } - - public void LoadStatesFromFile(string filePath) - { - states.Clear(); - using (StreamReader reader = new StreamReader(filePath)) - { - List currentState = new List(); - string line; - while ((line = reader.ReadLine()) != null) - { - if (line == "") - { - states.Add(new State(currentState)); - currentState.Clear(); - } - else - { - currentState.Add(int.Parse(line)); - } - } - } - } -} diff --git a/Coursework/Coursework/classes/Visualizer.cs b/Coursework/Coursework/classes/Visualizer.cs deleted file mode 100644 index 52fd97a..0000000 --- a/Coursework/Coursework/classes/Visualizer.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Coursework.classes; - -public class Visualizer -{ - public void Visualize(State state) - { - // Implement visualization of the array state - foreach (int element in state.ArrayState) - { - Console.Write(element + " "); - } - Console.WriteLine(); - } -} diff --git a/Coursework/Coursework/forms/InputForm.Designer.cs b/Coursework/Coursework/forms/InputForm.Designer.cs deleted file mode 100644 index e32b7a9..0000000 --- a/Coursework/Coursework/forms/InputForm.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace Coursework.forms -{ - partial class InputForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "InputForm"; - } - - #endregion - } -} \ No newline at end of file diff --git a/Coursework/Coursework/forms/InputForm.cs b/Coursework/Coursework/forms/InputForm.cs deleted file mode 100644 index ff607e4..0000000 --- a/Coursework/Coursework/forms/InputForm.cs +++ /dev/null @@ -1,62 +0,0 @@ -using Coursework.classes; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Coursework.forms -{ - public partial class InputForm : Form - { - private Manager manager; - - public InputForm(Manager manager) - { - this.manager = manager; - - Label label1 = new Label(); - label1.Text = "Initial Size:"; - TextBox sizeTextBox = new TextBox(); - - Label label2 = new Label(); - label2.Text = "Initial Max Value:"; - TextBox maxValueTextBox = new TextBox(); - - Button submitButton = new Button(); - submitButton.Text = "Submit"; - submitButton.Click += (sender, e) => - { - int size = int.Parse(sizeTextBox.Text); - int maxValue = int.Parse(maxValueTextBox.Text); - - // Set initial parameters - Parameters initialParameters = new Parameters - { - InitialSize = size, - InitialMaxValue = maxValue - }; - - // Initialize array with initial values - Random random = new Random(); - for (int i = 0; i < size; i++) - { - manager.PerformOperation(random.Next(maxValue), true); - } - - this.Close(); - }; - - Controls.Add(label1); - Controls.Add(sizeTextBox); - Controls.Add(label2); - Controls.Add(maxValueTextBox); - Controls.Add(submitButton); - } - } - -} diff --git a/Coursework/Coursework/forms/InputForm.resx b/Coursework/Coursework/forms/InputForm.resx deleted file mode 100644 index 1af7de1..0000000 --- a/Coursework/Coursework/forms/InputForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Coursework/Coursework/forms/MainForm.Designer.cs b/Coursework/Coursework/forms/MainForm.Designer.cs deleted file mode 100644 index edd5ccd..0000000 --- a/Coursework/Coursework/forms/MainForm.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace Coursework.forms -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "MainForm"; - } - - #endregion - } -} \ No newline at end of file diff --git a/Coursework/Coursework/forms/MainForm.cs b/Coursework/Coursework/forms/MainForm.cs deleted file mode 100644 index f8692ff..0000000 --- a/Coursework/Coursework/forms/MainForm.cs +++ /dev/null @@ -1,56 +0,0 @@ -using Coursework.classes; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Coursework.forms -{ - public partial class MainForm : Form - { - private Manager manager; - private TextBox elementTextBox; - - public MainForm() - { - InitializeComponent(); - manager = new Manager(); - - // Create TableLayoutPanel - var tableLayoutPanel = new TableLayoutPanel(); - tableLayoutPanel.Dock = DockStyle.Top; - tableLayoutPanel.RowCount = 1; - tableLayoutPanel.ColumnCount = 3; - - // Add controls to TableLayoutPanel - tableLayoutPanel.Controls.Add(new Label { Text = "Element:" }, 0, 0); - elementTextBox = new TextBox(); - tableLayoutPanel.Controls.Add(elementTextBox, 1, 0); - var addButton = new Button { Text = "Add Element" }; - addButton.Click += AddButtonClick; - tableLayoutPanel.Controls.Add(addButton, 2, 0); - var removeButton = new Button { Text = "Remove Element" }; - removeButton.Click += RemoveButtonClick; - tableLayoutPanel.Controls.Add(removeButton, 3, 0); - - Controls.Add(tableLayoutPanel); - } - - private void AddButtonClick(object sender, EventArgs e) - { - int element = int.Parse(elementTextBox.Text); - manager.PerformOperation(element, true); - } - - private void RemoveButtonClick(object sender, EventArgs e) - { - int element = int.Parse(elementTextBox.Text); - manager.PerformOperation(element, false); - } - } -} diff --git a/Coursework/Coursework/forms/MainForm.resx b/Coursework/Coursework/forms/MainForm.resx deleted file mode 100644 index 1af7de1..0000000 --- a/Coursework/Coursework/forms/MainForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Coursework2/Coursework2.sln b/Coursework2/Coursework2.sln deleted file mode 100644 index 99b07de..0000000 --- a/Coursework2/Coursework2.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34525.116 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Coursework2", "Coursework2\Coursework2.csproj", "{CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CFEAC293-2FF8-4540-8CA3-4A4FBCFD8DAD}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6AF063FA-1D75-4AAD-91B5-FCB220F89BAB} - EndGlobalSection -EndGlobal diff --git a/Coursework2/Coursework2/Coursework2.csproj b/Coursework2/Coursework2/Coursework2.csproj deleted file mode 100644 index e1a0735..0000000 --- a/Coursework2/Coursework2/Coursework2.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - WinExe - net7.0-windows - enable - true - enable - - - \ No newline at end of file diff --git a/Coursework2/Coursework2/Program.cs b/Coursework2/Coursework2/Program.cs deleted file mode 100644 index f794ce3..0000000 --- a/Coursework2/Coursework2/Program.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace Coursework2 -{ - internal static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/Lab1_OAP/Lab1_OAP.sln b/Lab1_OAP/Lab1_OAP.sln deleted file mode 100644 index 92627e6..0000000 --- a/Lab1_OAP/Lab1_OAP.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34525.116 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lab1_OAP", "Lab1_OAP\Lab1_OAP.vcxproj", "{39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}.Debug|x64.ActiveCfg = Debug|x64 - {39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}.Debug|x64.Build.0 = Debug|x64 - {39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}.Debug|x86.ActiveCfg = Debug|Win32 - {39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}.Debug|x86.Build.0 = Debug|Win32 - {39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}.Release|x64.ActiveCfg = Release|x64 - {39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}.Release|x64.Build.0 = Release|x64 - {39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}.Release|x86.ActiveCfg = Release|Win32 - {39E703FF-4168-4ACA-84CA-CDD94BFE3FD3}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {AD8890FA-E7D7-4EB8-996C-597872ABE83B} - EndGlobalSection -EndGlobal diff --git a/Lab1_OAP/Lab1_OAP/Lab1_OAP.cpp b/Lab1_OAP/Lab1_OAP/Lab1_OAP.cpp deleted file mode 100644 index 5f28270..0000000 --- a/Lab1_OAP/Lab1_OAP/Lab1_OAP.cpp +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj b/Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj deleted file mode 100644 index 7b4bd6f..0000000 --- a/Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj +++ /dev/null @@ -1,135 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 17.0 - Win32Proj - {39e703ff-4168-4aca-84ca-cdd94bfe3fd3} - Lab1OAP - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - - \ No newline at end of file diff --git a/Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj.filters b/Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj.filters deleted file mode 100644 index 0805cb7..0000000 --- a/Lab1_OAP/Lab1_OAP/Lab1_OAP.vcxproj.filters +++ /dev/null @@ -1,22 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Исходные файлы - - - \ No newline at end of file diff --git a/laboap1/laboap1.sln b/laboap1/laboap1.sln deleted file mode 100644 index 9f5ffa8..0000000 --- a/laboap1/laboap1.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34525.116 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "laboap1", "laboap1\laboap1.vcxproj", "{1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}.Debug|x64.ActiveCfg = Debug|x64 - {1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}.Debug|x64.Build.0 = Debug|x64 - {1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}.Debug|x86.ActiveCfg = Debug|Win32 - {1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}.Debug|x86.Build.0 = Debug|Win32 - {1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}.Release|x64.ActiveCfg = Release|x64 - {1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}.Release|x64.Build.0 = Release|x64 - {1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}.Release|x86.ActiveCfg = Release|Win32 - {1F4724C2-6BC1-42C2-ACC1-93AAA85BA624}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {898933DD-7FA8-4FA7-872F-63991ACB024A} - EndGlobalSection -EndGlobal diff --git a/laboap1/laboap1/laboap1.cpp b/laboap1/laboap1/laboap1.cpp deleted file mode 100644 index 0329b66..0000000 --- a/laboap1/laboap1/laboap1.cpp +++ /dev/null @@ -1,151 +0,0 @@ -#include -#include -#include - -void printArray(int arr[], int size) { - for (int i = 0; i < size; i++) { - printf("%d ", arr[i]); - } - printf("\n"); -} - -void insertionSort(int arr[], int size) { - int i, key, j; - for (i = 1; i < size; i++) { - key = arr[i]; - j = i - 1; - - while (j >= 0 && arr[j] > key) { - arr[j + 1] = arr[j]; - j = j - 1; - } - arr[j + 1] = key; - } -} - -void merge(int arr[], int left, int mid, int right) { - int i, j, k; - int n1 = mid - left + 1; - int n2 = right - mid; - - int L[n1], R[n2]; - - for (i = 0; i < n1; i++) - L[i] = arr[left + i]; - for (j = 0; j < n2; j++) - R[j] = arr[mid + 1 + j]; - - i = 0; - j = 0; - k = left; - while (i < n1 && j < n2) { - if (L[i] <= R[j]) { - arr[k] = L[i]; - i++; - } - else { - arr[k] = R[j]; - j++; - } - k++; - } - - while (i < n1) { - arr[k] = L[i]; - i++; - k++; - } - - while (j < n2) { - arr[k] = R[j]; - j++; - k++; - } -} - -void mergeSort(int arr[], int left, int right) { - if (left < right) { - int mid = left + (right - left) / 2; - - mergeSort(arr, left, mid); - mergeSort(arr, mid + 1, right); - - merge(arr, left, mid, right); - } -} - -int main() { - srand(time(0)); - - int size; - printf("Enter the size of the array: "); - scanf("%d", &size); - - int arr[size]; - for (int i = 0; i < size; i++) { - arr[i] = rand() % 100; - } - - printf("Randomly generated array: "); - printArray(arr, size); - - int choice; - printf("Enter 1 to delete an element, 2 to insert a new element: "); - scanf("%d", &choice); - - if (choice == 1) { - int index; - printf("Enter the index of the element you want to delete: "); - scanf("%d", &index); - - for (int i = index; i < size - 1; i++) { - arr[i] = arr[i + 1]; - } - size--; - } - else if (choice == 2) { - int index, element; - printf("Enter the index at which you want to insert the new element: "); - scanf("%d", &index); - printf("Enter the new element: "); - scanf("%d", &element); - - for (int i = size; i > index; i--) { - arr[i] = arr[i - 1]; - } - arr[index] = element; - size++; - } - else { - printf("Invalid choice"); - return 0; - } - - printf("Modified array: "); - printArray(arr, size); - - int arr_copy[size]; - for (int i = 0; i < size; i++) { - arr_copy[i] = arr[i]; - } - - clock_t start_time = clock(); - insertionSort(arr, size); - clock_t end_time = clock(); - double insertion_time = ((double)(end_time - start_time)) / CLOCKS_PER_SEC; - - printf("Array sorted using Insertion Sort: "); - printArray(arr, size); - printf("Time taken by Insertion Sort: %f seconds\n", insertion_time); - - start_time = clock(); - mergeSort(arr_copy, 0, size - 1); - end_time = clock(); - double merge_time = ((double)(end_time - start_time)) / CLOCKS_PER_SEC; - - printf("Array sorted using Merge Sort: "); - printArray(arr_copy, size); - printf("Time taken by Merge Sort: %f seconds\n", merge_time); - - return 0; -} \ No newline at end of file diff --git a/laboap1/laboap1/laboap1.vcxproj b/laboap1/laboap1/laboap1.vcxproj deleted file mode 100644 index 085cb5f..0000000 --- a/laboap1/laboap1/laboap1.vcxproj +++ /dev/null @@ -1,136 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 17.0 - Win32Proj - {1f4724c2-6bc1-42c2-acc1-93aaa85ba624} - laboap1 - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - Default - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - - \ No newline at end of file diff --git a/laboap1/laboap1/laboap1.vcxproj.filters b/laboap1/laboap1/laboap1.vcxproj.filters deleted file mode 100644 index 2bff827..0000000 --- a/laboap1/laboap1/laboap1.vcxproj.filters +++ /dev/null @@ -1,22 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Исходные файлы - - - \ No newline at end of file -- 2.25.1