정보
-
업무명 : Visual C++ 프로그래밍 과제물
-
작성자 : 이상호
-
작성일 : 2019-09-03
-
설 명 :
-
수정이력 :
-
2020-04-06 : 서식 보완
-
내용
[개요]
-
안녕하세요? 웹 개발 및 연구 개발을 담당하고 있는 해솔입니다.
-
오늘 포스팅은 Visual C++ 프로그래밍 과제물을 소개드리고자 합니다.
[특징]
-
Visual C++ 프로그래밍 과제물에 대한 이해를 돕기위해 작성
[기능]
-
과제물 지시사항
-
과제물 작성 요령
[활용 자료]
-
인터넷 검색
[과제물 작성 요령]
-
과제물 작성 계획 세우기
-
과제물 작성을 위하여 계획 및 준비, 글쓰기, 제출과 같이 3 단계로 구성
-
1 단계는 우선 계획 및 준비로서 공고 확인, 제출 기간 확인, 과제물 문제를 파악
-
2단계의 경우 글쓰기로서 자료 검색 수집 및 개요 작성 그리고 본문 쓰기 및 수정
-
끝으로 제출 마감일뿐만 아니라 파일 용량 검사 및 온라인시스템 제출
-
-
과제물 문제 파악 요령
-
과제물 문제에서 교수님의 지시사항을 정확히 간파하여 작성
-
특히 제출 파일의 양식/용량 및 스타일 형식 그리고 작성 분량에 유의
-
-
나만의 글쓰기 전략
-
앞서 작성 계획에서와 같이 단계별로 수행이 필연
-
추가로 각 과제물마다 한글 또는 워드 양식에서 각자만의 스타일을 바탕으로 글의 내용 작성
-
또한 각종 인터넷 검색 및 도서를 참조하여 내용을 제시할 뿐만 아니라 그에 따른 판단의 근거에 대한 명확한 인용 및 출처가 정확하게 표시
-
-
학술 검색을 위한 유용한 방법
-
인터넷은 1950대에 컴퓨터의 개발과 더불어 너무 많은 정보의 바다에서 살고 있기 때문에 자신에게 필요한 정보 발굴 능력 요구
-
인터넷 검색이 익숙하지 않을 경우 네이버 검색을 추천하고 익숙하면 구글 검색이 유용
-
그러나 일반적으로 네이버 또는 구글로 검색할 경우 다수의 블로그에서 중복되는 정보를 확인할 수 있고 이러한 정보들은 대부분 복사 붙여넣기로 인해 남용되고 있는 실정
-
따라서 이 보다는 전 세계 검색엔진 2위를 차지한 Yahoo! JAPAN (https://www.yahoo.co.jp)에서 검색하여 구글 번역할 경우 원하는 정보를 쉽게 얻음
-
연구 보고서 또는 SCI/SCIE 논문을 보기 위해서 대학교에서 저널을 구독하는 것이 일반적이나 모든 저널을 구독하기에는 상당한 경제적 부담이 되기 때문에 SCI-HUB (https://sci-hub.tw/)를 통해 보는 것을 추천
-
[사용법]
-
과제물 서식을 바탕으로 작성
[사용 OS]
-
Windows 10
[사용 언어]
-
Visual C++
-
한글 v2018
과제물 문제
소스 코드
[명세]
#include <windows.h>
#define gId 1000
#define hIdBtn 1100
#define gIdBtn1 3000
#define gIdBtn2 4000
HINSTANCE g_hInst;
LPCTSTR lpszClass = L"HelloAPI";
LPCTSTR ChildClassName1 = L"ChildWin1";
LPCTSTR ChildClassName2 = L"ChildWin2";
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK ChildWndProc1(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK ChildWndProc2(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) {
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.hCursor = LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance = hInstance;
WndClass.lpfnWndProc = (WNDPROC)WndProc;
WndClass.lpszClassName = lpszClass;
WndClass.lpszMenuName = NULL;
WndClass.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass); // 메인윈도우 클래스 등록
WndClass.lpfnWndProc = ChildWndProc1; // 차일드 윈도우 프로시저
WndClass.lpszClassName = ChildClassName1; // 차일드 윈도우 클래스이름
RegisterClass(&WndClass);
WndClass.lpfnWndProc = ChildWndProc2; // 차일드 윈도우 프로시저
WndClass.lpszClassName = ChildClassName2; // 차일드 윈도우 클래스이름
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass, // 윈도우 클래스 이름
L"Visual C++ 프로그래밍", // 윈도우 타이틀
WS_OVERLAPPEDWINDOW | WS_VISIBLE, // 윈도우 스타일
200, 200, // 윈도우가 보일때 X Y좌표
800, 600, // 윈도우의 폭과 높이
(HWND)NULL, // 부모 윈도우 핸들
(HMENU)NULL, // 윈도우가 가지는 메뉴핸들
hInstance, // 인스턴스핸들
NULL); // 여분의 데이터
ShowWindow(hWnd,nCmdShow);
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) {
LPCTSTR text1 = L"Visual C++ 프로그래밍 출석수업대체시험";
LPCTSTR text2 = L"201934-363698 이상호";
switch(iMessage) {
case WM_PAINT: {
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
TextOut(hdc, 150, 40, text1, lstrlen(text1));
TextOut(hdc, 150, 60, text2, lstrlen(text2));
EndPaint(hWnd,&ps);
return 0;
}
case WM_CREATE: {
HWND hChildWnd = CreateWindow(
ChildClassName1, // 차일드 윈도우 클래스 이름
L"출석수업", // 윈도우 타이틀
WS_OVERLAPPEDWINDOW | WS_CHILD, // 윈도우 스타일
100, // 윈도우 보일 때 x 좌표
100, // 윈도우 보일 때 y 좌표
300, // 윈도우 폭
300, // 윈도우 높이
hWnd, // 부모 윈도우
(HMENU) gId, // 차일드 윈도우ID
g_hInst, // 인스턴스 핸들
(LPVOID) NULL); // 여분의 데이터
ShowWindow(hChildWnd, SW_SHOW);
hChildWnd = CreateWindow(
ChildClassName2, // 차일드 윈도우 클래스 이름
L"신청기간", // 윈도우 타이틀
WS_OVERLAPPEDWINDOW | WS_CHILD, // 윈도우 스타일
450, // 윈도우 보일 때 x 좌표
100, // 윈도우 보일 때 y 좌표
300, // 윈도우 폭
300, // 윈도우 높이
hWnd, // 부모 윈도우
(HMENU) gId, // 차일드 윈도우ID
g_hInst, // 인스턴스 핸들
(LPVOID)NULL); // 여분의 데이터
ShowWindow(hChildWnd, SW_SHOW);
hChildWnd = CreateWindow(
L"button", // 윈도우 클래스 이름
L"대체시험일", // 윈도우 타이틀
WS_CHILD|WS_VISIBLE, // 윈도우 스타일
100, // 윈도우 보일 때 x 좌표
450, // 윈도우 보일 때 y 좌표
100, // 윈도우 폭
30, // 윈도우 높이
hWnd, // 부모 윈도우
(HMENU) gIdBtn1, // 컨트롤 ID
g_hInst, // 인스턴스 핸들
(LPVOID) NULL); // 여분의 데이터
hChildWnd = CreateWindow(
L"button", // 윈도우 클래스 이름
L"제출방법", // 윈도우 타이틀
WS_CHILD | WS_VISIBLE, // 윈도우 스타일
450, // 윈도우 보일 때 x 좌표
450, // 윈도우 보일 때 y 좌표
100, // 윈도우 폭
30, // 윈도우 높이
hWnd, // 부모 윈도우
(HMENU) gIdBtn2, // 컨트롤 ID
g_hInst, // 인스턴스 핸들
(LPVOID)NULL); // 여분의 데이터
if (!hChildWnd) { return -1; }
return 0;
}
case WM_COMMAND: {
if(LOWORD(wParam) == gIdBtn1) {
MessageBox(hWnd, L"2019.6.9(일) 제출", L"대체시험일", MB_OK);
}
if (LOWORD(wParam) == gIdBtn2) {
MessageBox(hWnd, L"온라인제출", L"제출방법", MB_OK);
}
return 0;
}
case WM_DESTROY: {
PostQuitMessage(0);
return 0;
}
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
LRESULT CALLBACK ChildWndProc1(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
LPCTSTR text = L"참석이 불가능한 경우";
switch(message) {
case WM_PAINT: {
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd,&ps);
TextOut(hdc, 50, 10, text, lstrlen(text));
EndPaint(hWnd,&ps);
return 0;
}
case WM_CREATE: {
HWND hChildWnd = CreateWindow( // 차일드 원도우에 버튼을 생성한다.
L"button", // 윈도우 클래스 이름
L"대체시험형태", // 윈도우 타이틀
WS_CHILD | WS_VISIBLE, // 윈도우 스타일
50, // 윈도우 보일 때 x 좌표
100, // 윈도우 보일 때 y 좌표
100, // 윈도우 폭
30, // 윈도우 높이
hWnd, // 부모 윈도우
(HMENU) hIdBtn, // 컨트롤 ID
g_hInst, // 인스턴스 핸들
(LPVOID) NULL); // 여분의 데이터
if (!hChildWnd) { return -1; }
return 0;
}
case WM_COMMAND: {
if (LOWORD(wParam) == hIdBtn) {
MessageBox(hWnd, L"실습과제물", L"대체시험형태", MB_OK);
}
return 0;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
LRESULT CALLBACK ChildWndProc2(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
LPCTSTR text = L"3.11(월)-5.8(수)";
switch (message) {
case WM_PAINT: {
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
TextOut(hdc, 50, 50, text, lstrlen(text));
EndPaint(hWnd, &ps);
return 0;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
[GitHub Gist]
관련 자료
[제출본]
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
'자기계발 > 방송통신대 컴퓨터과학과' 카테고리의 다른 글
[방송통신대 컴퓨터과학과] 2019년 2학기 전공 컴퓨터과학개론 소개 (0) | 2019.10.20 |
---|---|
[방송통신대 컴퓨터과학과] 2019년 2학기 전공 C++ 프로그래밍 소개 (0) | 2019.10.20 |
[방송통신대 컴퓨터과학과] 2019년 1학기 일선 데이터정보처리입문 과제물 (0) | 2019.09.04 |
[방송통신대 컴퓨터과학과] 2019년 1학기 전공 C 프로그래밍 과제물 (0) | 2019.09.04 |
[방송통신대 컴퓨터과학과] 2019년 1학기 전공 HTML 웹 프로그래밍 과제물 (0) | 2019.09.04 |
최근댓글