Skip to content
This repository has been archived by the owner on Jan 11, 2023. It is now read-only.

Lab3 #186

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open

Lab3 #186

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
77 changes: 77 additions & 0 deletions trunk/ii02203/task_03/doc/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<p style="text-align: center;">Министерство образования Республики Беларусь</p>
<p style="text-align: center;">Учреждение образования</p>
<p style="text-align: center;">“Брестский Государственный Технический Университет”</p>
<p style="text-align: center;">Кафедра ИИТ</p>
<div style="margin-bottom: 10em;"></div>
<p style="text-align: center;">Лабораторная работа №3</p>
<p style="text-align: center;">По дисциплине “Общая теория интеллектуальных систем”</p>
<p style="text-align: center;">Тема: “Работа с графами”</p>
<div style="margin-bottom: 10em;"></div>
<p style="text-align: right;">Выполнил:</p>
<p style="text-align: right;">Студент 2 курса</p>
<p style="text-align: right;">Группы ИИ-22(II)</p>
<p style="text-align: right;">Гузаревич Д.А.</p>
<p style="text-align: right;">Проверил:</p>
<p style="text-align: right;">Иванюк Д. С.</p>
<div style="margin-bottom: 10em;"></div>
<p style="text-align: center;">Брест 2022</p>

---
## Общее задание ##
1. Разработать и реализовать программный продукт позволяющий редактировать графовые конструкции различных видов и производить над ними различные действия. Язык программирования - любой.

2. Редактор должен позволять (задания со [*] являются необязательными):
a) одновременно работать с несколькими графами (MDI);
b) [*] выделение одновременно нескольких элементов графа, копирование выделенного фрагмента в clipboard и восстановление из него;
c) задавать имена графам;
d) сохранять и восстанавливать граф во внутреннем формате программы;
e) экспортировать и импортировать граф в текстовый формат (описание см. ниже);
f) создавать, удалять, именовать, переименовывать, перемещать узлы;
g) создавать ориентированные и неориентированные дуги, удалять дуги;
h) добавлять, удалять и редактировать содержимое узла (содержимое в виде текста и ссылки на файл);
i) задавать цвет дуги и узла, образ узла;
j) [*] создавать и отображать петли;
k) [*] создавать и отображать кратные дуги.

3. Программный продукт должен позволять выполнять следующие операции:
a) выводить информацию о графе:
- количество вершин, дуг;
- степени для всех вершин и для выбранной вершины;
- матрицу инцидентности;
- матрицу смежности;
- является ли он деревом, полным, связанным, эйлеровым, [*] планарным;
b) поиск всех путей (маршрутов) между двумя узлами и кратчайших;
c) вычисление расстояния между двумя узлами;
d) вычисление диаметра, радиуса, центра графа;
e) [*] вычисление векторного и декартово произведения двух графов;
f) [*] раскраска графа;
g) нахождения эйлеровых, [*] гамильтоновых циклов;
h) [*] поиск подграфа в графе, со всеми или некоторыми неизвестными узлами;
i) [*] поиск узла по содержимому;
j) [*] объединение, пересечение, сочетание и дополнение графов;
k) [*] приведение произвольного графа к определенному типу с минимальными изменениями:

- бинарное и обычное дерево;
- полный граф;
- планарный граф;
- связанный граф;

4. Формат текстового представления графа: <ГРАФ> ::= <ИМЯ ГРАФА> : UNORIENT | ORIENT ; <ОПИСАНИЕ УЗЛОВ> ; <ОПИСАНИЕ СВЯЗЕЙ> . <ИМЯ ГРАФА> ::= <ИДЕНТИФИКАТОР> <ОПИСАНИЕ УЗЛОВ> ::= <ИМЯ УЗЛА> [ , <ИМЯ УЗЛА> …] <ИМЯ УЗЛА> ::= <ИДЕНТИФИКАТОР> <ОПИСАНИЕ СВЯЗЕЙ> ::= <ИМЯ УЗЛА> -> <ИМЯ УЗЛА> [ , <ИМЯ УЗЛА> …] ; [<ОПИСАНИЕ СВЯЗЕЙ> …]

5. Написать отчет по выполненной лабораторной работе в .md формате (readme.md). Разместить его в следующем каталоге: trunk\ii0xxyy\task_03\doc (где xx - номер группы, yy - номер студента, например ii02102).

6. Исходный код разработанной программы разместить в каталоге: trunk\ii0xxyy\task_03\src.

