Procházet zdrojové kódy

Добавьте файлы проекта.

7 před 4 měsíci
rodič
revize
1e45bda29c

+ 25 - 0
MinElKuzminEkz.sln

@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.10.34928.147
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinElKuzminEkz", "MinElKuzminEkz\MinElKuzminEkz.csproj", "{89B4039C-981E-4E17-9B93-9469E61E85F3}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{89B4039C-981E-4E17-9B93-9469E61E85F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{89B4039C-981E-4E17-9B93-9469E61E85F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{89B4039C-981E-4E17-9B93-9469E61E85F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{89B4039C-981E-4E17-9B93-9469E61E85F3}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {968B0A53-1B7B-4760-AD05-A29793C55F3B}
+	EndGlobalSection
+EndGlobal

+ 6 - 0
MinElKuzminEkz/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
+    </startup>
+</configuration>

+ 53 - 0
MinElKuzminEkz/MinElKuzminEkz.csproj

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{89B4039C-981E-4E17-9B93-9469E61E85F3}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>MinElKuzminEkz</RootNamespace>
+    <AssemblyName>MinElKuzminEkz</AssemblyName>
+    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>

+ 114 - 0
MinElKuzminEkz/Program.cs

@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.IO;
+
+namespace MinElKuzminEkz
+{
+    internal class Program
+    {
+        private static StreamWriter traceWriter;
+        private static StreamWriter debugWriter;
+
+        public static void Main(string[] args)
+        {
+            try
+            {
+                // Открываем файлы для записи trace и debug логов
+                traceWriter = new StreamWriter("trace_log.txt");
+                debugWriter = new StreamWriter("debug_log.txt");
+
+                // Добавляем слушателя для Trace
+                Trace.Listeners.Add(new TextWriterTraceListener(traceWriter));
+                Trace.AutoFlush = true;
+
+                // Добавляем слушателя для Debug
+                Debug.Listeners.Add(new TextWriterTraceListener(debugWriter));
+                Debug.AutoFlush = true;
+
+                Trace.WriteLine("Файл успешно считан");
+
+                // Чтение данных из файла
+                string[] lines = File.ReadAllLines("C:\\Users\\7\\source\\repos\\methodMinimalElKuzmin\\methodMinimalElKuzmin\\test.txt");
+
+                // Инициализация массивов на основе данных из файла
+                int[] a = Array.ConvertAll(lines[0].Split(','), int.Parse);
+                int[] b = Array.ConvertAll(lines[1].Split(','), int.Parse);
+
+                double[,] costs = new double[3, 3];
+                // Заполнение матриц costs и supply_plan
+                int index = 2; // начинаем с третьей строки файла
+                for (int i = 0; i < 3; i++)
+                {
+                    string[] costValues = lines[index].Split(',');
+                    for (int j = 0; j < 3; j++)
+                    {
+                        costs[i, j] = double.Parse(costValues[j]);
+                    }
+                    index++;
+                }
+
+                Trace.WriteLine("Матрица инициализирована");
+
+                if (Utility.CheckClosure(a, b))
+                {
+                    Console.WriteLine("Транспортная задача является закрытой");
+                }
+                else
+                {
+                    Console.WriteLine("Транспортная задача является открытой");
+                }
+
+                // Применение метода
+                int[,] supply_plan = Utility.MinElementMethod(a, b, costs); //MinElementMethod
+
+                // Вывод плана поставок
+                for (int i = 0; i < supply_plan.GetLength(0); i++)
+                {
+                    for (int j = 0; j < supply_plan.GetLength(1); j++)
+                    {
+                        Console.Write($"{supply_plan[i, j]} ");
+                    }
+                    Console.WriteLine();
+                }
+
+                // Проверка на вырожденность опорного плана
+                if (Utility.CheckIfVyrozhdeno(supply_plan))
+                {
+                    Console.WriteLine("Опорный план вырожденный.");
+                }
+                else
+                {
+                    Console.WriteLine("Опорный план невырожденный.");
+                }
+
+                // Расчёт целевой функции
+                Console.WriteLine($"Целевая функция: {Utility.CalculateCelevayaFunction(costs, supply_plan)}");
+
+                Console.WriteLine("Опорный план оптимален.");
+
+                Trace.WriteLine("Программа успешно завершила рассчет");
+            }
+            catch (Exception ex)
+            {
+                Trace.WriteLine($"Error: {ex.Message}");
+                Console.WriteLine($"Error: {ex.Message}");
+            }
+            finally
+            {
+                // Закрываем файлы после использования
+                traceWriter.Close();
+                debugWriter.Close();
+                Console.ReadKey();
+            }
+        }
+    }
+
+
+    
+}
+
+

+ 36 - 0
MinElKuzminEkz/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
+// связанные с этой сборкой.
+[assembly: AssemblyTitle("MinElKuzminEkz")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("MinElKuzminEkz")]
+[assembly: AssemblyCopyright("Copyright ©  2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// из модели COM задайте для атрибута ComVisible этого типа значение true.
+[assembly: ComVisible(false)]
+
+// Следующий GUID представляет идентификатор typelib, если этот проект доступен из модели COM
+[assembly: Guid("89b4039c-981e-4e17-9b93-9469e61e85f3")]
+
+// Сведения о версии сборки состоят из указанных ниже четырех значений:
+//
+//      Основной номер версии
+//      Дополнительный номер версии
+//      Номер сборки
+//      Номер редакции
+//
+// Можно задать все значения или принять номера сборки и редакции по умолчанию 
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]