diff --git a/graphVizNew/graphVizNew.sln b/graphVizNew/graphVizNew.sln new file mode 100644 index 0000000..4c68460 --- /dev/null +++ b/graphVizNew/graphVizNew.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphVizNew", "graphVizNew\graphVizNew.vcxproj", "{BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}" +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 + {BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}.Debug|x64.ActiveCfg = Debug|x64 + {BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}.Debug|x64.Build.0 = Debug|x64 + {BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}.Debug|x86.ActiveCfg = Debug|Win32 + {BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}.Debug|x86.Build.0 = Debug|Win32 + {BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}.Release|x64.ActiveCfg = Release|x64 + {BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}.Release|x64.Build.0 = Release|x64 + {BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}.Release|x86.ActiveCfg = Release|Win32 + {BFDA0CE1-D3D6-4335-AD8F-BB89CB43478E}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {349FBF0E-498A-4903-B70E-76FF58364F31} + EndGlobalSection +EndGlobal diff --git a/graphVizNew/graphVizNew/graph.dot b/graphVizNew/graphVizNew/graph.dot new file mode 100644 index 0000000..b8e6114 --- /dev/null +++ b/graphVizNew/graphVizNew/graph.dot @@ -0,0 +1,11 @@ +graph { +0 -- 0 [label = "11"]; +0 -- 1 [label = "11"]; +0 -- 2 [label = "1"]; +1 -- 0 [label = "1"]; +1 -- 1 [label = "12"]; +1 -- 2 [label = "1"]; +2 -- 0 [label = "1"]; +2 -- 1 [label = "12"]; +2 -- 2 [label = "12"]; +} \ No newline at end of file diff --git a/graphVizNew/graphVizNew/graphVizNew.vcxproj b/graphVizNew/graphVizNew/graphVizNew.vcxproj new file mode 100644 index 0000000..207f274 --- /dev/null +++ b/graphVizNew/graphVizNew/graphVizNew.vcxproj @@ -0,0 +1,154 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {bfda0ce1-d3d6-4335-ad8f-bb89cb43478e} + graphVizNew + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + false + _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/graphVizNew/graphVizNew/graphVizNew.vcxproj.filters b/graphVizNew/graphVizNew/graphVizNew.vcxproj.filters new file mode 100644 index 0000000..fa618db --- /dev/null +++ b/graphVizNew/graphVizNew/graphVizNew.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {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/graphVizNew/graphVizNew/main.c b/graphVizNew/graphVizNew/main.c new file mode 100644 index 0000000..58c1f19 --- /dev/null +++ b/graphVizNew/graphVizNew/main.c @@ -0,0 +1,69 @@ +#include +#include +#include + +// graph.dot, graph.png, . +bool workWithFiles(char* nameFileFrom) { + FILE* file = fopen(nameFileFrom, "r"); + if (file == NULL) { + return -1; + } + char symbol = 0; + int matrix[50][50] = { 0 }; + int indexString = 0; + int indexColumn = 0; + int number = 0; + int sizeMatrix = 0; + while (fscanf(file, "%c", &symbol) == 1) { + if (symbol == ' ') { + matrix[indexString][indexColumn] = number; + number = 0; + indexColumn += 1; + } + else if (symbol == '\n') { + matrix[indexString][indexColumn] = number; + number = 0; + sizeMatrix = indexColumn + 1; + indexString += 1; + indexColumn = 0; + } + else { + if (number == 0) { + number += symbol - '0'; + } + else { + number = number * 10 + symbol - '0'; + } + } + } + fclose(file); + matrix[indexString][indexColumn] = number; + FILE* fileNew = fopen("graph.dot", "w"); + if (fileNew == NULL) { + return -1; + } + fprintf(fileNew, "%s\n", "graph {"); + for (int i = 0; i < sizeMatrix; ++i) { + for (int j = 0; j < sizeMatrix; ++j) { + if (matrix[i][j] != 0) { + fprintf(fileNew, "%d -- %d [label = \"%d\"];\n", i, j, matrix[i][j]); + } + } + } + fprintf(fileNew, "%s", "}"); + fclose(fileNew); + system("dot -Tpng graph.dot -o graph.png"); + return true; +} + +int main() { + printf("Enter the name of the matrix file. No more than 99 symbols\n"); + char nameFileFrom[100] = { '\0' }; + int checkScanf = scanf("%s", nameFileFrom); + while (checkScanf != 1) { + while (getchar() != '\n') { + } + checkScanf = scanf("%s", nameFileFrom); + } + workWithFiles(nameFileFrom); +} \ No newline at end of file diff --git a/graphVizNew/graphVizNew/test.txt b/graphVizNew/graphVizNew/test.txt new file mode 100644 index 0000000..61a3d4a --- /dev/null +++ b/graphVizNew/graphVizNew/test.txt @@ -0,0 +1,3 @@ +11 11 1 +1 12 1 +1 12 12 \ No newline at end of file