๋ชฉ๋ก2021/10 (49)
KoreanFoodie's Study
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 6 : ๊ฐ๋จํ UI ๊ตฌํ๊ณผ ๋ฅํผํ๊ธฐ ๊ฒ์ ์์ ์ด์ ๊ธ์ ์ด์ด์ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ฝ๊ฐ ์ถ๊ฐํด ๋ณด์. ์ ์ญ ๋ณ์ ์ฌ์ค์ struct tagBox { RECTrt; floatspeed; }; vectorvecBox;// ๋จ์ด์ง๋ ๋ ํธ๋ค์ ์ ๋ณด intnDelay = 50; struct tagBox๋ฅผ ์๋ก ์ ์ธํ์ฌ RECT๋ฅผ ๋์ฒดํ๋ค. ๊ทธ ์ด์ ๋, ๊ฐ๊ฐ์ ์์๋ง๋ค ๋จ์ด์ง๋ ์๋๋ฅผ ๋ค๋ฅด๊ฒ ๋ง๋ค๊ธฐ ์ํด์์ธ๋ฐ, ์ด๋ ๋์ด๋๋ ์ฝ๊ฐ์ ์ฌ๋ฏธ ์์๋ฅผ ์ฒจ๊ฐํ๋๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. WM_TIMER : ์ ์ ๊ณ์ฐ๊ณผ ํ์ ์์ case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ { InvalidateRect(hWnd, NULL, true); nLevel = nScore / 100 + 1; // ํฌ์ง์ ์..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 5 : ๋ฌผ์ฒด ๋จ์ด๋จ๋ฆฌ๊ธฐ ์ด๋ฒ ๊ธ์์๋ ๊ฐ๋จํ ๋ฌผ์ฒด๋ฅผ ๋จ์ด๋จ๋ฆฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉฐ ๋ค๋ฅธ ๋ํ ์ผ์ ์ค๋ช ํ๋ค. WM_CREATE case WM_CREATE:// ํ๋ก๊ทธ๋จ์ด ์คํ ๋ ๋ ํ๋ฒ ํธ์ถ ๋๋ค. (์ด๊ธฐํ) SetTimer(hWnd, 1, 10, NULL); srand(time(NULL)); break; ์ด๊ธฐํ ํจ์๋ฅผ ํตํด ํ์ด๋จธ๋ฅผ SET ํ๊ณ , ๋๋ค ํจ์๋ฅผ ํธ์ถํ๋ค. WM_TIMER case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ { InvalidateRect(hWnd, NULL, true); // ํฌ์ง์ ์์น์ ๋ฐ๋ฅธ ๋ ํธ ์ ๋ณด ์ ๋ฐ์ดํธ rtBox1 = RECT_MAKE(ptPos1.x, ptPos1.y, 50); if (nDelay == 50) { RECT rt; rt.le..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 4 : ์ถฉ๋ ๊ฒ์ฌ (IntersectRect...) ์ด๋ฒ ๊ธ์์๋ ๋ํ์ด ๋ค๋ฅธ ๋ํ๊ณผ ๋ง๋ฌ์ ๋ ์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ๊ณ ์ฒ๋ฆฌํ๋์ง๋ฅผ ์ดํด๋ณธ๋ค. WM_TIMER์์ IntersectRect๋ฅผ ๋ฃ์ด๋ณด์ // ์๋ ๋ ์ค์ ์ ์ญ๋ณ์๋ก ์ ์ธํจ enum MOVE_DIR { MOVE_LEFT, MOVE_RIGHT, MOVE_UP, MOVE_DOWN }; MOVE_DIReMoveDir; // ... case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ InvalidateRect(hWnd, NULL, true); // ํฌ์ง์ ์์น์ ๋ฐ๋ฅธ ๋ ํธ ์ ๋ณด ์ ๋ฐ์ดํธ rtBox1 = RECT_MAKE(ptPos1.x, ptPos1.y, 100); rtBox2 = RECT_MAKE(ptPos2.x, ptPos..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 3 : ํค ์ ๋ ฅ๊ณผ ๊ฒ์ ์ ๋ฐ์ดํธ ์ด๋ฒ ๊ธ์์๋ WIM_KEYDOWN์ ํตํ ํค ์ ๋ ฅ์ ๋ํด ์์๋ณด๋๋ก ํ๋ค. ํค ์ ๋ ฅ ์ฒ๋ฆฌํ๊ธฐ case WM_CREATE:// ํ๋ก๊ทธ๋จ์ด ์คํ ๋ ๋ ํ๋ฒ ํธ์ถ ๋๋ค. (์ด๊ธฐํ) SetTimer(hWnd, 1, 10, NULL); break; case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ InvalidateRect(hWnd, NULL, true); break; case WM_KEYDOWN:// ํค ์ ๋ ฅ์ด ์์ ๋ ๋ง๋ค ํธ์ถ ๋๋ค. switch (wParam) { // ์ผํญ์ (์กฐ๊ฑด) ? ์ฐธ์ผ ๋ : ๊ฑฐ์ง์ผ ๋ case 'A': case VK_LEFT: ptPos.x -= (ptPos.x > 0) ? 1 : 0; break; case 'D': ..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 1 : ์ฐฝ ์์ฑ ๋ฐ ๊ธฐ๋ณธ ์ธํ ๋จผ์ ๋น์ฃผ์ผ ์คํ๋์ค(2019)์์ Windows ๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ์. ๊ทธ๋ผ ์๋์ ๊ฐ์ ์์ผ๋ก ํ๋ก์ ํธ๊ฐ ์์ฑ๋๋๋ฐ, ์ด์ค framework.h, WindowsProject1.cpp ํ์ผ์ด ์๋ ์์ฑ๋๊ณ , ์ด ๋ถ๋ถ์ ๊ณ ์น๋ฉด์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค. framwork.h ํ์ผ์ ํค๋ ํ์ผ์ด๋ ๋งคํฌ๋ก ์ ์ธ, ๋ณ๊ฒฝ์ด ๊ฑฐ์ ์๋ ๋ณ์ ๋ฑ์, WindowsProject1.cpp ํ์ผ์์๋ ํ์ด๋จธ๋ ํ์ธํ ์ ํฌํจํ๊ณ ์๋ค. framework.h // header.h: ํ์ค ์์คํ ํฌํจ ํ์ผ // ๋๋ ํ๋ก์ ํธ ํน์ ํฌํจ ํ์ผ์ด ๋ค์ด ์๋ ํฌํจ ํ์ผ์ ๋๋ค. // #pragma once #include "targetver.h" #define WIN..
๊ฒฝ์ ์ ์์ ๋ฅผ ์ํด ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ๋ค์ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ์ฌํ ํฌ, ๋ถ์ํ, ๊ฒฝ์ ์ ์์ , ์์ฐ ๊ด๋ฆฌ, ๋ ๊ด๋ฆฌ, ์ ์ถ, ์ฃผ์, ๋ถ๋์ฐ, ํฌ์ ๋ฑ์ ๊ด์ฌ์ด ๋ง์ ๋ถ๋ค๊ป ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค. ์ฑ ์ ๊ฒฝ์ฐ, ์ก๊ธฐ์ค๋ง ๋ฝ์์ ์ ๋ฌํด ๋๋ฆฌ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ์ ํน์ ๋น ์ง์ง ๋ง๋ผ. 1. ๊ณ ์์ต์ ์ ํน - ๋๊ตฌ๋ ์์ ์ ๋์ด ๋ถ์ด๋๊ธธ ๋ฐ๋๋ค 2. ๊ณผ์๋น์ ์ ํน - ๋จ๋ค๊ณผ ์์ ์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ดํ๋ค 3. ๊ฒ์ผ๋ฆ์ ์ ํน - ๋ ๋ง ์๊ฒ ์ ์ฌ์ ์ ์ธ ์ด๋ ค์์ ์ง์ , ๊ฐ์กฑ, ๊ฐ์ธ์ ์์ญ ์ ๋ฐ์ ๊ทธ๋์ง๊ฒ ํ๋ค. ๋ ๊ฑฑ์ ์ ์ฌ๋ฅ, ์ฉ๊ธฐ, ์ ์ฌ๋ ฅ์ ๊ฐ์๋จน๋๋ค. ๋์ ์ง์ฐฉํ๋ฉด, ๋์ ์ข์ผ๋ฉด ๋์ ๋๋ง๊ฐ๋ค. ์ง์ ํ ๋ถ์๋ ๋์ ์ง์ฐฉํ์ง ์๋๋ค. ๋์ ์ฌ๋์ ๋์์ด ์๋๋ผ ์ฒ ์ ํ๊ณ ๋์ ํ๊ฒ ๊ด๋ฆฌ๋์ด์ผ ํ ๋์์ด๋ค. ์ํ..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 8. ๋ชจ๋ธ๋ง (์ ๊ทํ, ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ, ์ผํ๋ชฐ ๋ชจ๋ธ๋ง) -- tProject ํ ์ด๋ธ์์ UPDATE ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ค. UPDATE tProject SET ๋ด๋น์='๋ฌธ์ข ๋ฏผ' WHERE ํ๋ก์ ํธ='TV ๊ด๊ณ ๊ฑด'; SELECT ํ๋ก์ ํธ๋ช FROM tProject WHERE ๋ด๋น์ = '๊น์ํ'; CREATE TABLE tEmployee ( name CHAR(10) PRIMARY KEY, salary INT NOT NULL, addr VARCHAR(30) NOT NULL ); INSERT INTO tEmployee VALUES ('๊น์ํ', 650, '์ด์ฒ์'); INSERT INTO tEmp..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 7. ์ ์ฝ(์ ์ฝ, ๊ธฐ๋ณธํค, ์ํ์ค) ์ปฌ๋ผ ๋ฌด๊ฒฐ์ฑ : ์ปฌ๋ผ ํ๋์ ์ ์ฅ๋๋ ์์์ ์ธ ๊ฐ์ ์ ๊ฒ(๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ). ํ์ ์ง์ , ๋ ํ์ฉ ์ฌ๋ถ, ์ฒดํฌ, ๊ธฐ๋ณธ๊ฐ ๋ฑ์ ์ ์ฝ์ด ์๋ค. ์ํฐํฐ ๋ฌด๊ฒฐ์ฑ : ๋ ์ฝ๋๋ผ๋ฆฌ ์ค๋ณต๊ฐ์ ๊ฐ์ง์ง ์๋๋ก ํ์ฌ ์ ์ผํ ์๋ณ์๋ฅผ ๊ด๋ฆฌํ๋ค. ๊ธฐ๋ณธํค์ ์ ๋ํฌ ์ ์ฝ์ด ์๋ค. ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ : ํ ์ด๋ธ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ตฌ์ฑํ๋ ํค๊ฐ ํญ์ ์ ํจํ๋๋ก ๊ด๋ฆฌํ๋ฉฐ ์ธ๋ํค ์ ์ฝ์ผ๋ก ๊ด๋ฆฌํ๋ค. ์ด์ชฝ ํ ์ด๋ธ์ด ์ฐธ์กฐํ๋ ์ ๋ณด๊ฐ ์ ์ชฝ ํ ์ด๋ธ์ ๋ฐ๋์ ์กด์ฌํด์ผ ํ๋ค. -- ํ๋ฒํ ๋ฐ์ดํฐ ์ฝ์ ... INSERT INTO tCity VALUES ('ํ์','์์ฒญ ๋์','๊ฝค ๋ง์๊ฑธ','n','์กฐ์ ์ธ๋ฏผ๋ฏผ์ฃผ..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 6. ๋ฐ์ดํฐ ๊ด๋ฆฌ(์ฝ์ , ์ญ์ , ๊ฐฑ์ ) -- INSERT INTO ๊ตฌ๋ฌธ์ ์ด์ฉํด ํ์ ์ถ๊ฐํ ์ ์๋ค. ์ด๋ ๋ฐ์ดํฐ ํ์์ ๋ง์ถฐ์ฃผ์ด์ผ ํ๋ค. INSERT INTO tCity (name, area, popu, metro, region) VALUES ('์์ธ', 605, 974, 'y', '๊ฒฝ๊ธฐ'); -- VALUES๋ฅผ ๋ฐ๋ก ์จ์ค๋ ๋๋ค. INSERT INTO tCity VALUES ('์์ธ', 605, 974, 'y', '๊ฒฝ๊ธฐ'); INSERT INTO tCity VALUES ('ํํ', 453, 51, 'n', '๊ฒฝ๊ธฐ'); INSERT INTO tCity VALUES ('ํํ', 51..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 5. ๋ฐ์ดํฐ ์ง๊ณ (์ง๊ณํจ์, ๊ทธ๋ฃนํ) -- ์ ์ฒด ํ์ ๊ฐฏ์๋ฅผ ์ถ๋ ฅ SELECT COUNT(*) FROM tStaff; SELECT COUNT(*) AS "์ด ์ง์์" FROM tStaff; -- WHERE์ ๋ก ์กฐ๊ฑด์ ์ค ์ ์๋ค. SELECT COUNT(*) FROM tStaff WHERE salary >= 400; SELECT COUNT(*) FROM tStaff WHERE salary >= 10000; SELECT name FROM tStaff WHERE salary >= 400; -- ํน์ ์ด์ ๊ฐฏ์๋ฅผ ์ ์ ์๋ค. SELECT COUNT(name) FROM tStaff; SE..