diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1.sln b/5, 6 лаб/1, 2 лаб 5/WindowsProject1.sln new file mode 100644 index 0000000..5c05fe3 --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 5/WindowsProject1.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WindowsProject1", "WindowsProject1\WindowsProject1.vcxproj", "{C592C569-F3ED-4207-8D48-D82EA2833261}" +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 + {C592C569-F3ED-4207-8D48-D82EA2833261}.Debug|x64.ActiveCfg = Debug|x64 + {C592C569-F3ED-4207-8D48-D82EA2833261}.Debug|x64.Build.0 = Debug|x64 + {C592C569-F3ED-4207-8D48-D82EA2833261}.Debug|x86.ActiveCfg = Debug|Win32 + {C592C569-F3ED-4207-8D48-D82EA2833261}.Debug|x86.Build.0 = Debug|Win32 + {C592C569-F3ED-4207-8D48-D82EA2833261}.Release|x64.ActiveCfg = Release|x64 + {C592C569-F3ED-4207-8D48-D82EA2833261}.Release|x64.Build.0 = Release|x64 + {C592C569-F3ED-4207-8D48-D82EA2833261}.Release|x86.ActiveCfg = Release|Win32 + {C592C569-F3ED-4207-8D48-D82EA2833261}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2FA3B26A-CF78-4F7F-9849-50DD421AFD2A} + EndGlobalSection +EndGlobal diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/Resource.h b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/Resource.h new file mode 100644 index 0000000..b711f91 --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется WindowsProject1.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_WINDOWSPROJECT1_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_WINDOWSPROJECT1 107 +#define IDI_SMALL 108 +#define IDC_WINDOWSPROJECT1 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.cpp b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.cpp new file mode 100644 index 0000000..fe26157 --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.cpp @@ -0,0 +1,233 @@ +// WindowsProject1.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "WindowsProject1.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_WINDOWSPROJECT1, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT1)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT1)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT1); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(wParam); + // Разобрать выбор в меню: + switch (wmId) + { + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + } + break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + + //ДОМ + + // Крыша + MoveToEx(hdc, 150, 350, NULL); + LineTo(hdc, 275, 250); + LineTo(hdc, 400, 350); + + // Дом + LineTo(hdc, 400, 525); + LineTo(hdc, 150, 525); + LineTo(hdc, 150, 350); + LineTo(hdc, 400, 350); + + // Окно + MoveToEx(hdc, 225, 400, NULL); + LineTo(hdc, 225, 475); + LineTo(hdc, 325, 475); + LineTo(hdc, 325, 400); + LineTo(hdc, 225, 400); + + // Рама + MoveToEx(hdc, 275, 400, NULL); + LineTo(hdc, 275, 475); + MoveToEx(hdc, 275, 425, NULL); + LineTo(hdc, 325, 425); + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + //ЕЛКА + + // Нижний ярус + MoveToEx(hdc, 470, 525, NULL); + LineTo(hdc, 520, 475); + LineTo(hdc, 570, 525); + LineTo(hdc, 470, 525); + + // Средний ярус + MoveToEx(hdc, 490, 470, NULL); + LineTo(hdc, 520, 440); + LineTo(hdc, 550, 470); + LineTo(hdc, 490, 470); + + // Верхний ярус + MoveToEx(hdc, 500, 435, NULL); + LineTo(hdc, 520, 415); + LineTo(hdc, 540, 435); + LineTo(hdc, 500, 435); + + + + EndPaint(hWnd, &ps); + + } + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.h b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.h new file mode 100644 index 0000000..d00d47e --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.ico b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.ico differ diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.rc b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.rc new file mode 100644 index 0000000..5d0e123 Binary files /dev/null and b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.rc differ diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.vcxproj b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.vcxproj new file mode 100644 index 0000000..2d69329 --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {c592c569-f3ed-4207-8d48-d82ea2833261} + WindowsProject1 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.vcxproj.filters b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.vcxproj.filters new file mode 100644 index 0000000..9cbeb4d --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/WindowsProject1.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {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/5, 6 лаб/1, 2 лаб 5/WindowsProject1/framework.h b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/small.ico b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/small.ico differ diff --git a/5, 6 лаб/1, 2 лаб 5/WindowsProject1/targetver.h b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 5/WindowsProject1/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6.sln b/5, 6 лаб/1, 2 лаб 6/1 лаб 6.sln new file mode 100644 index 0000000..e58e97e --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 6/1 лаб 6.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1 лаб 6", "1 лаб 6\1 лаб 6.vcxproj", "{2AE5987E-2E90-4FB7-8A70-1176777E19FE}" +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 + {2AE5987E-2E90-4FB7-8A70-1176777E19FE}.Debug|x64.ActiveCfg = Debug|x64 + {2AE5987E-2E90-4FB7-8A70-1176777E19FE}.Debug|x64.Build.0 = Debug|x64 + {2AE5987E-2E90-4FB7-8A70-1176777E19FE}.Debug|x86.ActiveCfg = Debug|Win32 + {2AE5987E-2E90-4FB7-8A70-1176777E19FE}.Debug|x86.Build.0 = Debug|Win32 + {2AE5987E-2E90-4FB7-8A70-1176777E19FE}.Release|x64.ActiveCfg = Release|x64 + {2AE5987E-2E90-4FB7-8A70-1176777E19FE}.Release|x64.Build.0 = Release|x64 + {2AE5987E-2E90-4FB7-8A70-1176777E19FE}.Release|x86.ActiveCfg = Release|Win32 + {2AE5987E-2E90-4FB7-8A70-1176777E19FE}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BFF92255-DADB-4FEF-8764-B93D054D4ACA} + EndGlobalSection +EndGlobal diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.cpp b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.cpp new file mode 100644 index 0000000..0b295b7 --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.cpp @@ -0,0 +1,310 @@ +// 1 лаб 6.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "1 лаб 6.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_MY16, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY16)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY16)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY16); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(wParam); + // Разобрать выбор в меню: + switch (wmId) + { + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + } + break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(255, 192, 203)); + SelectObject(hdc, hPen); + //ДОМ + + // Крыша + MoveToEx(hdc, 150, 350, NULL); + LineTo(hdc, 275, 250); + LineTo(hdc, 400, 350); + + // Дом + LineTo(hdc, 400, 525); + LineTo(hdc, 150, 525); + LineTo(hdc, 150, 350); + LineTo(hdc, 400, 350); + + // Окно + MoveToEx(hdc, 225, 400, NULL); + LineTo(hdc, 225, 475); + LineTo(hdc, 325, 475); + LineTo(hdc, 325, 400); + LineTo(hdc, 225, 400); + + // Рама + MoveToEx(hdc, 275, 400, NULL); + LineTo(hdc, 275, 475); + MoveToEx(hdc, 275, 425, NULL); + LineTo(hdc, 325, 425); + + hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + //ЕЛКА + + // Нижний ярус + MoveToEx(hdc, 470, 525, NULL); + LineTo(hdc, 520, 475); + LineTo(hdc, 570, 525); + LineTo(hdc, 470, 525); + + // Средний ярус + MoveToEx(hdc, 490, 470, NULL); + LineTo(hdc, 520, 440); + LineTo(hdc, 550, 470); + LineTo(hdc, 490, 470); + + // Верхний ярус + MoveToEx(hdc, 500, 435, NULL); + LineTo(hdc, 520, 415); + LineTo(hdc, 540, 435); + LineTo(hdc, 500, 435); + + hPen = CreatePen(PS_SOLID, 3, RGB(139, 0, 255)); + SelectObject(hdc, hPen); + // 1 лаб 6 + + // первая точка - конец ветки куста + int x1 = 400, y1 = 150; + // вторая точка - корень куста + int x2 = 500, y2 = 250; + + // соединяем линией первую точку со второй + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 25 пикселей + x1 += 25; + } while (x1 <= 600); + + + //2 лаб 6 + hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 128)); + SelectObject(hdc, hPen); + + { // Начало блока - чтобы можно было создавать локальные переменные! + // первая точка - кончик ветки куста + int x1 = 0, y1 = 250; + // вторая точка - корень куста + int x2 = 100, y2 = 250; + + do { + // соединяем линией первую точку со второй + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 25 пикселей + x1 += 25; + // перемещаем вверх на 50 пикселей + y1 -= 50; + } while (x1 <= 100); + + x1 = 100; + y1 = 50; + + do { + // соединяем линией первую точку со второй + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 25 пикселей + x1 += 25; + // перемещаем вниз на 50 пикселей + y1 += 50; + } while (x1 <= 200); + + } + + // 4 лаб 6 + hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + { + int x1 = 150, y1 = 0; + int x2 = 150, y2 = 100; + + do{ + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + x1 += 25; + x2 += 25; + } while (x1 <= 450); + + } + + + + + EndPaint(hWnd, &ps); + } + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.h b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.ico b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.ico differ diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.rc b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.rc new file mode 100644 index 0000000..9b7851c Binary files /dev/null and b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.rc differ diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.vcxproj b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.vcxproj new file mode 100644 index 0000000..2c24c6b --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {2ae5987e-2e90-4fb7-8a70-1176777e19fe} + My1лаб6 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.vcxproj.filters b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.vcxproj.filters new file mode 100644 index 0000000..800bc0f --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/1 лаб 6.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {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/5, 6 лаб/1, 2 лаб 6/1 лаб 6/Resource.h b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/Resource.h new file mode 100644 index 0000000..f078cfd --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 1 лаб 6.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY16_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY16 107 +#define IDI_SMALL 108 +#define IDC_MY16 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/framework.h b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/small.ico b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/small.ico differ diff --git a/5, 6 лаб/1, 2 лаб 6/1 лаб 6/targetver.h b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/5, 6 лаб/1, 2 лаб 6/1 лаб 6/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5.sln b/5, 6 лаб/3 лаб 5/3 лаб 5.sln new file mode 100644 index 0000000..9afd28b --- /dev/null +++ b/5, 6 лаб/3 лаб 5/3 лаб 5.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3 лаб 5", "3 лаб 5\3 лаб 5.vcxproj", "{AAEB3953-232E-4664-899B-AA57BCAF0CA0}" +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 + {AAEB3953-232E-4664-899B-AA57BCAF0CA0}.Debug|x64.ActiveCfg = Debug|x64 + {AAEB3953-232E-4664-899B-AA57BCAF0CA0}.Debug|x64.Build.0 = Debug|x64 + {AAEB3953-232E-4664-899B-AA57BCAF0CA0}.Debug|x86.ActiveCfg = Debug|Win32 + {AAEB3953-232E-4664-899B-AA57BCAF0CA0}.Debug|x86.Build.0 = Debug|Win32 + {AAEB3953-232E-4664-899B-AA57BCAF0CA0}.Release|x64.ActiveCfg = Release|x64 + {AAEB3953-232E-4664-899B-AA57BCAF0CA0}.Release|x64.Build.0 = Release|x64 + {AAEB3953-232E-4664-899B-AA57BCAF0CA0}.Release|x86.ActiveCfg = Release|Win32 + {AAEB3953-232E-4664-899B-AA57BCAF0CA0}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3C4188F6-A53A-41BC-9FB6-087803ECBDEF} + EndGlobalSection +EndGlobal diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.cpp b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.cpp new file mode 100644 index 0000000..31c0c60 --- /dev/null +++ b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.cpp @@ -0,0 +1,219 @@ +// 3 лаб 5.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "3 лаб 5.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_MY35, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY35)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY35)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY35); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(wParam); + // Разобрать выбор в меню: + switch (wmId) + { + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + } + break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + HBRUSH hBrush; + hBrush = CreateSolidBrush(RGB(255, 128, 67)); + SelectObject(hdc, hBrush); + + // Прямоугольник + Rectangle(hdc, 50, 200, 300, 250); + + // Линия + MoveToEx(hdc, 100, 200, NULL); + LineTo(hdc, 150, 150); + LineTo(hdc, 250, 150); + LineTo(hdc, 300, 200); + + + hPen = CreatePen(PS_SOLID, 7, RGB(0, 0, 128)); + SelectObject(hdc, hPen); + + hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(255, 0, 0)); + SelectObject(hdc, hBrush); + + // Эллипс + Ellipse(hdc, 75, 225, 125, 275); + + hPen = CreatePen(PS_SOLID, 7, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 128, 0)); + SelectObject(hdc, hBrush); + Ellipse(hdc, 220, 225, 270, 275); + + DeleteObject(hPen); + DeleteObject(hBrush); + + + EndPaint(hWnd, &ps); + } + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.h b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.ico b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.ico differ diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.rc b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.rc new file mode 100644 index 0000000..6683bbf Binary files /dev/null and b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.rc differ diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.vcxproj b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.vcxproj new file mode 100644 index 0000000..39193a9 --- /dev/null +++ b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {aaeb3953-232e-4664-899b-aa57bcaf0ca0} + My3лаб5 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.vcxproj.filters b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.vcxproj.filters new file mode 100644 index 0000000..43aa33e --- /dev/null +++ b/5, 6 лаб/3 лаб 5/3 лаб 5/3 лаб 5.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {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/5, 6 лаб/3 лаб 5/3 лаб 5/Resource.h b/5, 6 лаб/3 лаб 5/3 лаб 5/Resource.h new file mode 100644 index 0000000..c471a1a --- /dev/null +++ b/5, 6 лаб/3 лаб 5/3 лаб 5/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 3 лаб 5.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY35_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY35 107 +#define IDI_SMALL 108 +#define IDC_MY35 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/framework.h b/5, 6 лаб/3 лаб 5/3 лаб 5/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/5, 6 лаб/3 лаб 5/3 лаб 5/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/small.ico b/5, 6 лаб/3 лаб 5/3 лаб 5/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/3 лаб 5/3 лаб 5/small.ico differ diff --git a/5, 6 лаб/3 лаб 5/3 лаб 5/targetver.h b/5, 6 лаб/3 лаб 5/3 лаб 5/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/5, 6 лаб/3 лаб 5/3 лаб 5/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6.sln b/5, 6 лаб/3 лаб 6/3 лаб 6.sln new file mode 100644 index 0000000..4bc07c8 --- /dev/null +++ b/5, 6 лаб/3 лаб 6/3 лаб 6.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3 лаб 6", "3 лаб 6\3 лаб 6.vcxproj", "{1E163531-7D21-42E8-BC42-DA6EF78E7477}" +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 + {1E163531-7D21-42E8-BC42-DA6EF78E7477}.Debug|x64.ActiveCfg = Debug|x64 + {1E163531-7D21-42E8-BC42-DA6EF78E7477}.Debug|x64.Build.0 = Debug|x64 + {1E163531-7D21-42E8-BC42-DA6EF78E7477}.Debug|x86.ActiveCfg = Debug|Win32 + {1E163531-7D21-42E8-BC42-DA6EF78E7477}.Debug|x86.Build.0 = Debug|Win32 + {1E163531-7D21-42E8-BC42-DA6EF78E7477}.Release|x64.ActiveCfg = Release|x64 + {1E163531-7D21-42E8-BC42-DA6EF78E7477}.Release|x64.Build.0 = Release|x64 + {1E163531-7D21-42E8-BC42-DA6EF78E7477}.Release|x86.ActiveCfg = Release|Win32 + {1E163531-7D21-42E8-BC42-DA6EF78E7477}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2C885694-9676-4E51-AEAC-232145CC28B1} + EndGlobalSection +EndGlobal diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.cpp b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.cpp new file mode 100644 index 0000000..ac4f003 --- /dev/null +++ b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.cpp @@ -0,0 +1,229 @@ +// 3 лаб 6.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "3 лаб 6.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_MY36, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY36)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY36)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY36); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(wParam); + // Разобрать выбор в меню: + switch (wmId) + { + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + } + break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + + // конец ветки куста + int x1 = 400, y1 = 150; + // корень куста + int x2 = 500, y2 = 250; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 5 пикселей + x1 += 5; + } while (x1 <= 600); + + + + + { // Начало блока - чтобы можно было создавать локальные переменные! + // кончик ветки куста + int x1 = 0, y1 = 250; + // корень куста + int x2 = 100, y2 = 250; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 5 пикселей + x1 += 5; + // перемещаем вверх на 10 пикселей + y1 -= 10; + } while (x1 <= 100); + + x1 = 100; + y1 = 50; + + do { + // соединяем линией первую точку со второй + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 5 пикселей + x1 += 5; + // перемещаем вниз на 10 пикселей + y1 += 10; + } while (x1 <= 200); + + } + + EndPaint(hWnd, &ps); + } + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.h b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.ico b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.ico differ diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.rc b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.rc new file mode 100644 index 0000000..cad8583 Binary files /dev/null and b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.rc differ diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.vcxproj b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.vcxproj new file mode 100644 index 0000000..a0b8021 --- /dev/null +++ b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {1e163531-7d21-42e8-bc42-da6ef78e7477} + My3лаб6 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.vcxproj.filters b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.vcxproj.filters new file mode 100644 index 0000000..64aaeee --- /dev/null +++ b/5, 6 лаб/3 лаб 6/3 лаб 6/3 лаб 6.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {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/5, 6 лаб/3 лаб 6/3 лаб 6/Resource.h b/5, 6 лаб/3 лаб 6/3 лаб 6/Resource.h new file mode 100644 index 0000000..f244ce3 --- /dev/null +++ b/5, 6 лаб/3 лаб 6/3 лаб 6/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 3 лаб 6.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY36_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY36 107 +#define IDI_SMALL 108 +#define IDC_MY36 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/framework.h b/5, 6 лаб/3 лаб 6/3 лаб 6/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/5, 6 лаб/3 лаб 6/3 лаб 6/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/small.ico b/5, 6 лаб/3 лаб 6/3 лаб 6/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/3 лаб 6/3 лаб 6/small.ico differ diff --git a/5, 6 лаб/3 лаб 6/3 лаб 6/targetver.h b/5, 6 лаб/3 лаб 6/3 лаб 6/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/5, 6 лаб/3 лаб 6/3 лаб 6/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6.sln b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6.sln new file mode 100644 index 0000000..09d4a2b --- /dev/null +++ b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "4.1 лаб 6", "4.1 лаб 6\4.1 лаб 6.vcxproj", "{8C5089D9-5A09-4B64-8AC8-03E710BB80F3}" +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 + {8C5089D9-5A09-4B64-8AC8-03E710BB80F3}.Debug|x64.ActiveCfg = Debug|x64 + {8C5089D9-5A09-4B64-8AC8-03E710BB80F3}.Debug|x64.Build.0 = Debug|x64 + {8C5089D9-5A09-4B64-8AC8-03E710BB80F3}.Debug|x86.ActiveCfg = Debug|Win32 + {8C5089D9-5A09-4B64-8AC8-03E710BB80F3}.Debug|x86.Build.0 = Debug|Win32 + {8C5089D9-5A09-4B64-8AC8-03E710BB80F3}.Release|x64.ActiveCfg = Release|x64 + {8C5089D9-5A09-4B64-8AC8-03E710BB80F3}.Release|x64.Build.0 = Release|x64 + {8C5089D9-5A09-4B64-8AC8-03E710BB80F3}.Release|x86.ActiveCfg = Release|Win32 + {8C5089D9-5A09-4B64-8AC8-03E710BB80F3}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {525245A4-D3F8-480C-B4C8-92EB5DE7BF1F} + EndGlobalSection +EndGlobal diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.cpp b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.cpp new file mode 100644 index 0000000..fc2d562 --- /dev/null +++ b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.cpp @@ -0,0 +1,198 @@ +// 4.1 лаб 6.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "4.1 лаб 6.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_MY416, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY416)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY416)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY416); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(wParam); + // Разобрать выбор в меню: + switch (wmId) + { + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + } + break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + // 4.1 лаб 6 + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + { + int x1 = 150, y1 = 0; + int x2 = 150, y2 = 100; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + x1 += 5; + x2 += 5; + } while (x1 <= 450); + + } + + EndPaint(hWnd, &ps); + } + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.h b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.ico b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.ico differ diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.rc b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.rc new file mode 100644 index 0000000..37120df Binary files /dev/null and b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.rc differ diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.vcxproj b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.vcxproj new file mode 100644 index 0000000..248006d --- /dev/null +++ b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {8c5089d9-5a09-4b64-8ac8-03e710bb80f3} + My41лаб6 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.vcxproj.filters b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.vcxproj.filters new file mode 100644 index 0000000..6bfecfb --- /dev/null +++ b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/4.1 лаб 6.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {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/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/Resource.h b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/Resource.h new file mode 100644 index 0000000..cc80cfc --- /dev/null +++ b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 4.1 лаб 6.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY416_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY416 107 +#define IDI_SMALL 108 +#define IDC_MY416 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/framework.h b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/small.ico b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/small.ico differ diff --git a/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/targetver.h b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/5, 6 лаб/4.1 лаб 6/4.1 лаб 6/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5.sln b/5, 6 лаб/5 лаб 5/5 лаб 5.sln new file mode 100644 index 0000000..a63f687 --- /dev/null +++ b/5, 6 лаб/5 лаб 5/5 лаб 5.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5 лаб 5", "5 лаб 5\5 лаб 5.vcxproj", "{885D8EE4-8D3D-42A9-B268-9F01F2858F5D}" +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 + {885D8EE4-8D3D-42A9-B268-9F01F2858F5D}.Debug|x64.ActiveCfg = Debug|x64 + {885D8EE4-8D3D-42A9-B268-9F01F2858F5D}.Debug|x64.Build.0 = Debug|x64 + {885D8EE4-8D3D-42A9-B268-9F01F2858F5D}.Debug|x86.ActiveCfg = Debug|Win32 + {885D8EE4-8D3D-42A9-B268-9F01F2858F5D}.Debug|x86.Build.0 = Debug|Win32 + {885D8EE4-8D3D-42A9-B268-9F01F2858F5D}.Release|x64.ActiveCfg = Release|x64 + {885D8EE4-8D3D-42A9-B268-9F01F2858F5D}.Release|x64.Build.0 = Release|x64 + {885D8EE4-8D3D-42A9-B268-9F01F2858F5D}.Release|x86.ActiveCfg = Release|Win32 + {885D8EE4-8D3D-42A9-B268-9F01F2858F5D}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6972BFCD-1E2F-45DB-9ECA-F547F2C88FD0} + EndGlobalSection +EndGlobal diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.cpp b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.cpp new file mode 100644 index 0000000..e0055d4 --- /dev/null +++ b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.cpp @@ -0,0 +1,304 @@ +// 5 лаб 5.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "5 лаб 5.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_MY55, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY55)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY55)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY55); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(wParam); + // Разобрать выбор в меню: + switch (wmId) + { + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + } + break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + //ДОМ + + // Крыша + MoveToEx(hdc, 150, 350, NULL); + LineTo(hdc, 275, 250); + LineTo(hdc, 400, 350); + + // Дом + LineTo(hdc, 400, 525); + LineTo(hdc, 150, 525); + LineTo(hdc, 150, 350); + LineTo(hdc, 400, 350); + + // Окно + MoveToEx(hdc, 225, 400, NULL); + LineTo(hdc, 225, 475); + LineTo(hdc, 325, 475); + LineTo(hdc, 325, 400); + LineTo(hdc, 225, 400); + + // Рама + MoveToEx(hdc, 275, 400, NULL); + LineTo(hdc, 275, 475); + MoveToEx(hdc, 275, 425, NULL); + LineTo(hdc, 325, 425); + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + //ЕЛКА + + // Нижний ярус + MoveToEx(hdc, 470, 525, NULL); + LineTo(hdc, 520, 475); + LineTo(hdc, 570, 525); + LineTo(hdc, 470, 525); + + // Средний ярус + MoveToEx(hdc, 490, 470, NULL); + LineTo(hdc, 520, 440); + LineTo(hdc, 550, 470); + LineTo(hdc, 490, 470); + + // Верхний ярус + MoveToEx(hdc, 500, 435, NULL); + LineTo(hdc, 520, 415); + LineTo(hdc, 540, 435); + LineTo(hdc, 500, 435); + + //Дерево + + hPen = CreatePen(PS_SOLID, 3, RGB(150, 75, 0)); + SelectObject(hdc, hPen); + + HBRUSH hBrush; + hBrush = CreateSolidBrush(RGB(150, 75, 0)); + SelectObject(hdc, hBrush); + + // Прямоугольник + Rectangle(hdc, 40, 530, 50, 450); + + + hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + hBrush; + hBrush = CreateSolidBrush(RGB(0, 128, 0)); + SelectObject(hdc, hBrush); + // Эллипс Кусты/Листья + Ellipse(hdc, 9, 420, 50, 450); + Ellipse(hdc, 40, 423, 80, 460); + Ellipse(hdc, 32, 370, 60, 440); + Ellipse(hdc, 5, 400, 40, 430); + Ellipse(hdc, 50, 400, 90, 430); + + // забор + hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + { + int x1 = 80, y1 = 435; + int x2 = 80, y2 = 520; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + x1 += 25; + x2 += 25; + } while (x1 <= 200); + + } + // горизонтальный забор + { + int x1 = 60, y1 = 460; + int x2 = 190, y2 = 460; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + y1 += 25; + y2 += 25; + } while (y2 <= 500); + + } + + // солнце + hBrush = CreateSolidBrush(RGB(255, 255, 255)); + SelectObject(hdc, hBrush); + + hPen = CreatePen(PS_SOLID, 3, RGB(255, 255, 0)); + SelectObject(hdc, hPen); + Ellipse(hdc, 425, 150, 505, 230); + // лучи + MoveToEx(hdc, 350, 190, NULL); + LineTo(hdc, 410, 180); + MoveToEx(hdc, 390, 245, NULL); + LineTo(hdc, 420, 210); + MoveToEx(hdc, 440, 280, NULL); + LineTo(hdc, 450, 240); + + + EndPaint(hWnd, &ps); + } + + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.h b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.ico b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.ico differ diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.rc b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.rc new file mode 100644 index 0000000..6ab6295 Binary files /dev/null and b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.rc differ diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.vcxproj b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.vcxproj new file mode 100644 index 0000000..173583b --- /dev/null +++ b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {885d8ee4-8d3d-42a9-b268-9f01f2858f5d} + My5лаб5 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.vcxproj.filters b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.vcxproj.filters new file mode 100644 index 0000000..1357b8c --- /dev/null +++ b/5, 6 лаб/5 лаб 5/5 лаб 5/5 лаб 5.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {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/5, 6 лаб/5 лаб 5/5 лаб 5/Resource.h b/5, 6 лаб/5 лаб 5/5 лаб 5/Resource.h new file mode 100644 index 0000000..769547c --- /dev/null +++ b/5, 6 лаб/5 лаб 5/5 лаб 5/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 5 лаб 5.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY55_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY55 107 +#define IDI_SMALL 108 +#define IDC_MY55 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/framework.h b/5, 6 лаб/5 лаб 5/5 лаб 5/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/5, 6 лаб/5 лаб 5/5 лаб 5/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/small.ico b/5, 6 лаб/5 лаб 5/5 лаб 5/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/5 лаб 5/5 лаб 5/small.ico differ diff --git a/5, 6 лаб/5 лаб 5/5 лаб 5/targetver.h b/5, 6 лаб/5 лаб 5/5 лаб 5/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/5, 6 лаб/5 лаб 5/5 лаб 5/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6.sln b/5, 6 лаб/5 лаб 6/5 лаб 6.sln new file mode 100644 index 0000000..ca90868 --- /dev/null +++ b/5, 6 лаб/5 лаб 6/5 лаб 6.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5 лаб 6", "5 лаб 6\5 лаб 6.vcxproj", "{433053D9-E40B-401C-ACEB-FBD2715E5E94}" +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 + {433053D9-E40B-401C-ACEB-FBD2715E5E94}.Debug|x64.ActiveCfg = Debug|x64 + {433053D9-E40B-401C-ACEB-FBD2715E5E94}.Debug|x64.Build.0 = Debug|x64 + {433053D9-E40B-401C-ACEB-FBD2715E5E94}.Debug|x86.ActiveCfg = Debug|Win32 + {433053D9-E40B-401C-ACEB-FBD2715E5E94}.Debug|x86.Build.0 = Debug|Win32 + {433053D9-E40B-401C-ACEB-FBD2715E5E94}.Release|x64.ActiveCfg = Release|x64 + {433053D9-E40B-401C-ACEB-FBD2715E5E94}.Release|x64.Build.0 = Release|x64 + {433053D9-E40B-401C-ACEB-FBD2715E5E94}.Release|x86.ActiveCfg = Release|Win32 + {433053D9-E40B-401C-ACEB-FBD2715E5E94}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CCA72368-ACA0-4EEB-A84D-37C63715F8A6} + EndGlobalSection +EndGlobal diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.cpp b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.cpp new file mode 100644 index 0000000..800d244 --- /dev/null +++ b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.cpp @@ -0,0 +1,310 @@ +// 5 лаб 6.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "5 лаб 6.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_MY56, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY56)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY56)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY56); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(wParam); + // Разобрать выбор в меню: + switch (wmId) + { + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + } + break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + + HPEN hPen = CreatePen(PS_SOLID, 3, RGB(255, 192, 203)); + SelectObject(hdc, hPen); + //ДОМ + + // Крыша + MoveToEx(hdc, 150, 350, NULL); + LineTo(hdc, 275, 250); + LineTo(hdc, 400, 350); + + // Дом + LineTo(hdc, 400, 525); + LineTo(hdc, 150, 525); + LineTo(hdc, 150, 350); + LineTo(hdc, 400, 350); + + // Окно + MoveToEx(hdc, 225, 400, NULL); + LineTo(hdc, 225, 475); + LineTo(hdc, 325, 475); + LineTo(hdc, 325, 400); + LineTo(hdc, 225, 400); + + // Рама + MoveToEx(hdc, 275, 400, NULL); + LineTo(hdc, 275, 475); + MoveToEx(hdc, 275, 425, NULL); + LineTo(hdc, 325, 425); + + hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0)); + SelectObject(hdc, hPen); + + //ЕЛКА + + // Нижний ярус + MoveToEx(hdc, 470, 525, NULL); + LineTo(hdc, 520, 475); + LineTo(hdc, 570, 525); + LineTo(hdc, 470, 525); + + // Средний ярус + MoveToEx(hdc, 490, 470, NULL); + LineTo(hdc, 520, 440); + LineTo(hdc, 550, 470); + LineTo(hdc, 490, 470); + + // Верхний ярус + MoveToEx(hdc, 500, 435, NULL); + LineTo(hdc, 520, 415); + LineTo(hdc, 540, 435); + LineTo(hdc, 500, 435); + + hPen = CreatePen(PS_SOLID, 3, RGB(139, 0, 255)); + SelectObject(hdc, hPen); + // 1 лаб 6 + + // первая точка - конец ветки куста + int x1 = 400, y1 = 150; + // вторая точка - корень куста + int x2 = 500, y2 = 250; + + // соединяем линией первую точку со второй + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 25 пикселей + x1 += 25; + } while (x1 <= 600); + + + //2 лаб 6 + hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 128)); + SelectObject(hdc, hPen); + + { // Начало блока - чтобы можно было создавать локальные переменные! + // первая точка - кончик ветки куста + int x1 = 0, y1 = 250; + // вторая точка - корень куста + int x2 = 100, y2 = 250; + + do { + // соединяем линией первую точку со второй + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 25 пикселей + x1 += 25; + // перемещаем вверх на 50 пикселей + y1 -= 50; + } while (x1 <= 100); + + x1 = 100; + y1 = 50; + + do { + // соединяем линией первую точку со второй + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + // первую точку перемещаем вправо на 25 пикселей + x1 += 25; + // перемещаем вниз на 50 пикселей + y1 += 50; + } while (x1 <= 200); + + } + + // 4 лаб 6 + hPen = CreatePen(PS_SOLID, 3, RGB(128, 0, 0)); + SelectObject(hdc, hPen); + + { + int x1 = 150, y1 = 0; + int x2 = 150, y2 = 100; + + do { + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x2, y2); + + x1 += 25; + x2 += 25; + } while (x1 <= 450); + + } + + + + + + EndPaint(hWnd, &ps); + } + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.h b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.ico b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.ico differ diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.rc b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.rc new file mode 100644 index 0000000..a0070fe Binary files /dev/null and b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.rc differ diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.vcxproj b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.vcxproj new file mode 100644 index 0000000..6d54f39 --- /dev/null +++ b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {433053d9-e40b-401c-aceb-fbd2715e5e94} + My5лаб6 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.vcxproj.filters b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.vcxproj.filters new file mode 100644 index 0000000..a921e45 --- /dev/null +++ b/5, 6 лаб/5 лаб 6/5 лаб 6/5 лаб 6.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {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/5, 6 лаб/5 лаб 6/5 лаб 6/Resource.h b/5, 6 лаб/5 лаб 6/5 лаб 6/Resource.h new file mode 100644 index 0000000..e7d8d85 --- /dev/null +++ b/5, 6 лаб/5 лаб 6/5 лаб 6/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 5 лаб 6.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY56_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY56 107 +#define IDI_SMALL 108 +#define IDC_MY56 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/framework.h b/5, 6 лаб/5 лаб 6/5 лаб 6/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/5, 6 лаб/5 лаб 6/5 лаб 6/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/small.ico b/5, 6 лаб/5 лаб 6/5 лаб 6/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/5 лаб 6/5 лаб 6/small.ico differ diff --git a/5, 6 лаб/5 лаб 6/5 лаб 6/targetver.h b/5, 6 лаб/5 лаб 6/5 лаб 6/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/5, 6 лаб/5 лаб 6/5 лаб 6/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5.sln b/5, 6 лаб/8 лаб 5/8 лаб 5.sln new file mode 100644 index 0000000..4ac60b4 --- /dev/null +++ b/5, 6 лаб/8 лаб 5/8 лаб 5.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8 лаб 5", "8 лаб 5\8 лаб 5.vcxproj", "{68DDF938-6FBE-4806-9175-04CA93978488}" +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 + {68DDF938-6FBE-4806-9175-04CA93978488}.Debug|x64.ActiveCfg = Debug|x64 + {68DDF938-6FBE-4806-9175-04CA93978488}.Debug|x64.Build.0 = Debug|x64 + {68DDF938-6FBE-4806-9175-04CA93978488}.Debug|x86.ActiveCfg = Debug|Win32 + {68DDF938-6FBE-4806-9175-04CA93978488}.Debug|x86.Build.0 = Debug|Win32 + {68DDF938-6FBE-4806-9175-04CA93978488}.Release|x64.ActiveCfg = Release|x64 + {68DDF938-6FBE-4806-9175-04CA93978488}.Release|x64.Build.0 = Release|x64 + {68DDF938-6FBE-4806-9175-04CA93978488}.Release|x86.ActiveCfg = Release|Win32 + {68DDF938-6FBE-4806-9175-04CA93978488}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8A01C625-C57C-42F8-BC12-EE437D9526F5} + EndGlobalSection +EndGlobal diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.cpp b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.cpp new file mode 100644 index 0000000..a3cabe4 --- /dev/null +++ b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.cpp @@ -0,0 +1,239 @@ +// 8 лаб 5.cpp : Определяет точку входа для приложения. +// + +#include "framework.h" +#include "8 лаб 5.h" + +#define MAX_LOADSTRING 100 + +// Глобальные переменные: +HINSTANCE hInst; // текущий экземпляр +WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка +WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна + +// Отправить объявления функций, включенных в этот модуль кода: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); + +int APIENTRY wWinMain(_In_ HINSTANCE hInstance, + _In_opt_ HINSTANCE hPrevInstance, + _In_ LPWSTR lpCmdLine, + _In_ int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // TODO: Разместите код здесь. + + // Инициализация глобальных строк + LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + LoadStringW(hInstance, IDC_MY85, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Выполнить инициализацию приложения: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY85)); + + MSG msg; + + // Цикл основного сообщения: + while (GetMessage(&msg, nullptr, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// ФУНКЦИЯ: MyRegisterClass() +// +// ЦЕЛЬ: Регистрирует класс окна. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY85)); + wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_MY85); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassExW(&wcex); +} + +// +// ФУНКЦИЯ: InitInstance(HINSTANCE, int) +// +// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно +// +// КОММЕНТАРИИ: +// +// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также +// создается и выводится главное окно программы. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной + + HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + + return TRUE; +} + +// +// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// ЦЕЛЬ: Обрабатывает сообщения в главном окне. +// +// WM_COMMAND - обработать меню приложения +// WM_PAINT - Отрисовка главного окна +// WM_DESTROY - отправить сообщение о выходе и вернуться +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_COMMAND: + { + int wmId = LOWORD(wParam); + // Разобрать выбор в меню: + switch (wmId) + { + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + } + break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hWnd, &ps); + // TODO: Добавьте сюда любой код прорисовки, использующий HDC... + + HPEN hPen = CreatePen(PS_SOLID, 2, RGB(128, 128, 128)); // Серый цвет + SelectObject(hdc, hPen); + + + // Кузов автобуса + HBRUSH hBrush = CreateSolidBrush(RGB(128, 128, 128)); + SelectObject(hdc, hBrush); + Rectangle(hdc, 100, 200, 400, 350); + + // Двери + hBrush = CreateSolidBrush(RGB(181, 184, 177)); // Ссветло-серый цвет + SelectObject(hdc, hBrush); + Rectangle(hdc, 265, 230, 313, 340); + Rectangle(hdc, 315, 230, 360, 340); + + //ручки двери + hBrush = CreateSolidBrush(RGB(150, 75, 0)); //коричневый цвет + SelectObject(hdc, hBrush); + + hPen = CreatePen(PS_SOLID, 2, RGB(150, 75, 0)); // коричневый цвет + SelectObject(hdc, hPen); + + Rectangle(hdc, 300, 270, 311, 290); + Rectangle(hdc, 315, 270, 325, 290); + + // Окна + + hBrush = CreateSolidBrush(RGB(0, 150, 255)); // Голубой цвет + SelectObject(hdc, hBrush); + hPen = CreatePen(PS_SOLID, 2, RGB(0, 150, 255)); // Голубой цвет + SelectObject(hdc, hPen); + + Rectangle(hdc, 115, 230, 150, 280); + Rectangle(hdc, 170, 230, 203, 280); + Rectangle(hdc, 215, 230, 250, 280); + Rectangle(hdc, 365, 230, 400, 280); + Rectangle(hdc, 275, 235, 305, 260); + Rectangle(hdc, 325, 235, 350, 260); + + + //фары + hBrush = CreateSolidBrush(RGB(255, 255, 139)); //желтый цвет + SelectObject(hdc, hBrush); + + hPen = CreatePen(PS_SOLID, 2, RGB(255, 255, 139)); // желтый цвет + SelectObject(hdc, hPen); + + Rectangle(hdc, 90, 290, 105, 320); + + // Колеса + hPen = CreatePen(PS_SOLID, 4, RGB(0, 0, 0)); + SelectObject(hdc, hPen); + hBrush = CreateSolidBrush(RGB(181, 184, 177)); + SelectObject(hdc, hBrush); + Ellipse(hdc, 135, 340, 170, 370); + Ellipse(hdc, 235, 340, 270, 370); + Ellipse(hdc, 365, 340, 400, 370); + + EndPaint(hWnd, &ps); + } + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Обработчик сообщений для окна "О программе". +INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.h b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.h new file mode 100644 index 0000000..b798bf5 --- /dev/null +++ b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.ico b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.ico differ diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.rc b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.rc new file mode 100644 index 0000000..0e992b1 Binary files /dev/null and b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.rc differ diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.vcxproj b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.vcxproj new file mode 100644 index 0000000..06657bf --- /dev/null +++ b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {68ddf938-6fbe-4806-9175-04ca93978488} + My8лаб5 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.vcxproj.filters b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.vcxproj.filters new file mode 100644 index 0000000..c07b544 --- /dev/null +++ b/5, 6 лаб/8 лаб 5/8 лаб 5/8 лаб 5.vcxproj.filters @@ -0,0 +1,49 @@ + + + + + {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/5, 6 лаб/8 лаб 5/8 лаб 5/Resource.h b/5, 6 лаб/8 лаб 5/8 лаб 5/Resource.h new file mode 100644 index 0000000..eda5486 --- /dev/null +++ b/5, 6 лаб/8 лаб 5/8 лаб 5/Resource.h @@ -0,0 +1,30 @@ +//{{NO_DEPENDENCIES}} +// Включаемый файл, созданный в Microsoft Visual C++. +// Используется 8 лаб 5.rc + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_MY85_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_MY85 107 +#define IDI_SMALL 108 +#define IDC_MY85 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Следующие стандартные значения для новых объектов +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/framework.h b/5, 6 лаб/8 лаб 5/8 лаб 5/framework.h new file mode 100644 index 0000000..a8f6dc8 --- /dev/null +++ b/5, 6 лаб/8 лаб 5/8 лаб 5/framework.h @@ -0,0 +1,15 @@ +// header.h: включаемый файл для стандартных системных включаемых файлов +// или включаемые файлы для конкретного проекта +// + +#pragma once + +#include "targetver.h" +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include +// Файлы заголовков среды выполнения C +#include +#include +#include +#include diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/small.ico b/5, 6 лаб/8 лаб 5/8 лаб 5/small.ico new file mode 100644 index 0000000..b3ec03b Binary files /dev/null and b/5, 6 лаб/8 лаб 5/8 лаб 5/small.ico differ diff --git a/5, 6 лаб/8 лаб 5/8 лаб 5/targetver.h b/5, 6 лаб/8 лаб 5/8 лаб 5/targetver.h new file mode 100644 index 0000000..d90003d --- /dev/null +++ b/5, 6 лаб/8 лаб 5/8 лаб 5/targetver.h @@ -0,0 +1,6 @@ +#pragma once + +// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows. +// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и +// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h. +#include diff --git a/9, 10 лаб/1, 2 лаб 10/1 лаб 10.sln b/9, 10 лаб/1, 2 лаб 10/1 лаб 10.sln new file mode 100644 index 0000000..c9629b4 --- /dev/null +++ b/9, 10 лаб/1, 2 лаб 10/1 лаб 10.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1 лаб 10", "1 лаб 10\1 лаб 10.vcxproj", "{180731D8-DD1D-4345-B1DB-ABE639EEDEB0}" +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 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Debug|x64.ActiveCfg = Debug|x64 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Debug|x64.Build.0 = Debug|x64 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Debug|x86.ActiveCfg = Debug|Win32 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Debug|x86.Build.0 = Debug|Win32 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Release|x64.ActiveCfg = Release|x64 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Release|x64.Build.0 = Release|x64 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Release|x86.ActiveCfg = Release|Win32 + {180731D8-DD1D-4345-B1DB-ABE639EEDEB0}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FCF90060-29BF-4992-A986-63ECD2564E38} + EndGlobalSection +EndGlobal diff --git a/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj new file mode 100644 index 0000000..889391a --- /dev/null +++ b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {180731d8-dd1d-4345-b1db-abe639eedeb0} + My1лаб10 + 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/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj.filters b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.vcxproj.filters new file mode 100644 index 0000000..3f0db78 --- /dev/null +++ b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/1 лаб 10.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/9, 10 лаб/1, 2 лаб 10/1 лаб 10/FileName.cpp b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/FileName.cpp new file mode 100644 index 0000000..8116195 --- /dev/null +++ b/9, 10 лаб/1, 2 лаб 10/1 лаб 10/FileName.cpp @@ -0,0 +1,66 @@ +#include +#include + +void Task1() { + printf("Task1() START\n"); + int n; + int m; + + printf("n = "); + scanf_s("%d", &n); + printf("m = "); + scanf_s("%d", &m); + + int i = 1; + do { + int j = 1; + do { + printf("%d ", i * 10 + j); + j += 1; + } while (j <= m); + printf("\n"); + i += 1; + } while (i <= n); + printf("Task1() FINISH()\n"); +} + +void Task2() { + printf("Task2() START\n"); + int i = 1;//llll + do { + int j = 1; + do { + printf("%5d ", i * j); + j += 1; + } while (j <= 10); + printf("\n"); + i += 1; + } while (i <= 10); + printf("Task2() FINISH()\n"); +} + +void main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int n = 1; + + do { + printf("\n"); + printf("\n"); + printf(" \n"); + printf("1: 1 (i * 10 + j)\n"); + printf("2: 2 ( )\n"); + printf("\n"); + printf("0: \n"); + + scanf_s("%d", &n); + switch (n) { + case 1: + Task1(); + break; + case 2: + Task2(); + break; + } + } while (n != 0); +} \ No newline at end of file diff --git a/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9.sln b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9.sln new file mode 100644 index 0000000..b523521 --- /dev/null +++ b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "5 лаб 9", "5 лаб 9\5 лаб 9.vcxproj", "{12150A36-9D7F-4F8E-A3A9-745FF77BA796}" +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 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Debug|x64.ActiveCfg = Debug|x64 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Debug|x64.Build.0 = Debug|x64 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Debug|x86.ActiveCfg = Debug|Win32 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Debug|x86.Build.0 = Debug|Win32 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Release|x64.ActiveCfg = Release|x64 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Release|x64.Build.0 = Release|x64 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Release|x86.ActiveCfg = Release|Win32 + {12150A36-9D7F-4F8E-A3A9-745FF77BA796}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {115C7EB3-B988-40B7-ADEE-82FBA1102BC5} + EndGlobalSection +EndGlobal diff --git a/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj new file mode 100644 index 0000000..53a064b --- /dev/null +++ b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {12150a36-9d7f-4f8e-a3a9-745ff77ba796} + My5лаб9 + 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/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj.filters b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.vcxproj.filters new file mode 100644 index 0000000..3f0db78 --- /dev/null +++ b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/5 лаб 9.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/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/FileName.cpp b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/FileName.cpp new file mode 100644 index 0000000..7815bed --- /dev/null +++ b/9, 10 лаб/1, 2, 3, 5 лаб 9/5 лаб 9/FileName.cpp @@ -0,0 +1,89 @@ +#include +#include + +void print1_10() { + int a = 1; + do { + printf("%d ", a); + a += 1; + } while (a <= 10); +} + +void print10_1() { + int a = 10; + do { + printf("%d ", a); + a -= 1; + } while (a >= 1); +} + +void print5() { + int a = 1; + int i = 1; + do { + printf("%d ", a); + a += 2; + i += 1; + } while (i <= 5); +} +void print100_10while() { + int a = 100; + while (a >= 10) { + printf("%d ", a); + a -= 10; + } +} +void print1000_100while() { + int a = 1000; + while (a >= 100) { + printf("%d ", a); + a -= 100; + } +} +void print1000_0while() { + int a = 1000; + while (a >= 0) { + printf("%d ", a); + a -= 6; + } +} +void main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int n; + + do { + printf("\n"); + printf("\n"); + printf(" :\n"); + printf("1: 1 10\n"); + printf("2: 10 1\n"); + printf("3: 5 1\n"); + printf("11: 100 90 80 ... 10( WHILE)\n"); + printf("12: 1000 900 800 ... 100( WHILE)\n"); + printf("20: 1000 994 988 ( WHILE)\n"); + printf("\n"); + printf("0: \n"); + scanf_s("%d", &n); + switch (n) { + case 1: + print1_10(); + break; + case 2: + print10_1(); + break; + case 3: + print5(); + break; + case 11: + print100_10while(); + break; + case 12: + print1000_100while(); + break; + case 20: + print1000_0while(); + break; + } + } while (n != 0); +}