Skip to content
Open

done #16

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .vs/ProjectEvaluation/stakeholder.metadata.v5.1
Binary file not shown.
Binary file added .vs/ProjectEvaluation/stakeholder.projects.v5.1
Binary file not shown.
Binary file added .vs/Stakeholder/DesignTimeBuild/.dtbcache.v2
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Empty file.
Binary file added .vs/Stakeholder/v17/.futdcache.v2
Binary file not shown.
Binary file added .vs/Stakeholder/v17/.suo
Binary file not shown.
86 changes: 86 additions & 0 deletions Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
namespace Stakeholder
{
internal class Program
{
static void Main(string[] args)
{
// названия входных файлов
const string INFLUENCE = "influence.txt";
const string INTEREST = "interest.txt";
const string RESULT = "result.txt";

// для записи в файл конечных стейкхолдеров
List<string> resultStakeholders = new List<string>();

// рассчитываем путь до нашей директории, где мы запускаем программу
string path = Directory.GetCurrentDirectory().Split("bin")[0];

// проверяем, существует ли файл "influence.txt"
if (File.Exists(path + INFLUENCE))
{
string[] file = File.ReadAllLines(path + INFLUENCE);

if (file != null)
{
string[] nameStakeholders = file[0].Split(" | ");

// подсчет всех стейкхолдеров и необходимое значения для преодоления границы
int countStakeholder = nameStakeholders.Length;
double checkStakeholders = IdentifImportantStakeholder(countStakeholder);

// вызываем функцию для получения итоговых рангов стейкхолдеров в матрице влияния
double[] ratingStakeholdInfluence = RatingStakeholder(file, countStakeholder);

if (File.Exists(path + INTEREST))
{
file = File.ReadAllLines(path + INTEREST);

if (file != null)
{
double[] ratingStakeholdInterest = RatingStakeholder(file, countStakeholder);

for (int value = 0; value < countStakeholder; value++)
{
// проверяем значения стейкхолдеров в двух сферах (влияние и интерес).
// Если оно больше и во влиянии, и в интересе, то сохраняем заинтересованную сторону
if (ratingStakeholdInterest[value] >= checkStakeholders
&& ratingStakeholdInfluence[value] >= checkStakeholders)
{
resultStakeholders.Add(nameStakeholders[value]);
}
}
// записываем в файл стейкхолдеров, которые являются самыми важными
// (находятся в правом верхнем квадрате графика)
File.WriteAllLines(path + RESULT, resultStakeholders);
}
}
}
}
}

// функция, в которой определяем грань значений для важных стейкхолдеров
static double IdentifImportantStakeholder(int countStakeholder)
{
if (countStakeholder % 2 == 0) return countStakeholder / 2;

return countStakeholder / 2 + 0.5;
}

// фукнция для получения итоговых рангов в матрице
static double[] RatingStakeholder(string[] file, int countHolder)
{
double[] ratingStakeholders = new double[countHolder];

for (int line = 1; line < file.Length; line++)
{
// заменяем все _ на нули, чтобы при счете их не учитывать
file[line] = file[line].Replace("_", "0");
// заменяем точки на запятые, чтобы из строки перевести в double
file[line] = file[line].Replace('.', ',');
// переводим все числа в тип double
ratingStakeholders[line - 1] = file[line].Split().Select(x => double.Parse(x)).ToArray().Sum();
}
return ratingStakeholders;
}
}
}
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,14 @@ Stakeholder 3
```

## Автор решения
Якупов Айрат Маратович

## Описание реализации
Реализация представляет собой несколько этапов, а именно: рассчет количества стейкхолдеров, а также деление этого количества на два. Тем самым мы получаем грань значений для итоговых рангов в матрицах влияния и интереса. Эта грань будет определять важных стейкхолдеров.
Затем подсчет в каждой строке итогового ранга, а после сравнение итоговых рангов с гранью.
В реализации я учитывал, что если степень влияния и/или интереса равны с гранью, то такой стейкхолдер является важным.

## Инструкция по сборке и запуску решения
Склонируйте проект к себе на локальный компьютер. Можно запустить код в Visual Studio при помощи команды клавиш "ctrl + F5".
А также можно запустить приложение через exe-файл, а именно: "путь, куда склонировали проект" + /bin/debug/net 6.0/Stakeholder.exe.
Файлы influence.txt и interest.txt должны находиться там, куда был склонирован проект.
10 changes: 10 additions & 0 deletions Stakeholder.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

</Project>
25 changes: 25 additions & 0 deletions Stakeholder.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32901.215
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Stakeholder", "Stakeholder.csproj", "{0B015CDF-443C-4439-BF39-19A0E2D6D5F9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0B015CDF-443C-4439-BF39-19A0E2D6D5F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0B015CDF-443C-4439-BF39-19A0E2D6D5F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0B015CDF-443C-4439-BF39-19A0E2D6D5F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B015CDF-443C-4439-BF39-19A0E2D6D5F9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {10A32DCB-2633-4BE0-8D8C-0A5D8DC870F4}
EndGlobalSection
EndGlobal
23 changes: 23 additions & 0 deletions bin/Debug/net6.0/Stakeholder.deps.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"Stakeholder/1.0.0": {
"runtime": {
"Stakeholder.dll": {}
}
}
}
},
"libraries": {
"Stakeholder/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
Binary file added bin/Debug/net6.0/Stakeholder.dll
Binary file not shown.
Binary file added bin/Debug/net6.0/Stakeholder.exe
Binary file not shown.
Binary file added bin/Debug/net6.0/Stakeholder.pdb
Binary file not shown.
9 changes: 9 additions & 0 deletions bin/Debug/net6.0/Stakeholder.runtimeconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "net6.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")]
23 changes: 23 additions & 0 deletions obj/Debug/net6.0/Stakeholder.AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Reflection;

[assembly: System.Reflection.AssemblyCompanyAttribute("Stakeholder")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Stakeholder")]
[assembly: System.Reflection.AssemblyTitleAttribute("Stakeholder")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

// Создано классом WriteCodeFragment MSBuild.

1 change: 1 addition & 0 deletions obj/Debug/net6.0/Stakeholder.AssemblyInfoInputs.cache
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c0941a12f63771ba70d37715917fe7d8437e4ae3
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Stakeholder
build_property.ProjectDir = C:\Users\1\source\repos\Stakeholder\
8 changes: 8 additions & 0 deletions obj/Debug/net6.0/Stakeholder.GlobalUsings.g.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;
Binary file added obj/Debug/net6.0/Stakeholder.assets.cache
Binary file not shown.
Binary file not shown.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0224cb8629dddc6a38acdd47017cc12223796ccb8463233aed6b3faddfb94753
15 changes: 15 additions & 0 deletions obj/Debug/net6.0/Stakeholder.csproj.FileListAbsolute.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
C:\Users\1\source\repos\Stakeholder\bin\Debug\net6.0\Stakeholder.exe
C:\Users\1\source\repos\Stakeholder\bin\Debug\net6.0\Stakeholder.deps.json
C:\Users\1\source\repos\Stakeholder\bin\Debug\net6.0\Stakeholder.runtimeconfig.json
C:\Users\1\source\repos\Stakeholder\bin\Debug\net6.0\Stakeholder.dll
C:\Users\1\source\repos\Stakeholder\bin\Debug\net6.0\Stakeholder.pdb
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\Stakeholder.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\Stakeholder.AssemblyInfoInputs.cache
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\Stakeholder.AssemblyInfo.cs
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\Stakeholder.csproj.CoreCompileInputs.cache
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\Stakeholder.dll
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\refint\Stakeholder.dll
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\Stakeholder.pdb
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\Stakeholder.genruntimeconfig.cache
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\ref\Stakeholder.dll
C:\Users\1\source\repos\Stakeholder\obj\Debug\net6.0\Stakeholder.sourcelink.json
Binary file added obj/Debug/net6.0/Stakeholder.dll
Binary file not shown.
1 change: 1 addition & 0 deletions obj/Debug/net6.0/Stakeholder.genruntimeconfig.cache
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
87252e3a59bed3186c5b9312fd67288e0603b17c87c7e15fe85a8ee1122a8809
Binary file added obj/Debug/net6.0/Stakeholder.pdb
Binary file not shown.
1 change: 1 addition & 0 deletions obj/Debug/net6.0/Stakeholder.sourcelink.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"documents":{"C:\\Users\\1\\source\\repos\\Stakeholder\\*":"https://raw.githubusercontent.com/TaTaRiN-9/school2024-test-task5/97c0bb0046e20da4b9a42d5a976bd33a46563f51/*"}}
Binary file added obj/Debug/net6.0/apphost.exe
Binary file not shown.
Binary file added obj/Debug/net6.0/ref/Stakeholder.dll
Binary file not shown.
Binary file added obj/Debug/net6.0/refint/Stakeholder.dll
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")]
23 changes: 23 additions & 0 deletions obj/Release/net6.0/Stakeholder.AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Reflection;

[assembly: System.Reflection.AssemblyCompanyAttribute("Stakeholder")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Stakeholder")]
[assembly: System.Reflection.AssemblyTitleAttribute("Stakeholder")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

// Создано классом WriteCodeFragment MSBuild.

1 change: 1 addition & 0 deletions obj/Release/net6.0/Stakeholder.AssemblyInfoInputs.cache
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
56082a9c94828fcf8aa5545d56f4ade92167cefb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Stakeholder
build_property.ProjectDir = C:\Users\1\source\repos\Stakeholder\
8 changes: 8 additions & 0 deletions obj/Release/net6.0/Stakeholder.GlobalUsings.g.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;
Binary file added obj/Release/net6.0/Stakeholder.assets.cache
Binary file not shown.
Binary file not shown.
90 changes: 90 additions & 0 deletions obj/Stakeholder.csproj.nuget.dgspec.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
{
"format": 1,
"restore": {
"C:\\Users\\1\\source\\repos\\Stakeholder\\Stakeholder.csproj": {}
},
"projects": {
"C:\\Users\\1\\source\\repos\\Stakeholder\\Stakeholder.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\1\\source\\repos\\Stakeholder\\Stakeholder.csproj",
"projectName": "Stakeholder",
"projectPath": "C:\\Users\\1\\source\\repos\\Stakeholder\\Stakeholder.csproj",
"packagesPath": "C:\\Users\\1\\.nuget\\packages\\",
"outputPath": "C:\\Users\\1\\source\\repos\\Stakeholder\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\1\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[6.0.28, 6.0.28]"
},
{
"name": "Microsoft.NETCore.App.Host.win-x64",
"version": "[6.0.28, 6.0.28]"
},
{
"name": "Microsoft.NETCore.App.Ref",
"version": "[6.0.28, 6.0.28]"
},
{
"name": "Microsoft.WindowsDesktop.App.Ref",
"version": "[6.0.28, 6.0.28]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.203\\RuntimeIdentifierGraph.json"
}
}
}
}
}
Loading