## Ход работы ##
### Внешний вид программы ###
![image](Внешний_вид.png)
### Создание вершины ###
![image](созданы_вершины.png)
### Добавление дуги ###
![image](добавлено_ребро.png)
### Изменение цвета/толщины дуги/вершины ###
![image](изменение_цвета.png)
![image](изменение_толщины_дуги.png)
### Сохранение/открытие графы ###
![image](сохранение_графа.png)
![image](открытие_графа.png)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
20 changes: 20 additions & 0 deletions trunk/ii02203/task_03/src/GrafEditor/GrafEditor.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GrafEditor", "GrafEditor\GrafEditor.vcxproj", "{053B854F-3C09-4341-89C9-F6792CA5D5BF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{053B854F-3C09-4341-89C9-F6792CA5D5BF}.Debug|Win32.ActiveCfg = Debug|Win32
{053B854F-3C09-4341-89C9-F6792CA5D5BF}.Debug|Win32.Build.0 = Debug|Win32
{053B854F-3C09-4341-89C9-F6792CA5D5BF}.Release|Win32.ActiveCfg = Release|Win32
{053B854F-3C09-4341-89C9-F6792CA5D5BF}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
S:\MVS_PROJECTS\GRAFEDITOR\GRAFEDITOR\DEBUG\FUNC.OBJ
S:\MVS_PROJECTS\GRAFEDITOR\GRAFEDITOR\DEBUG\MAIN.OBJ
S:\MVS_PROJECTS\GRAFEDITOR\GRAFEDITOR\DEBUG\VC110.PDB
S:\MVS_PROJECTS\GRAFEDITOR\DEBUG\GRAFEDITOR.ILK
S:\MVS_PROJECTS\GRAFEDITOR\DEBUG\GRAFEDITOR.EXE
S:\MVS_PROJECTS\GRAFEDITOR\DEBUG\GRAFEDITOR.PDB
S:\MVS_PROJECTS\GRAFEDITOR\GRAFEDITOR\DEBUG\RESOURCE.RES
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\func.obj
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\main.obj
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\cl.command.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\CL.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\CL.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\link-cvtres.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\link-cvtres.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\link-rc.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\link-rc.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\link.command.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\link.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\link.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\rc.command.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\rc.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\rc.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\Resource.res
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\vc110.idb
S:\MVS_Projects\GrafEditor\GrafEditor\Debug\vc110.pdb
S:\MVS_Projects\GrafEditor\Debug\GrafEditor.pdb
S:\MVS_Projects\GrafEditor\Debug\GrafEditor.exe
S:\MVS_Projects\GrafEditor\Debug\GrafEditor.ilk
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<ProjectOutputs>
<ProjectOutput>
<FullPath>O:\qwerty\GrafEditor\Debug\GrafEditor.exe</FullPath>
</ProjectOutput>
</ProjectOutputs>
<ContentFiles />
<SatelliteDlls />
<NonRecipeFileRefs />
</Project>
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#v4.0:v110:false
Debug|Win32|C:\Users\XAN\Desktop\GrafEditor\|
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
 LINK : не найден или не выполнена сборка O:\qwerty\GrafEditor\Debug\GrafEditor.exe при последней инкрементной компоновке; выполняется полная компоновка
GrafEditor.vcxproj -> O:\qwerty\GrafEditor\Debug\GrafEditor.exe
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
PlatformToolSet=v143:VCToolArchitecture=Native32Bit:VCToolsVersion=14.34.31933:TargetPlatformVersion=10.0.19041.0:
Debug|Win32|O:\qwerty\GrafEditor\|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
��
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
��
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
��
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
��
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
101 changes: 101 additions & 0 deletions trunk/ii02203/task_03/src/GrafEditor/GrafEditor/GrafEditor.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{053B854F-3C09-4341-89C9-F6792CA5D5BF}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>GrafEditor</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="func.cpp" />
<ClCompile Include="main.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="func.h" />
<ClInclude Include="resource.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Resource.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="fava.ico" />
<Image Include="logo.bmp" />
<Image Include="toolbar3.bmp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Файлы исходного кода">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Заголовочные файлы">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Файлы ресурсов">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Файлы исходного кода</Filter>
</ClCompile>
<ClCompile Include="func.cpp">
<Filter>Файлы исходного кода</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="func.h">
<Filter>Заголовочные файлы</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>Заголовочные файлы</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Resource.rc">
<Filter>Файлы ресурсов</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Image Include="fava.ico">
<Filter>Файлы ресурсов</Filter>
</Image>
<Image Include="logo.bmp">
<Filter>Файлы ресурсов</Filter>
</Image>
<Image Include="toolbar3.bmp">
<Filter>Файлы ресурсов</Filter>
</Image>
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
S:\MVS_PROJECTS\GRAFEDITOR\GRAFEDITOR\RELEASE\MAIN.OBJ
S:\MVS_PROJECTS\GRAFEDITOR\GRAFEDITOR\RELEASE\FUNC.OBJ
S:\MVS_PROJECTS\GRAFEDITOR\GRAFEDITOR\RELEASE\VC110.PDB
S:\MVS_PROJECTS\GRAFEDITOR\RELEASE\GRAFEDITOR.EXE
S:\MVS_PROJECTS\GRAFEDITOR\RELEASE\GRAFEDITOR.PDB
S:\MVS_PROJECTS\GRAFEDITOR\GRAFEDITOR\RELEASE\RESOURCE.RES
S:\MVS_Projects\GrafEditor\GrafEditor\Release\func.obj
S:\MVS_Projects\GrafEditor\GrafEditor\Release\main.obj
S:\MVS_Projects\GrafEditor\GrafEditor\Release\cl.command.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\CL.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\CL.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\link-cvtres.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\link-cvtres.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\link-rc.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\link-rc.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\link.command.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\link.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\link.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\rc.command.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\rc.read.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\rc.write.1.tlog
S:\MVS_Projects\GrafEditor\GrafEditor\Release\Resource.res
S:\MVS_Projects\GrafEditor\GrafEditor\Release\vc110.pdb
S:\MVS_Projects\GrafEditor\Release\GrafEditor.pdb
S:\MVS_Projects\GrafEditor\Release\GrafEditor.exe
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#v4.0:v110:false
Release|Win32|S:\MVS_Projects\GrafEditor\|
Loading