![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Преподаватель
Отчет По учебной практике
студента 1 курса 8 группы
Преподаватель Мушко Вилена Владимировна доцент кафедры технологий программирования
Минск, 2016 Задача №1 Условие: Использование цепочечных команд языка Ассемблер. Задан текстовый файл Input.txt, состоящий из слов и некоторое предложение. Разделителями между словами является некоторое множество знаков препинания. Найти строки, в которых встречается данное предложение, продублировать первое и последнее слова предложений. Результатзаписать в новый файл Output.txt. Упорядочить слова в искомых предложениях по убыванию длин слов, результат сортировки записать в файл Out_sort.txt.
Код: Файл main.cpp:
#include < iostream> #include < cstring> #include < fstream> using namespace std;
int strlen1(char*a) { int c; __asm { cld; mov esi, a mov edi, esi mov ecx, 1000 xor al, al repne scasb sub edi, esi dec edi mov c, edi } return c; }
void strcat1(char*a, char*b) { _asm { cld; mov esi, a push esi call strlen1 add esp, 4
mov edi, a add edi, eax
mov esi, b push esi call strlen1 add esp, 4
mov ecx, eax rep movsb mov byte ptr [edi], 0 } }
void strcpy1(char*a, char*b) { _asm { cld; mov edi, a
mov esi, b push esi call strlen1 add esp, 4
mov ecx, eax rep movsb mov byte ptr [edi], 0 } }
void strncpy1(char*a, char*b, int n) { _asm { cld; mov edi, a
mov esi, b
mov ecx, n rep movsb mov byte ptr [edi], 0 } }
void sortpodlin(char*a, int N) { char*b=new char[N]; for (int i=0; i< N; i++) b[i]=NULL; for (int i=N; i> 0; i--) { char*d=new char[N]; strcpy1(d, a); for(char*p=strtok(d, ".,:; -_!? "); p; p=strtok(NULL, ".,:; -_!? ")) { if (strlen1(p)==i) { strcat1(b, p); strcat1(b, " "); } } } strcpy1(a, b); }
int kolvo(FILE*b) { int a=0; char ch; b=fopen(" Input.txt", " r"); while ((ch = fgetc(b))! = EOF) a++; return a; }
void reverse(char*a, int n) { for(int i=0; i< n/2; i++){ char temp=a[i]; a[i]=a[n-i-1]; a[n-i-1]=temp; } }
void sdvigvlevo(char*a, int n, int k) { reverse(& a[0], k); reverse(& a[k], n-k); reverse(a, n); }
int main() { FILE*b; b=fopen(" Input.txt", " r"); ofstream file; file.open (" Output.txt"); int dl=kolvo(b); char*d=new char[dl]; char*n1=new char[dl]; for (int i=0; i< 100; i++) d[i]=NULL; cout< < " Input sentence: "; cin.getline(d, 100); strcpy1(n1, d);
int k=0, q=1, q2=0, u=0, y=0, a1=0, a2=0, a3=0; char*c=new char[dl]; char*e=new char[dl]; char*f=new char[dl]; char*g=new char[dl]; char*j=new char[dl]; char*l=new char[dl]; char*m=new char[dl]; char*n=new char[dl]; char*b1=new char[dl]; for (int i=0; i< dl; i++) { c[i]=NULL; e[i]=NULL; f[i]=NULL; g[i]=NULL; j[i]=NULL; m[i]=NULL; b1[i]=NULL; }
strcpy1(n, d); strcpy1(j, d); strcpy1(l, d); ofstream file12; file12.open (" Output.txt"); while(fgets(c, dl, b)! =NULL) { for (char*h=strtok(d, ".,:;!? +-"); h; h=strtok(NULL, ".,:;!? +-")) { a2++; } strcpy1(d, n);
strcpy1(b1, c); for (int i=0; i< strlen1(c); i++) { if (strlen1(d)==y) break; sdvigvlevo(c, strlen(c), 1); for (int i2=0; i2< strlen1(d); i2++) { if(c[i2]==d[i2]) k++; } if (k> y) y=k; k=0;
}
if(y==strlen1(d)& & a2> 1) { for (char*p=strtok(d, ".,:;!? +-"); p, q< 2; p=strtok(NULL, ".,:;!? +-")) { if(q==1) { strcat1(e, p); strcat1(e, " "); strcat1(e, p); strcat1(e, " ");
}
q++; reverse(j, strlen1(j)); int i1=0; while((j[i1]> 31& & j[i1]< 48)||(j[i1]> 57& & j[i1]< 64)) { q2++; i1++; } for (char*z=strtok(j, ".,:;!? +-"); z, q< 3; z=strtok(NULL, ".,:;!? +-")) { if (q==2) { reverse(l, strlen1(l)); strncpy1(g, l, strlen1(l)-strlen1(p)-1); reverse(g, strlen1(g)); strncpy1(m, g, strlen1(g)-strlen1(z)-q2); strcat1(e, m); reverse(l, strlen1(l)); for (int i=0; i< dl; i++) g[i]=NULL; reverse(z, strlen1(z)); strcat1(e, z); strcat1(e, " "); strcat1(e, z); q++; reverse(l, strlen1(l)); strncpy1(g, l, q2); reverse(g, strlen1(g)); strcat1(e, g); a1++; } } } } if(y==strlen1(d)& & a2==1) { q=5; a3++; }
u++; if (q==3) file12< < " Number of string with the desired sentence: " < < u< < endl< < " String from file: " < < b1< < " Modified sentence: " < < e< < endl< < endl; if (q==5) file12< < " Number of string with the desired word: " < < u< < endl< < " String from file: " < < b1< < endl; k=0; y=0; q=1; q2=0; a2=0; for (int i=0; i< dl; i++) { d[i]=NULL; c[i]=NULL; e[i]=NULL; f[i]=NULL; g[i]=NULL; j[i]=NULL; m[i]=NULL; }
strcpy1(d, n); strcpy1(l, n); strcpy1(j, n);
} if (a1) cout< < " Desired sentence is founded in file." < < endl; if (a3& & strlen1(b1)> 1) cout< < " There no such sentence in file, but there such word." < < endl; if (a3& & strlen1(b1)==1) cout< < " There no such sentence in file, but there such letter." < < endl; else cout< < " There no such sentence, word or letter in file." < < endl; return 0; }
Задача №2 Условие: Использование команд сопроцессора языка Ассемблер. Вычисление функций. Вычислить: S=
Код: Файл Row.h: #ifndef _ROW #define _ROW
double shx(double x); double chx(double x); double tanhx(double x); #endif /*_ROW*/
Файл Row.cpp:
#include " Row.h"
double shx(double x) { int u1; double sum=x, pr=x, e=0.0005, n=0, a, b=2, c=3, y, z, u2; x*=x;
_asm { _2: fld pr fabs fst u2; ffree st
fld u2 fld e fdiv fistp u1 ffree st
mov eax, u1 cmp eax, 1 jl _1 ffree st
fld n fld b fmul fst y ffree st
fld y fld b fadd fst y ffree st
fld n fld b fmul fst z ffree st
fld z fld c fadd fst z ffree st
fld y fld z fmul fst y ffree st
fld x fld y fdiv fst a ffree st
fld pr fld a fmul fst pr ffree st
fld pr fld sum fadd fst sum ffree st
fld1 fld n fadd fst n ffree st
jmp _2 _1: } return sum; } double chx(double x) { int u1; double sum=1, pr=1, e=0.00005, n=0, a, b=1, c=2, y, z, u2, b2=2; x*=x; _asm { _2: fld pr fabs fst u2; ffree st
fld u2 fld e fdiv fistp u1 ffree st
mov eax, u1 cmp eax, 1 jl _1 ffree st
fld n fld b2 fmul fst y ffree st
fld y fld b fadd fst y ffree st
fld n fld b2 fmul fst z ffree st
fld z fld c fadd fst z ffree st
fld y fld z fmul fst y ffree st
fld x fld y fdiv fst a ffree st
fld pr fld a fmul fst pr ffree st
fld pr fld sum fadd fst sum ffree st
fld1 fld n fadd fst n ffree st
jmp _2 _1: } return sum; } double tanhx(double x) { double tan=shx(x)/chx(x); return tan; } Файл lab 2 asm.cpp: #include < iostream> #include < iomanip> #include < cmath> #include < fstream> #include " Row.h" using namespace std; int main() { double x, n, p; double s3=0, s4=0, m; double const pi=3.14159265358979323846264338327950288419716; ifstream in(" data.txt"); double a, b, h; in > > a > > b > > h;
cout< < " Vvedite znachenie m: "; cin> > m; ofstream out(" output.txt"); out< < " ___________________________________" < < endl< < '|'< < setw(10)< < " x*2*n" < < '|'< < setw(10)< < " po myprog" < < " " < < '|'< < setw(10)< < " po math" < < '|'< < endl< < " ===================================" < < endl; for(x=a*pi/180; x< b*pi/180; x+=h*pi/180) { n=m; for (n; n> =1; n--) { p=x*2*n; s4+=tanhx(x*2*n)*((2*n)/((2*n-1)*(2*n+1))); s3+=tanh(x*2*n)*((2*n)/((2*n-1)*(2*n+1))); } out< < '|'< < setw(10)< < setprecision(5)< < fixed< < p< < '|'< < setprecision(5)< < setw(10)< < fixed< < s4< < " " < < '|'< < setw(10)< < setprecision(5)< < fixed< < s3< < '|'< < endl< < " ===================================" < < endl; s3=0; s4=0; } return 0; }
Скриншоты:
Задача №4 Условие: Выполнить любую свою Лаб раб из 1 семестра используя Win API. 1 Найти N пар взаимно-простых натуральных чисел. 2 Найти k-ое простое число в арифметической прогрессии 11, 21, 31, 41, 51, …
Код: Файл main.cpp: // GT_HelloWorldWin32.cpp // compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c
#include < windows.h> #include < stdlib.h> #include < string.h> #include < tchar.h> #include < cstring> #include < stdio.h> #include < fstream> #include < cmath>
#define IDC_RHS 114 #define IDC_LHS 115 #define IDC_RESULT 116 #define IDC_RESULT1 120 #define IDC_ADD1 117 #define IDC_SUB1 118 #define IDC_MUL1 119
int nod(int a, int b) { _asm { mov eax, a mov ebx, b _2: cmp eax, ebx je _3 cmp eax, ebx jl _1 sub eax, ebx jne _2 _1: sub ebx, eax cmp eax, ebx jne _2 _3: mov a, eax } return a; }
bool prost(unsigned int a) { int q1=0, q2, q3, d, d2=1, d3=0; bool d1; _asm { mov eax, a mov q2, eax mov ebx, 2 mov q3, ebx cmp eax, 4294967280 jl _4 _2: cmp eax, ebx je _3 cmp eax, ebx jl _1 sub eax, ebx jne _2 _1: sub ebx, eax cmp eax, ebx jne _2 _3: add q1, eax mov eax, q2 inc q3 mov ebx, q3 cmp eax, ebx jne _2 sub eax, 2 cmp eax, q1 je _5 mov edx, 0 mov d, edx jmp _4 _5: mov edx, 1 mov d, edx
_4: } d1=(bool)d; return d1; }
enum operation{ADD, SUB, MUL, REM};
// Global Variables: operation op=ADD; int opt=0; TCHAR number1[100]; char *number=new char[100]; char *ok=new char[10]; HWND USPEH; HWND USPEH1; HWND uspeh; // The main window class name. static TCHAR szWindowClass[] = _T(" win32app");
// The string that appears in the application's title bar. static TCHAR szTitle[] = _T(" Win32 Guided Tour Application");
HINSTANCE hInst;
// Forward declarations of functions included in this code module: LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
for(int i=0; i< 10; i++) ok[i]=NULL; for(int i=0; i< 100; i++) number[i]=NULL;
WNDCLASSEX 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_APPLICATION)); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
if (! RegisterClassEx(& wcex)) { MessageBox(NULL, _T(" Call to RegisterClassEx failed! "), _T(" Win32 Guided Tour"), NULL);
return 1; }
hInst = hInstance; // Store instance handle in our global variable
HWND hWnd = CreateWindow( szWindowClass, szTitle, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 300, 300, NULL, NULL, hInstance, NULL );
if (! hWnd) { MessageBox(NULL, _T(" Call to CreateWindow failed! "), _T(" Win32 Guided Tour"), NULL);
return 1; }
// The parameters to ShowWindow explained: // hWnd: the value returned from CreateWindow // nCmdShow: the fourth parameter from WinMain ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
// Main message loop: MSG msg; while (GetMessage(& msg, NULL, 0, 0)) { TranslateMessage(& msg); DispatchMessage(& msg); }
return (int) msg.wParam; }
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc;
switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) {
case IDC_ADD1: { int c=0, d=0 BOOL success=false; int k=GetDlgItemInt(hWnd, IDC_LHS, & success, true); d=GetDlgItemInt(hWnd, IDC_RHS, & success, true); for (int i = 2; i < d; ++i) { for (int j =2; j < i; ++j) { if (nod(i, j) == 1) { if (c==k) continue; c++;
sprintf(ok, " %d", i); strcat(number, ok); strcat(number, " "); sprintf(ok, " %d", j); strcat(number, ok); strcat(number, " \n"); } if (c==k) continue; } if (c==k) continue; }
MessageBox(hWnd, number, " number", NULL); for(int i=0; i< 100; i++) number[i]=NULL; break; }
case IDC_SUB1: { int c=0, d=0, k; BOOL success=false; k=GetDlgItemInt(hWnd, IDC_LHS, & success, true); for (unsigned int a=11; a< 4294967295; a+=10) { if(prost(a)) c++; if (c==k) { sprintf(ok, " %d", k); strcat(number, ok); sprintf(ok, " %d", a); strcat(number, " oe prostoe chislo v dannoi posledovatelnosti eto: "); strcat(number, ok); strcat(number, " \n");
MessageBox(hWnd, number, " shutka", NULL); for(int i=0; i< 100; i++) number[i]=NULL; break;
} } }
default: return DefWindowProc(hWnd, message, wParam, lParam); } case WM_DESTROY: PostQuitMessage(0); break; case WM_CREATE: CreateWindowEx(WS_EX_CLIENTEDGE, TEXT(" BUTTON"), TEXT(" +"), WS_CHILD|WS_VISIBLE, 115, 45, 30, 25, hWnd, (HMENU)IDC_ADD1, GetModuleHandle(NULL), NULL);
CreateWindowEx(WS_EX_CLIENTEDGE, TEXT(" BUTTON"), TEXT(" -"), WS_CHILD|WS_VISIBLE, 115, 15, 30, 25, hWnd, (HMENU)IDC_SUB1, GetModuleHandle(NULL), NULL); USPEH= CreateWindowEx(WS_EX_CLIENTEDGE, TEXT(" EDIT"), TEXT(" Do kakogo"), WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL|WS_TABSTOP, 20, 45, 85, 25, hWnd, (HMENU)IDC_RHS, GetModuleHandle(NULL), NULL); USPEH1=CreateWindowEx(WS_EX_CLIENTEDGE, TEXT(" EDIT"), TEXT(" Skolko par"), WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL|WS_TABSTOP, 20, 10, 85, 25, hWnd, (HMENU)IDC_LHS, GetModuleHandle(NULL), NULL); default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } Cкриншоты:
Задача №5 Условие: Выполнить любую свою Лаб раб из 1 семестра используя Win API
Вычисление функций. Вычислить: S=
Код: Файл main.cpp:
#include < windows.h> #include < stdlib.h> #include < string.h> #include < tchar.h> #include < cstring> #include < stdio.h> #include< iostream> #include < fstream> #include < cmath> using namespace std;
#define IDC_RHS 114 #define IDC_LHS 115 #define IDC_RESULT 116 #define IDC_RESULT1 120 #define IDC_ADD1 117 #define IDC_SUB1 118 #define IDC_MUL1 119
double shx(double x) { int u1; double sum=x, pr=x, e=0.0005, n=0, a, b=2, c=3, y, z, u2; x*=x;
_asm { _2: fld pr fabs fst u2; ffree st
fld u2 fld e fdiv fistp u1 ffree st
mov eax, u1 cmp eax, 1 jl _1 ffree st
fld n fld b fmul fst y ffree st
fld y fld b fadd fst y ffree st
fld n fld b fmul fst z ffree st
fld z fld c fadd fst z ffree st
fld y fld z fmul fst y ffree st
fld x fld y fdiv fst a ffree st
fld pr fld a fmul fst pr ffree st
fld pr fld sum fadd fst sum ffree st
fld1 fld n fadd fst n ffree st
jmp _2 _1: } return sum; }
double chx(double x) { int u1; double sum=1, pr=1, e=0.00005, n=0, a, b=1, c=2, y, z, u2, b2=2; x*=x;
_asm { _2: fld pr fabs fst u2; ffree st
fld u2 fld e fdiv fistp u1 ffree st
mov eax, u1 cmp eax, 1 jl _1 ffree st
fld n fld b2 fmul fst y ffree st
fld y fld b fadd fst y ffree st
fld n fld b2 fmul fst z ffree st
fld z fld c fadd fst z ffree st
fld y fld z fmul fst y ffree st
fld x fld y fdiv fst a ffree st
fld pr fld a fmul fst pr ffree st
fld pr fld sum fadd fst sum ffree st
fld1 fld n fadd fst n ffree st
jmp _2 _1: } return sum; }
double tanhx(double x { double tan=shx(x)/chx(x); return tan}
enum operation{ADD, SUB, MUL, REM};
// Global Variables: operation op=ADD; int opt=0; TCHAR number1[100]; char *number=new char[100]; char *ok=new char[10]; char *q4=new char[100]; HWND USPEH; HWND USPEH1; HWND uspeh; // The main window class name. static TCHAR szWindowClass[] = _T(" win32app");
// The string that appears in the application's title bar. static TCHAR szTitle[] = _T(" Win32 Guided Tour Application");
HINSTANCE hInst;
// Forward declarations of functions included in this code module: LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
for(int i=0; i< 10; i++) ok[i]=NULL; for(int i=0; i< 100; i++) number[i]=NULL;
WNDCLASSEX 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_APPLICATION)); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
if (! RegisterClassEx(& wcex)) { MessageBox(NULL, _T(" Call to RegisterClassEx failed! "), _T(" Win32 Guided Tour"), NULL);
return 1; }
hInst = hInstance; HWND hWnd = CreateWindow( szWindowClass, szTitle, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 300, 300, NULL, NULL, hInstance, NULL );
if (! hWnd) { MessageBox(NULL, _T(" Call to CreateWindow failed! "), _T(" Win32 Guided Tour"), NULL);
return 1; }
ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
MSG msg; while (GetMessage(& msg, NULL, 0, 0)) { TranslateMessage(& msg); DispatchMessage(& msg); }
return (int) msg.wParam; }
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc;
switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) {
case IDC_SUB1: { BOOL success=false;
for(int i=0; i< 100; i++) q4[i]=NULL; double x, n, p; double s3=0, s4=0, m; double const pi=3.14159265358979323846264338327950288419716; ifstream in(" data.txt"); double a, b, h; in > > a > > b > > h;
m=GetDlgItemInt(hWnd, IDC_LHS, & success, true);
strcat(q4, " myprog | po math \n"); for(x=a*pi/180; x< b*pi/180; x+=h*pi/180) { n=m;
for (n; n> =1; n--) { p=x*2*n; s4+=tanhx(x*2*n)*((2*n)/((2*n-1)*(2*n+1))); s3+=tanh(x*2*n)*((2*n)/((2*n-1)*(2*n+1))); } char ok[20]; for(int i=0; i< 20; i++) ok[i]=NULL; sprintf(ok, " %f", s3); strcat(q4, ok); strcat(q4, " |"); sprintf(ok, " %f", s4); strcat(q4, ok); strcat(q4, " \n");
s3=0; s4=0; } MessageBox(hWnd, q4, " number", NULL); for(int i=0; i< 100; i++) q4[i]=NULL; break;
}
default: return DefWindowProc(hWnd, message, wParam, lParam); }
case WM_DESTROY: PostQuitMessage(0); break; case WM_CREATE:
CreateWindowEx(WS_EX_CLIENTEDGE, TEXT(" BUTTON"), TEXT(" -"), WS_CHILD|WS_VISIBLE, 115, 15, 30, 25, hWnd, (HMENU)IDC_SUB1, GetModuleHandle(NULL), NULL);
USPEH1=CreateWindowEx(WS_EX_CLIENTEDGE, TEXT(" EDIT"), TEXT(" m"), WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL|WS_TABSTOP, 20, 10, 85, 25, hWnd, (HMENU)IDC_LHS, GetModuleHandle(NULL), NULL);
default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
Скриншоты:
Задача №6 Условие: Разработать техническое задание для решения любой задачи. Продемонстрировать работу, применить анимацию, используя функции Win Api. Примерный вариант: 1. Объявить абстрактный базовый класс «Фигура на плоскости», моделирующий общие свойства и поведение геометрических фигур. Включить в объявления классов следующее поля данных: · название фигуры (отрезок, квадрат, круг и т.д.); · одно или несколько полей типа Point, характеризующие положение фигуры на плоскости. Например: центр круга (одно поле данных) или два поля для прямоугольника и квадрата (верхний левый и правый нижний углы фигуры); · поля, характеризующие параметры фигуры: количество сторон многоугольника, периметр и площадь фигуры. В класс наследник включить следующие методы: · конструктор по умолчанию, конструктор с формальными параметрами и конструктор копирования, а также виртуальный деструктор; · виртуальные методы для вычисления параметров объекта (периметра иплощади фигуры с учетом ее вида; площади поверхностей и объем тела); · виртуальный метод для отображения объекта на экране. В соответствующей функции-члене класса достаточно вывести текст «Рисунок < name> < координаты>», где name - название фигуры. · виртуальный метод для моделирования перемещения фигуры на плоскости (сдвиг центра окружности или вершин четырехугольника); В соответствующей функции-члене класса достаточно выводить текст «Движение < name> < координаты>», где name - название фигуры. · виртуальный метод для моделирования сжатия или растяжения фигуры (увеличение радиуса круга, уменьшение стороны квадрата). В приведенных формулах S – площадь, Р (или р) – периметр фигуры. Выполнить тестирование методов классов, используя их объекты для класса «Правильный многоугольник». Создать объект класса, вписанный в окружность радиуса R. Вычислить периметр объекта-окружности и объекта-многоугольника. Сторона правильного многоугольника an = 2* R* sin (π /n). Для тестирования написать глобальную функцию, реализующую алгоритм решения задачи, формальным параметром функции должен быть указатель на базовый класс. Объявления классов иерархии разместить в заголовочном файле, определения методов – в отдельном файле и главную функцию программы разместить в третьем файле. Код:
Файл Figure.h: #include < windows.h> #include < stdlib.h> #include " Point2d.h"
class figura {
};
class otrezok: public figura { private: int x1, y1, x2, y2; public: otrezok(); void draw(int a, int b, int c, int d, HDC hdc); void moveleft(HDC hdc); void moveright(HDC hdc); void moveup(HDC hdc); void movedown(HDC hdc); void ydalit(HDC hdc); void rashirposhir(HDC hdc); void rashirpovis(HDC hdc); void suzitposhir(HDC hdc); void suzitpovis(HDC hdc); double dlina();
}; class krug: public figura { private: Point2d center; int r; public: krug(); void draw(int a, int b, int r1, HDC hdc); void moveleft(HDC hdc); void moveright(HDC hdc); void moveup(HDC hdc); void movedown(HDC hdc); void ydalit(HDC hdc); void uvelichit(HDC hdc); void umenshit(HDC hdc); double square(); double perimetr(); int getX(); int getY(); int getR();
}; class rectangle: public figura { private: int x1, y1, x2, y2; public: rectangle(); void draw(int a, int b, int c, int d, HDC hdc); void moveleft(HDC hdc); void moveright(HDC hdc); void moveup(HDC hdc); void movedown(HDC hdc); void ydalit(HDC hdc); void rashirposhir(HDC hdc); void rashirpovis(HDC hdc); void suzitposhir(HDC hdc); void suzitpovis(HDC hdc); int perimetr(); int square();
};
Файл Point2d.h: #ifndef POINT2D_H #define POINT2D_H #include < iostream> class Point2d { private: double x, y; public: Point2d(); Point2d(double, double); void Setx(double); double Getx() const; void Sety(double); double Gety()const; double module()const; Point2d operator-() const; Point2d& operator++(); Point2d operator++(int); Point2d operator+(const Point2d&)const; Point2d operator*(Point2d&); bool operator==(const Point2d&)const; bool operator! =(const Point2d&)const; Point2d operator*(double)const; friend Point2d operator*(double, Point2d&); friend std:: ostream& operator< < (std:: ostream&, const Point2d&); operator double(); }; #endif
Файл Point2d.cpp: #include " Point2d.h" #include < cmath> Point2d:: Point2d() { x = 0; y = 0; } Point2d:: Point2d(double X_AX, double Y_AX): x(X_AX), y(Y_AX){} void Point2d:: Sety(double Y_AX) { y = Y_AX; } double Point2d:: Gety()const { return y; } void Point2d:: Setx(double X_AX) { x = X_AX; } double Point2d:: Getx()const { return x; } double Point2d:: module()const { return sqrt(x*x + y*y); } Point2d Point2d:: operator-()const { return Point2d(-x, -y); } Point2d& Point2d:: operator++() { ++x; ++y; return *this; } Point2d Point2d:: operator++(int a) { Point2d temp=*this; x++; y++; return temp; } Point2d Point2d:: operator+(const Point2d& p)const { return Point2d(x + p.x, y + p.y); } Point2d Point2d:: operator*(Point2d& p) { return Point2d(x * p.x, y * p.y); } bool Point2d:: operator==(const Point2d& p)const { return x == p.x& & y == p.y; } bool Point2d:: operator! =(const Point2d& p)const { return! (this)-> operator==(p); } Point2d Point2d:: operator*(double d)const { return Point2d(x*d, y*d); } Point2d operator*(double a, Point2d& p) { return p.operator*(a); } std:: ostream& operator< < (std:: ostream& os, const Point2d& p) { os < < " (" < < p.x< < ", " < < p.y< < ")"; return os; } Point2d:: operator double() { return module(); }
Файл Otrezok.cpp: #include " Figure.h" #include < windows.h> #include < stdlib.h> #include < stdio.h> #include < cmath> otrezok:: otrezok() {
} void otrezok:: draw(int a, int b, int c, int d, HDC hdc) { // hdc=GetDC(hWnd); x1=a; y1=b; x2=c; y2=d; MoveToEx(hdc, x1, y1, NULL); LineTo(hdc, x2, y2); } void otrezok:: moveleft(HDC hdc) {
//hdc=GetDC(hWnd); HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); x1--; x2--; draw(x1, y1, x2, y2, hdc); DeleteObject(b); } void otrezok:: moveright(HDC hdc) { //hdc=GetDC(hWnd); HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); MoveToEx(hdc, x1, y1, NULL); LineTo(hdc, x2, y2); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); x1++; x2++; draw(x1, y1, x2, y2, hdc); DeleteObject(b); } void otrezok:: moveup(HDC hdc) { //hdc=GetDC(hWnd); HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); MoveToEx(hdc, x1, y1, NULL); LineTo(hdc, x2, y2); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); y1--; y2--; draw(x1, y1, x2, y2, hdc); DeleteObject(b); } void otrezok:: movedown(HDC hdc) { //hdc=GetDC(hWnd); HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); MoveToEx(hdc, x1, y1, NULL); LineTo(hdc, x2, y2); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); y1++; y2++; draw(x1, y1, x2, y2, hdc); DeleteObject(b); } void otrezok:: ydalit(HDC hdc) { HPEN a; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); draw(0, 0, 0, 0, hdc); DeleteObject(a); } void otrezok:: rashirposhir(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); MoveToEx(hdc, x1, y1, NULL); LineTo(hdc, x2, y2); DeleteObject(a); if (x1< x2) { x1--; x2++; } else { x2--; x1++; } b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); draw(x1, y1, x2, y2, hdc); DeleteObject(b);
} void otrezok:: rashirpovis(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); MoveToEx(hdc, x1, y1, NULL); LineTo(hdc, x2, y2); DeleteObject(a); if (y1< y2) { y1--; y2++; } else { y2--; y1++; } b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); draw(x1, y1, x2, y2, hdc); DeleteObject(b);
} void otrezok:: suzitposhir(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); MoveToEx(hdc, x1, y1, NULL); LineTo(hdc, x2, y2); DeleteObject(a); if (x1< x2) { x1++; x2--; } else { x2++; x1--; } b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); draw(x1, y1, x2, y2, hdc); DeleteObject(b);
} void otrezok:: suzitpovis(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); MoveToEx(hdc, x1, y1, NULL); LineTo(hdc, x2, y2); DeleteObject(a); if (y1< y2) { y2--; y1++; } else { y1--; y2++; } b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); draw(x1, y1, x2, y2, hdc); DeleteObject(b);
} double otrezok:: dlina() { double s=sqrt((double)((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))); return s; } Файл Krug.cpp: #include " Figure.h" #include < windows.h> #include < stdlib.h> #include < stdio.h> #include " Point2d.h"
krug:: krug() { r=0; } void krug:: draw(int a, int b, int r1, HDC hdc) { center.Setx(a); center.Sety(b); r=r1; Ellipse(hdc, a-r1, b-r1, a+r1, b+r1); } void krug:: moveleft(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); int x1=center.Getx(); x1--; center.Setx(x1); draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(b);
} void krug:: moveright(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); int x1=center.Getx(); x1++; center.Setx(x1); draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(b); } void krug:: moveup(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); int y1=center.Gety(); y1--; center.Sety(y1); draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(b); } void krug:: movedown(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); int y1=center.Gety(); y1++; center.Sety(y1); draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(b); } void krug:: ydalit(HDC hdc) { HPEN a; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(center.Getx(), center.Gety(), r, hdc); draw(0, 0, 0, hdc); r=0; DeleteObject(a); } void krug:: umenshit(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); if(r> 0)draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); if(r> 1)r--;
if(r> 0) draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(b); } void krug:: uvelichit(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); if(r> 0)draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); if(r> 0)r++; if(r> 0) draw(center.Getx(), center.Gety(), r, hdc); DeleteObject(b); } double krug:: square() { double s; s=(double)r*(double)r*3.14159; return s; } double krug:: perimetr() { double p; p=(double)r*3.14159*2; return p; } int krug:: getX() { return center.Getx(); } int krug:: getY() { return center.Gety(); } int krug:: getR() { return r; }
Файл Rectangle.cpp: #include " Figure.h" #include < windows.h> #include < stdlib.h> #include < stdio.h>
rectangle:: rectangle() { x1=y1=x2=y2=0; } void rectangle:: draw(int a, int b, int c, int d, HDC hdc) { // hdc=GetDC(hWnd); x1=a; y1=b; x2=c; y2=d; Rectangle(hdc, x1, y1, x2, y2); } void rectangle:: moveleft(HDC hdc) {
//hdc=GetDC(hWnd); HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); x1--; x2--; draw(x1, y1, x2, y2, hdc); DeleteObject(b); } void rectangle:: moveright(HDC hdc) { //hdc=GetDC(hWnd); HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); x1++; x2++; draw(x1, y1, x2, y2, hdc); DeleteObject(b); } void rectangle:: moveup(HDC hdc) { //hdc=GetDC(hWnd); HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); y1--; y2--; draw(x1, y1, x2, y2, hdc); DeleteObject(b); } void rectangle:: movedown(HDC hdc) { //hdc=GetDC(hWnd); HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); y1++; y2++; draw(x1, y1, x2, y2, hdc); DeleteObject(b); } void rectangle:: ydalit(HDC hdc) { HPEN a; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); draw(0, 0, 0, 0, hdc); DeleteObject(a); } void rectangle:: rashirposhir(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); if (x1< x2) { x1--; x2++; } else { x2--; x1++; } b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); draw(x1, y1, x2, y2, hdc); DeleteObject(b);
} void rectangle:: rashirpovis(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); if (y1< y2) { y1--; y2++; } else { y2--; y1++; } b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); draw(x1, y1, x2, y2, hdc); DeleteObject(b);
} void rectangle:: suzitposhir(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); if (x1< x2) { x1++; x2--; } else { x2++; x1--; } b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); draw(x1, y1, x2, y2, hdc); DeleteObject(b);
} void rectangle:: suzitpovis(HDC hdc) { HPEN a; HPEN b; a=CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); SelectObject(hdc, a); draw(x1, y1, x2, y2, hdc); DeleteObject(a); if (y1< y2) { y2--; y1++; } else { y1--; y2++; } b=CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); SelectObject(hdc, b); draw(x1, y1, x2, y2, hdc); DeleteObject(b);
} int modul1(int a) { if (a> =0) return a; if (a< 0) return ((-1)*a); } int rectangle:: perimetr() { int p=2*modul1(x1-x2); p+=2*modul1(y1-y2); return p; } int rectangle:: square() { int s=modul1(x1-x2); s*=modul1(y1-y2); return s; }
Файл main.cpp: #include < windows.h> #include < stdlib.h> #include < string.h> #include < tchar.h> #include < cstring> #include < stdio.h> #include " Figure.h"
rectangle c1; krug b1; otrezok a1; int value=0; char number[100];
#define IDC_LEFT1 101 #define IDC_DRAW 102 #define IDC_X1 103 #define IDC_Y1 104 #define IDC_X2 105 #define IDC_Y2 106 #define IDC_RIGHT1 107 #define IDC_UP1 108 #define IDC_DOWN1 109 #define IDC_DRAWKRUG 110 #define IDC_RADIUS 111 #define IDC_CENTERX 112 #define IDC_CENTERY 113 #define IDC_SUZVIS 114 #define IDC_SUZSHIR 115 #define IDC_RASHIRVIS 116 #define IDC_RASHIRSHIR 117 #define IDC_UMENSHIT 118 #define IDC_UVELICHIT 119 #define IDC_DRAWRECT 120 #define IDC_X11 121 #define IDC_Y11 122 #define IDC_X22 123 #define IDC_Y22 124 #define IDC_ANIMATION 125 #define IDC_SQUARE 126 #define IDC_PERIMETR 127
// Global Variables:
HWND USPEH; HWND USPEH1; HWND uspeh;
static HMENU hMenu; // The main window class name. static TCHAR szWindowClass[] = _T(" win32app");
// The string that appears in the application's title bar. static TCHAR szTitle[] = _T(" Win32 Guided Tour Application");
HINSTANCE hInst;
// Forward declarations of functions included in this code module: LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX 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_APPLICATION)); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
if (! RegisterClassEx(& wcex)) { MessageBox(NULL, _T(" Call to RegisterClassEx failed! "), _T(" Win32 Guided Tour"), NULL);
return 1; }
hInst = hInstance; // Store instance handle in our global variable HWND hWnd = CreateWindow( szWindowClass, szTitle, WS_OVERLAPPEDWINDOW | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 800, 800, NULL, NULL, hInstance, NULL );
HMENU hMainMenu = CreateMenu(); HMENU hPopMenuFile = CreatePopupMenu(); AppendMenu(hMainMenu, MF_STRING | MF_POPUP, (UINT)hPopMenuFile, (LPCSTR)" File");
if (! hWnd) { MessageBox(NULL, _T(" Call to CreateWindow failed! "), _T(" Win32 Guided Tour"), NULL);
return 1; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
// Main message loop: MSG msg; while (GetMessage(& msg, NULL, 0, 0)) { TranslateMessage(& msg); DispatchMessage(& msg); }
return (int) msg.wParam; }
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc;
switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) {
case IDC_DRAW: { value=1;
BOOL success=false; int x1=GetDlgItemInt(hWnd, IDC_X1, & success, true); int y1=GetDlgItemInt(hWnd, IDC_Y1, & success, true); int x2=GetDlgItemInt(hWnd, IDC_X2, & success, true); int y2=GetDlgItemInt(hWnd, IDC_Y2, & success, true); hdc=GetDC(hWnd); a1.draw(x1, y1, x2, y2, hdc); b1.ydalit(hdc); c1.ydalit(hdc);
break; } case IDC_LEFT1: {
hdc=GetDC(hWnd); for(int i=0; i< 10; i++) { Sleep(10); switch(value) { case 1: a1.moveleft(hdc); case 2: b1.moveleft(hdc); case 3: c1.moveleft(hdc); } } break; } case IDC_RIGHT1: { hdc=GetDC(hWnd); for(int i=0; i< 10; i++) { Sleep(10); switch(value) { case 1: a1.moveright(hdc); case 2: b1.moveright(hdc); case 3: c1.moveright(hdc); } } break; } case IDC_UP1: { hdc=GetDC(hWnd); for(int i=0; i< 10; i++) { Sleep(10); switch(value) { case 1: a1.moveup(hdc); case 2: b1.moveup(hdc); case 3: c1.moveup(hdc); } } break; } case IDC_DOWN1: { hdc=GetDC(hWnd);
for(int i=0; i< 10; i++) { Sleep(10); switch(value) { case 1: a1.movedown(hdc); case 2: b1.movedown(hdc); case 3: c1.movedown(hdc); } } break; }
case IDC_SUZVIS: {
hdc=GetDC(hWnd); for(int i=0; i< 10; i++) { Sleep(10); switch(value) { case 1: a1.suzitpovis(hdc); break; case 3: c1.suzitpovis(hdc); break; } } break; } case IDC_SUZSHIR: { hdc=GetDC(hWnd); for(int i=0; i< 10; i++) { Sleep(10); switch(value) { case 1: a1.suzitposhir(hdc); break; case 3: c1.suzitposhir(hdc); break; } } break; } case IDC_RASHIRSHIR: { hdc=GetDC(hWnd); for(int i=0; i< 10; i++) { Sleep(10); switch(value) { case 1: a1.rashirposhir(hdc); break; case 3: c1.rashirposhir(hdc); break; }
} break; } case IDC_RASHIRVIS: { hdc=GetDC(hWnd);
for(int i=0; i< 10; i++) { Sleep(10); switch(value) { case 1: a1.rashirpovis(hdc); break; case 3: c1.rashirpovis(hdc); break; } } break; }
case IDC_DRAWKRUG: { value=2; BOOL success=false; int x1=GetDlgItemInt(hWnd, IDC_CENTERX, & success, true); int y1=GetDlgItemInt(hWnd, IDC_CENTERY, & success, true); int r1=GetDlgItemInt(hWnd, IDC_RADIUS, & success, true); hdc=GetDC(hWnd); b1.draw(x1, y1, r1, hdc); a1.ydalit(hdc); c1.ydalit(hdc);
break; }
case IDC_UVELICHIT: { hdc=GetDC(hWnd); for(int i=0; i< 10; i++) { Sleep(10); b1.uvelichit(hdc); } break; } case IDC_UMENSHIT: { hdc=GetDC(hWnd);
for(int i=0; i< 10; i++) { Sleep(10); b1.umenshit(hdc); } break; }
case IDC_DRAWRECT: { value=3;
BOOL success=false; int x1=GetDlgItemInt(hWnd, IDC_X11, & success, true); int y1=GetDlgItemInt(hWnd, IDC_Y11, & success, true); int x2=GetDlgItemInt(hWnd, IDC_X22, & success, true); int y2=GetDlgItemInt(hWnd, IDC_Y22, & success, true); hdc=GetDC(hWnd); c1.draw(x1, y1, x2, y2, hdc); a1.ydalit(hdc); b1.ydalit(hdc);
break;
|