Programming hwp

Size: px
Start display at page:

Download "Programming hwp"

Transcription

1 6 장 MDI 응용프로그램 MDI 응용프로그램의형태 응용프로그램마법사 (AppWizard) 가생성하는 MDI 응용프로그램의주실행창을나타내는객체는 CFrameWnd에서파생된클래스인스턴스이며, 기본외형은아래그림과같이메뉴와툴바를포함한다. 문서내용을보여주는뷰들은이창의클라이언트영역안에자식창으로만들어지는윈도우들을통해표시된다. 주실행창의클라이언트영역안에는여러개의자식창이만들어질수있으며, 한개의문서에대응되는뷰가여러개일수도있다. 이점을제외하면 MDI 응용프로그램의형태는 SDI 응용프로그램의형태와거의같다. 이장에서는먼저 AppWizard, 클래스마법사 (ClassWizard), 리소스편집기등의도구들에대해다시요약하여설명하고, 특히 AppWizard를통해만들어지는것이무엇인지살펴본다. 그런다음예제로서간단한그림편집기응용프로그램을만들어본다. 하나의문서에대응되는둘이상의뷰가있을경우이들이항상동일한내용을나타낼수있도록동기화 (synchronization) 시켜주는방법을알아본다. 끝으로특정기능을사용하는뷰클래스를기본클래스로이용하는응용프로그램개발예를살펴본다

2 6.1 AppWizard, 클래스마법사, 리소스편집기 Visual C++ 개발환경안에는소프트웨어개발속도를크게향상시킬수있는여러가지도구들이포함되어있는데, 특히응용프로그램위저드 (AppWizard), 클래스마법사 (ClassWizard), 리소스편집기 (Resource Editor) 등이중요한도구들이다. 리소스편집기는각리소스유형의편집에사용되는여러편집기들의모음이다. AppWizard는프로그램틀생성기 (template generator) 라고볼수있다. 흔히새로운프로그램을작성할때기존의유사한프로그램소스에서불필요한부분들을제거한다음필요한기능들을추가하게될것이다. AppWizard는이중첫번째단계에해당하는작업을대신해주는도구이다. 즉, 새로작성하고자하는응용프로그램을위한 깨끗한 코드틀을만들어준다. AppWizard는개발자가선택한응용프로그램유형 (Dialog 기반, SDI, MDI), 여러선택항목등을반영하는프로그램소스를만들어준다. 응용프로그램의작성에서 AppWizard는시작부분에서단한번만사용된다는점을유념하자. AppWizard를사용한결과로여러파일들이만들어지며, 이파일들은컴파일되어실행될수있는완전한프로그램임을앞에서살펴본바있다. ClassWizard는 AppWizard가만들어준프로그램골격을수정하는데사용되는도구인데, 특히메시지맵의작성 / 변경, 새로운 MFC 파생클래스의생성, 멤버변수추가등의작업에주로이용된다. AppWizard에의해생성된프로그램골격에만적용될수있음을유념하자. 리소스는리소스편집기를사용하여생성하거나편집할수있는사용자인터페이스객체들이며, 여기에는비트맵, 커서, 다이얼로그, 아이콘, 메뉴, 단축키테이블, 스트링테이블, 버전정보등이포함된다. 리소스들이나타내는내용들은 MFC 코드를사용하여표현될수도있지만, 리소스편집기를사용함으로써훨씬쉽게이용할수있다. 6.2 AppWizard 의생성물 MDI 응용프로그램에서 AppWizard의진행절차는응용프로그램유형으로 Multiple Document를선택하는것을제외하면 SDI의경우와정확히같다. MDI 응용프로그램유형을선택하더라도실제취급하는문서유형은한가지인경우가많으며, 여러유형의문서를취급할수있기위해서필요한작업에대해서는 6.6절에서다룬다. 그렇지만한문서에대해여러개의뷰를사용할수있고또뷰를포함하는창이주실행창의클라이언트영역전체가아니라그안에포함된다는점등의차이가있다. MDI 응용프로그램의경우 AppWizard는 20개가넘는파일들을만들어낸다. 이파일들중의많은부분은프로그램소스를구성하는 C++ 헤더파일들과 C++ 클래스구현파일들이며, 이외에도여러리소스관련파일이나프로젝트관리와관련된파일들이있다. AppWizard 종료후프로젝트워크스페이스를통해클래스, 리소스, 파일등을살펴보면아래그림들과같다. MDI 응용프로그램의기본클래스들은 SDI 응용프로그램의기본클래스들과거의같으며,

3 단지 CChildFrame 클래스만이추가되어있다. 파일들의경우도 CChildFrame 클래스를위한헤더파일과클래스구현파일을제외하고는차이가없다. 리소스는둘다 7개의기본리소스를포함하는것으로정확히같다. 클래스뷰에서사용되는아이콘들의의미는다음과같다. - 클래스 - protected 멤버함수 - private 멤버함수 - public 멤버함수 - protected 멤버변수 - private 멤버변수 - public 멤버변수 AppWizard가생성하는 MDI 응용프로그램의기본클래스구조는아래그림과같다. 그림에서가장하단에위치한클래스들이실제로생성되는클래스들이며, 그위의클래스들은 MFC 계층구조안의클래스들이다

4 CObject CCmdTarget CWndThread CDocument CWnd CWinApp CFrameWnd CView CDialog CWinAppEx CMDIFrameWnd CMDIChildWnd CDialogEx CMDIFrameWndEx CMDIChildWndEx CMyApp CMyDoc CMainFrame CChildFrame CMyView CAboutDlg 6.3 간단한그림편집기의작성 예제프로그램은마우스드래깅 ( 왼쪽버튼을누른상태에서이동 ) 을따라 5x5 크기의정사각형을그린다. 이를위해프로젝트이름은 Drawing, 응용프로그램종류는 < 다중문서 >(< 탭문서 > 선택은해제 ), 리소스언어는 < 한국어 >, 프로젝트스타일은 <MFC 표준 > 등을선택한다. 마우스드래깅에반응하도록만들기위해뷰클래스안에 WM_MOUSEMOVE 메시지에대한처리기함수를만들고아래와같이정의한다. void CDrawingView::OnMouseMove(UINT nflags, CPoint point) if (nflags == MK_LBUTTON) // 마우스왼쪽버튼이눌려져있으면 CClientDC dc(this); dc.rectangle(point.x, point.y, point.x + 5, point.y + 5); CView::OnMouseMove(nFlags, point); OnMouseMove() 함수의첫번째파라미터는마우스버튼이나 CTRL/SHIFT 키상태를나타내며, 다음상태심볼들이정의되어있다. MK_CONTROL, MK_SHIFT, MK_LBUTTON, MK_MBUTTON, MK_RBUTTON

5 연습문제 1. 위의프로그램을컴파일하여실행시켜보라. 2. [ 창 ] 메뉴의 [ 새창 ] 메뉴항목은동일문서에대해뷰창을추가로만들기위해사용된다. 물론아직은문서를나타내기위한작업이없으므로위의프로그램의경우뷰들이별의미를갖지는않는다. 뷰의배열을 [ 창 ] 메뉴에서 [ 바둑판식배열 ] 을선택하여프로그램을수행해보라. 3. OnMouseMove() 함수안에서 dc 객체는매번새로만들어지는데이는낭비처럼생각될수있을것이다. 이러한낭비를피하기위해서는 static 선언을이용할수있다. dc 객체를 static으로선언한다음위의 2번문제에서와같이두개의뷰를연다음실험해보라. 이상한현상을관찰할수있을텐데, 그원인을설명해보라. 4. 위의 OnMouseMove() 함수를만들기위한방법이두가지있는데, 하나는 Visual Studio [ 프로젝트 ] 메뉴의 [ 클래스마법사 ] 메뉴항목을사용하는방법이며, 또하나는클래스뷰에대한팝업에서 [ 클래스마법사 ] 메뉴항목을사용하는것이다. 이들을각기사용해보고, 나타나는화면들을캡처하고설명을붙여제출하라. 5. 뷰가가려졌다다시노출될때가려졌던부분에위치한사각형들은사라진것을볼수있다. 풀다운메뉴에의해가려졌던부분은메뉴가사라진후어떻게되는지관찰하라. 관찰된결과의원인을설명하라. 앞의프로그램은문서파일을저장하거나읽어들이는기능, 가려졌다나타나는화면에대한재생기능이없는데, 이들은도큐먼트 / 뷰구조를사용하여해결될수있다. 도큐먼트 / 뷰구조를반영하기위한작업은다음 4가지이다. 1 사용자가그리는점들에관한정보를저장하기위한자료구조를도큐먼트클래스에추가한다. 2 도큐먼트클래스의자료구조를디스크에저장하고읽어들이기위한코드를도큐먼트클래스에추가한다. 3 사용자가점하나를추가할때마다이점을도큐먼트클래스의자료구조에도추가하기위한코드를뷰클래스에추가한다. 4 뷰의노출시내용을적절히재생하기위한코드를뷰클래스에추가한다. 이작업들을차례로살펴보자. 단계 1: 도큐먼트클래스에자료구조를추가한다

6 점을나타내는좌표들의열을저장하는방법은여러가지가있다. CPoint 배열은자연스러운선택중의하나이겠지만배열은선언할때크기가고정되는데, 이예제의경우점들의개수를미리예측하기어렵다는점에서바람직한선택은아니다. MFC에서는 CArray, CObArray, CByteArray, CUIntArray, CWordArray, CDWordArray, CPtrArray, CStringArray 등다양한배열클래스들을지원하고있는데, 이들은단순한 C++ 배열과는달리필요에따라크기가신축적으로변경될수있다. 또한이들은다양한멤버함수들을통해삽입, 추가, 삭제, 복사등의기능들을지원할뿐만아니라자체적으로 Serialize() 함수기능도지원한다. 이러한클래스들의객체에대해서는일반배열과마찬가지로 [] 안에배열인덱스를사용할수도있다. 여기서는두개의 CDWordArray를사용하여각기 x 좌표열과 y 좌표열을나타내기로한다. 이배열의원소는 32 비트정수인 DWORD 타입을갖는다. CDrawingDoc 클래스안에서 private 영역에다음과같은선언을둔다. 이는도큐먼트클래스헤더파일인 DrawingDoc.h를편집하거나도큐먼트클래스에대한팝업에서 [ 추가 - 변수추가 ] 메뉴항목을사용하여달성될수있다. CDWordArray x, y; 단계 2: 도큐먼트자료구조에대한저장및열기. AppWizard가마련한프로그램골격과 MFC 클래스들이파일의저장 / 열기등과관련한작업의많은부분을처리해주고있다. 예를들면, 그림편집기프로그램에서파일메뉴의열기항목을선택하면적절한파일열기다이얼로그를열어서읽어들일파일을선택할수있게해준다. 프로그램골격은또한선택된파일을열고그파일에연계된 CArchive 객체를만들고최종적으로 CDrawingDoc 클래스의 Serialize() 함수를호출한다. 이는파일의저장시에도마찬가지이다. 프로그래머가해야할일은 Serialize() 함수를채워도큐먼트자료구조, 즉, CDWordArray 타입의 x, y를적절히읽어들이거나저장하는일인데, CDWordArray 클래스는자체적으로 Serialize() 함수를지원하므로이작업은더욱쉬워진다. 아래코드를참고하라. void CDrawingDoc::Serialize(CArchive& ar) x.serialize(ar); y.serialize(ar); 단계 3: 뷰클래스를수정하여추가되는점들을도큐먼트자료구조에반영한다. 앞에서뷰에그릴사각형의크기는 5x5로고정되어있었다. 그러나나중에사각형의크기를변경시키는메뉴항목을둘예정이며, 이를위해사각형의크기를나타내는 private 가시성정

7 수형멤버변수 w를뷰클래스안에둔다. ( 헝가리식표기법을따르자면 m_nwidth와같은이름을사용해야겠지만식의길이를줄이기위해 w를사용한다.) 이변수는생성자에서 5로초기화한다. 추가되는점을도큐먼트자료구조에반영하기위해 OnMouseMove() 함수는아래와같이고쳐쓴다. 추가된코드부분은진하게표시되어있다. void CDrawingView::OnMouseMove(UINT nflags, CPoint point) CDrawingDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if (!pdoc) return if (nflags == MK_LBUTTON) // 마우스왼쪽버튼이눌려져있으면 CClientDC dc(this); dc.rectangle(point.x, point.y, point.x + w, point.y + w); pdoc->add(point); pdoc->setmodifiedflag(); CView::OnMouseMove(nFlags, point); 도큐먼트클래스에는 Add() 라는함수가아래와같이정의되어야한다. void CDrawingDoc::Add(CPoint point) x.add(point.x); y.add(point.y); 단계 4: 뷰클래스에서노출이벤트의처리 가려졌던뷰가다시노출될때 WM_PAINT라는메시지가발생되며, 이는뷰클래스의 OnPaint() 함수를호출하게만드는데, 이함수는다시뷰클래스의 OnDraw() 멤버함수를호출한다. OnDraw() 함수안에노출처리코드를넣어줌으로써화면을적절히재생할수있게된다

8 void CDrawingView::OnDraw(CDC* pdc) CDrawingDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); for (int i = 0; i < pdoc->size(); i++) CPoint p = pdoc->getpoint(i); pdc->rectangle(p.x, p.y, p.x + w, p.y + w); 도큐먼트클래스에는 Size(), GetPoint() 등의함수들이아래와같이정의되어야한다. int CDrawingDoc::Size() return x.getsize(); CPoint CDrawingDoc::GetPoint(int i) return CPoint(x[i], y[i]); 지금쯤프로그램을저장한후컴파일하여실행해보고파일저장 / 열기기능과뷰노출등의기능이제대로동작하는지확인해야할좋은시점이다. 여러파일을열어두거나하나의문서에대해여러뷰를여는등의작업이제대로수행되는지도점검해보면좋을것이다. 또전체프로그램을교재를보지않고다시반복해작성해보는것도좋을것이다. 도큐먼트 / 뷰구조에관한기본적인사항은완료되었다. 하나의문서에대해여러뷰가열려있을경우실시간동기화는이루어지고있지않은데, 이는다음절에서다룰것이다. 여기에서는추가기능으로사각형의크기를변경하는메뉴항목을첨가해본다. 먼저사각형의크기를입력받을다이얼로그리소스를먼저설계한다음메뉴항목의추가및관련코드를만들어볼것이다. 단계 5: 다이얼로그리소스의추가. 프로그램에다이얼로그를추가하기위해필요한작업은다음과같다. 1 리소스편집기를사용하여새로운다이얼로그리소스를만든다. Visual Studio의 [ 서식 ] 메뉴의 [ 탭순서 ] 기능을사용하여 Edit 컨트롤이 1번이되도록한다. 2 새로운다이얼로그를위한클래스를만든다. ( 클래스이름 : CSizeDlg) 3 다이얼로그안의 Edit 컨트롤을위한 int 타입의 DDX 변수 m_nsize를정한다. 이변수

9 에대한 DDV 조건은 2에서 50 사이의값을갖는것으로정한다. 4 다이얼로그객체를생성하여화면에나타나게만든다. 이부분은다음단계의메뉴항목처리기함수안에서이루어질것이다. 단계 6: 메뉴항목및처리기함수추가. 예제의메뉴리소스를열어보면네개의메뉴가들어있으며, 주실행창에연계되어있고뷰창이하나도열려있지않을경우사용되는 IDR_MAINFRAME 메뉴와뷰창에연계된 IDR_DrawingTYPE 등의메뉴가있다. IDR_MAINFRAME 메뉴에는 [ 파일 ], [ 보기 ], [ 도움말 ] 세가지메뉴가있으며, IDR_DrawingTYPE 메뉴에는이들외에도 [ 편집 ], [ 창 ] 등의메뉴가더있다. 여기에서는 IDR_DRAWINTYPE 메뉴리소스에 [ 선택 ] 메뉴, 그리고그안에 [ 크기 ] 메뉴항목을만들어넣는다. 이를위해먼저메뉴바끝에위치한빈사각형에 [ 선택 ] 메뉴를만든후이를마우스로끌어 [ 편집 ] 메뉴와 [ 보기 ] 메뉴사이로옮긴다. 나머지는앞의그림이나타내는바와같다. 특히 [ 크기 ] 메뉴항목을위한 ID는 ID_OPTION_SIZE로정한다. 클래스마법사를사용하여추가된메뉴항목을위한처리기함수 OnOptionSize() 를 CDrawingView 클래스안에만들어넣는다. 다이얼로그는열리면서 UpdateData(FALSE) 함수를호출하여 DDX 변수들을화면에보여주고, 닫히면서 UpdateData(TRUE) 함수를호출하여사용자가입력한값을 DDX 변수들에저장한다. 따라서아래함수에서도다이얼로그가열릴때 dlg.m_isize에저장된 w의현재값이화면의 Edit 컨트롤에나타나며, 사용자가 Edit 컨트롤에입력한값은다이얼로그가닫힐때 dlg.m_nsize에저장되었다가 w로옮겨간다. #include "SizeDlg.h" void CDrawingView::OnOptionSize() CSizeDlg dlg; dlg.m_nsize = w;

10 if (dlg.domodal() == IDOK) w = dlg.m_nsize; 이제프로그램을다시컴파일하여실행해보자. 연습문제 6. CDWordArray 클래스의멤버함수에대해조사해보라. 7. 사각형크기변경기능을사용하되, DDV 범위인 2~50 사이를벗어나는값을입력해보라. 8. 크기를변경한후뷰의일부만을다른창으로가렸다가다시나타나게해보라. 관찰된현상을설명하라. 6.4 다중뷰의동기화 그림그리기응용프로그램에서 [ 창 ] 메뉴의 [ 다음창 ] 기능을사용하여동일문서에대해두개의뷰를 [ 바둑판식 ] 으로연다음각뷰안에그림을그려넣어본다. 두개의뷰는마치별개의문서를위한것처럼보이지만주실행창을최소화시켰다가다시불러내보면각뷰에그린내용이합쳐져서나타나는것을관찰할수있을것이다. 각뷰에서추가되는점들은모두도큐먼트자료구조에추가되며, OnDraw() 함수가불려나올때는도큐먼트자료구조안에저장되어있는좌표들을사용하여새로그리게된다. 이경우각뷰에대해노출이벤트가발생하며, 따라서뷰마다 OnDraw() 함수가호출되어두개의뷰는일치된모습을보이게된다. 그러나 OnMouseMove() 함수안에서사각형을그릴때는해당뷰안에서만이루어지므로다른뷰들에대해서는실시간동기화가이루어지지않는것이다. 이문제는뷰클래스안의가상함수 OnUpdate() 함수를사용하여해결될수있다

11 CDocument 클래스객체는그문서에연계되어있는모든뷰들의목록을유지한다. 또 CDocument 클래스는 UpdateAllViews() 함수를갖고있는데, 특정문서에대해이함수가호출되면그문서에연계되어있는각뷰에대해 OnUpdate() 함수를호출한다. 이함수를적절히수정하여필요한뷰동기화를구현할수있다. 하나의사각형을추가하는작업은 OnMouseMove() 함수안에서이루어진다. 즉, 사각형추가라는사실을인지하는곳이 OnMouseMove() 함수이며, 여러뷰에동기화가필요한이벤트가발생했음을이함수에서알려줄수있다. 따라서아래와같이 OnMouseMove() 함수안에뷰동기화를위해 UpdateAllViews() 함수호출하나를추가한다. void CDrawingView::OnMouseMove(UINT nflags, CPoint point) CDrawingDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if (!pdoc) return; if (nflags == MK_LBUTTON) CClientDC dc(this); dc.rectangle(point.x, point.y, point.x + w, point.y + w); pdoc->add(point); pdoc->setmodifiedflag(); pdoc->updateallviews(this, 0, 0); CView::OnMouseMove(nFlags, point); 그리고클래스마법사에서 [ 가상함수 ] 탭을사용하여가상함수 OnUpdate() 를추가한다음아래와같이편집한다. OnUpdate() 함수에서는도큐먼트자료구조의마지막좌표를받아와서사각형을그린다. void CDrawingView::OnUpdate(CView* psender, LPARAM lhint, CObject* phint) CDrawingDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if (!pdoc) return; int n = pdoc->size(); if (n > 0) CPoint p = pdoc->getpoint(n - 1); CClientDC dc(this); dc.rectangle(p.x, p.y, p.x + w, p.y + w);

12 뷰의초기화과정에서불려나오는 OnInitialUpdate() 함수안에서도 OnUpdate() 함수를호출하는데, 이때는아직아무좌표도도큐먼트자료구조에들어있지않다. 이경우 OnUpdate() 함수안에서 n은 0이될것이며, 따라서이함수안의 if 문은필요함을유념하자. UpdateAllViews() 함수와 OnUpdate() 함수의파라미터는동일하며, UpdateAllViews() 함수의실인수들이 OnUpdate() 함수의파라미터로전달된다. 파라미터 lhint와 phint는뷰갱신에필요한정보의전달을위해사용될수있지만, 이예제에서는사용되고있지않으며, 이경우 UpdateAllViews() 함수에서는디폴트인수를사용할수있어생략되어도좋다. psender는문서를수정하고있는뷰를나타내며, 이뷰는이미갱신되었으므로갱신이필요없음을표시한다. 현재뷰갱신도 OnMouseMove() 함수에서처리하는대신 OnUpdate() 에맡길수있으며, 이경우 OnMouseMove() 함수는아래와같이고쳐쓸수있다. void CDrawingView::OnMouseMove(UINT nflags, CPoint point) CDrawingDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if (!pdoc) return; if (nflags == MK_LBUTTON) pdoc->add(point); pdoc->setmodifiedflag(); pdoc->updateallviews(null); // 파라미터 NULL은모든뷰에 update 적용을의미 CView::OnMouseMove(nFlags, point); 이제프로그램을다시컴파일하고실행하여다중뷰에대한실시간동기화를체험해보자. 6.5 텍스트편집기의작성 또다른유형의문서를처리하는예제프로그램으로서메모장과유사한텍스트편집기응용프로그램을작성해본다. 이를위해프로젝트이름은 Ed, 응용프로그램종류는 < 다중문서 > (< 탭문서 > 선택은해제 ), 리소스언어는 < 한국어 >, 프로젝트스타일은 <MFC 표준 > 등을선택한다. 이응용프로그램의경우모든코드와리소스는 AppWizard에의해만들어지며, 프로그래머는단한줄의코드도추가하지않는다. 텍스트편집기기능을갖도록만들기위해 AppWizard 진행과정에서두가지작업을해준다

13 [ 문서템플릿속성 ] 화면에서 < 파일확장명 > 필드에확장자 tex를넣는다. ( 이과정은꼭필요한것은아니다.) [ 생성된클래스 ] 화면에서뷰클래스의 CEdView의기본클래스를 CView에서 CEditView로변경한다. 이제이프로그램을컴파일하여실행해보면텍스트의편집, 파일의저장 / 열기 / 인쇄, 텍스트의오려두기 / 복사하기 / 붙이기, 모두선택 / 찾기 / 다음찾기 / 바꾸기등의기능을사용할수있을것이다. 편집기데이터가도큐먼트클래스가아니라뷰클래스안에포함되어있음을언급하였다. 따라서도큐먼트데이터를공유하는다중뷰의사용이이경우해당되지않으며, 이는텍스트편집기를너무쉽게만든것에대한대가로생각해야할것이다. 따라서 [ 창 ] 메뉴의 [ 새창 ] 기능은불필요하므로삭제하는것이바람직할것이다. 오른쪽의 [ 문서템플릿속성 ] 화면에서정해지는스트링들은스트링리소스의 IDR_MAINFRAME 스트링과 IDR_EDTYPE 스트링에아래와같이들어있다. 모두 7 개의스트링인이들에대한설명은 CDocTemplate::GetDocString() 함수에대한도움말안에포함되어있다

14 1 CDocTemplate::windowTitle (IDR_MAINFRAME: "Ed") 응용프로그램의주실행창타이틀바에나타나는이름. ( 예 : "Microsoft Excel") 2 CDocTemplate::docName ("Ed") 문서의디폴트이름어간부분. ( 예 : "Book"). 파일메뉴의새파일기능을선택할때디폴트파일이름은여기에숫자를붙여만들어진다. ( 예 : "Book1", "Book2" 등등 ). 지정되어있지않으면 "Untitled" 또는 " 제목없음 " 등이사용된다. 3 CDocTemplate::fileNewName ("Ed") 문서유형을나타내는이름. 응용프로그램이둘이상의문서유형을지원할때새파일메뉴항목을선택하면파일유형목록이나타나는데, 여기에사용되는스트링이다.( 예 : "Worksheet"). 4 CDocTemplate::filterExt (".tex") 문서 유형을 위한 파일 확장자. ( 예 : ".xls"). 5 CDocTemplate::filterName ("Ed Files (*.tex)") 문서유형에대한설명과와일드카드필터. 파일열기다이얼로그의파일형식필드에사용되는스트링이다. ( 예 : "Worksheets (*.xls)") 6 CDocTemplate::regFileTypeId ("Ed.Document") 윈도우운영체제에등록되어있는파일유형식별자. ( 예 : "ExcelWorksheet") 7 CDocTemplate::regFileTypeName ("Ed.Document") 윈도우운영체제에등록되어있는파일유형이름. ( 예 : "Microsoft Excel Worksheet")

윈도우 프로그래밍의 개념

윈도우 프로그래밍의 개념 제 10 장다양한뷰클래스 10.1 도큐먼트 10.2 파일입출력 10.3 다양한뷰클래스 실습 10-1 Formview를이용한문자를출력하고파일입출력 10.4 분할윈도우 실습 10-2 정적분할윈도우를이용한학생정보프로그램 10.5 다중뷰 실습 10-3 다중뷰만들기 CDocument 클래스 데이터를관리하는클래스 OnNewDocument() 함수 새로운도큐먼트를만드는기능

More information

<4D F736F F F696E74202D20C1A C0E520B5B5C5A5B8D5C6AE20C6C4C0CF20C0D4C3E2B7C220B9D720B4D9BEE7C7D120BAE420C5ACB7A1BDBA2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A C0E520B5B5C5A5B8D5C6AE20C6C4C0CF20C0D4C3E2B7C220B9D720B4D9BEE7C7D120BAE420C5ACB7A1BDBA2E BC8A3C8AF20B8F0B5E55D> 제 10 장다양한뷰클래스 10.1 도큐먼트 10.2 파일입출력 10.3 다양한뷰클래스 실습 10-1 Formview를이용한문자를출력하고파일입출력 10.4 분할윈도우 실습 10-2 정적분할윈도우를이용한학생정보프로그램 10.5 다중뷰 실습 10-3 다중뷰만들기 도큐먼트 CDocument 클래스 데이터를관리하는클래스 OnNewDocument() 함수 새로운도큐먼트를만드는기능

More information

슬라이드 1

슬라이드 1 13장직렬화 김성영교수 금오공과대학교 컴퓨터공학부 도큐먼트 / 뷰구조 (1) 도큐먼트와뷰 디스크에저장된파일데이터를읽는경우 도큐먼트객체 뷰객체 파일 사용자 읽기 화면표시 2 도큐먼트 / 뷰구조 (2) 도큐먼트와뷰 사용자가데이터를입력하는경우 도큐먼트객체 뷰객체 파일 사용자 저장 입력 3 도큐먼트 / 뷰구조 (3) 도큐먼트와뷰 입력된데이터를디스크파일에저장하는경우

More information

Visual C++의 개요

Visual C++의 개요 2.1 MFC 의개요 2.2 MFC 프로그램의구조 2.3 Visual C++ 의시작실습 2-1 Application Wizard 익히기 2.4 SDI 템플릿 2.5 MDI 템플릿 2.6 MFC 애플리케이션아키텍처실습 2-2 간단한 MFC 프로젝트만들기 MFC 의개요 MFC 윈도우애플리케이션을생성하기위해만들어진 C++ 클래스라이브러리 애플리케이션프레임워크를제공

More information

Programming hwp

Programming hwp 4 장대화상자기반응용프로그램 3장에서는윈도우응용프로그램작성을위한 MFC 프로그래밍에텍스트편집기만을사용하였으나, 이장에서부터는응용프로그램마법사 (AppWizard), 리소스편집기, 클래스마법사 (Class Wizard) 등의도구를활용한다. 이러한도구들의이용으로전체프로그램소스에서프로그래머가직접코딩하는분량을크게줄일수있어빠른시간안에응용프로그램의개발이가능해진다. 또한

More information

untitled

untitled MFC MFC MFC AppWizard 來 MFC MFC 類 了 類 Document/View MFC Visual C++ AppWizard MFC 不 力 亮 來 不 Document View 不 列 AppWizard View 類 CEditView 列 列 說 行 不 了 Document/View MFC Application Framework 靈 OLE Document

More information

Microsoft PowerPoint - hci2-lecture10.ppt

Microsoft PowerPoint - hci2-lecture10.ppt Overview 도큐먼트 / 뷰구조 HCI Programming 2 (321190) 2008 년가을학기 11/25/2008 박경신 도큐먼트 / 뷰구조 도큐먼트템플렛 (Document Template) SDI (Single Document Interface) 응용프로그램의기본구조 MDI (Multiple Document Interface) 응용프로그램의기본구조

More information

그래픽 프로그래밍

그래픽 프로그래밍 제 13 장그래픽프로그래밍 13.1 베지어곡선 실습 13-1 알고리즘을통한베지어곡선그리기 실습 13-2 컨트롤포인트이동및베지어곡선 해상도설정하기 그래픽프로그래밍 베지어곡선 베지어곡선알고리즘은곡선을생성하는대표적이고기본이되는알고리즘이다. MFC 에서의베지어곡선함수 BOOL PolyBezier(const POINT* lppoints, int ncount); lppoints

More information

5장 MFC기반 다지기

5장 MFC기반 다지기 5 장 MFC 기반다지기 김성영교수 금오공과대학교 컴퓨터공학부 들어가기 (1) pp.132 ~ 138 비주얼스튜디오에서 MFC 어플리케이션작성 참조 시스템메뉴 메뉴 최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 (Client Area) 스크롤바 상태표시줄 2 들어가기 (2) 3 들어가기 (3) 4 들어가기 (4) 솔루션탐색기확인 WinMain() 함수가없다?

More information

Microsoft PowerPoint - CPP_chap3

Microsoft PowerPoint - CPP_chap3 3 장. 마우스와키보드메시지 1 1. 능동적입력받기와수동적입력받기 2 학습목표 이벤트위주로직개념을파악한다 메시지개념을파악한다 능동적입력받기 절차적로직프로그램에서입력받기 언제무엇을입력받을지는프로그램의절차적로직에서결정 예 : 텍스트모드 C 프로그램에서문자열을입력받는경우 수동적입력받기 이벤트위주로직프로그램에서입력받기 윈도우환경에서마우스나키보드입력은 Windows

More information

Chapter 1. MFC 시작하기

Chapter 1.  MFC 시작하기 Chapter 1. MFC 시작하기 1. MFC(Microsoft Foundation Class) 개요 2. Visual Studio 2015 프로그램설치하기 3. 마우스클릭프로그램작성 4. 그림그리기프로그램작성 5. 마우스좌표값구하기프로그램작성 1 1.1. MFC 개요 2 1.1.1. C++ 언어 객체지향언어 (Object-Oriented Programming,

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#1) 2013.09.27. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window

More information

Programming hwp

Programming hwp 5 장 SDI 응용프로그램 5.1 문서 / 뷰구조와 SDI 응용프로그램 문서 / 뷰구조 SDI 응용프로그램유형또는 MDI 응용프로그램유형이선택될경우응용프로그램마법사 (AppWizard) 가생성하는프로그램구조는문서 / 뷰 (Document/View) 구조를중심으로이루어진다. 이러한응용프로그램들은문서의전체또는일부를메모리에읽어들인후그내용을어떤형태로든사용자에게보여준다.

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770> 제목 : 미디어정보처리프로그래밍실습모음 일시 : 2002. 6. 15 작성자 : 성용철학번 : 한남대학교정보통신멀티미디어공학부 ( 전자정보통신전공 ) 미디어정보처리프로그래밍실습숙제설명 1.256 X 256 grayscale 의디스플레이프로그램 Resource View 의 menu item 에서 Display 밑에 Raw gray 라마든다음에그림과같이 ID 와

More information

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D> 09: 대화상자 학습목표 대화상자편집기의사용법을익힌다. 모드형대화상자와비모드형대화상자의차이점을이해하고작성방법을익힌다. 대화상자기반응용프로그램의원리를이해하고작성방법을익힌다. 공통대화상자를다루는방법을배운다. 개요 (1/2) 대화상자 다양한컨트롤을포함하고있는일종의윈도우 사용자로부터입력을받거나정보를출력 1 개요 (2/2) 대화상자종류 모드형대화상자 대화상자를닫지않으면응용프로그램이더이상진행할수없다.

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

Microsoft PowerPoint _대화상자.ppt

Microsoft PowerPoint _대화상자.ppt 7 장. 대화상자 모달대화상자 (modal dialog box) DDX (Dialog Data Exchange) 모델리스대화상자 (modeless dialog box) 공통대화상자의사용 Paint3.dsw 순천향대학교정보기술공학부이상정 1 모달대화상자 (modal dialog box) 순천향대학교정보기술공학부이상정 2 대화상자의종류 모달대화상자 (modal

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Programming hwp

Programming hwp 3 장 MFC 프로그래밍 윈도우응용프로그램개발을용이하게할수있도록 Visual C++ 에서는 MFC 클래스라이브러리와응용프로그램마법사 (AppWizard), 클래스마법사 (ClassWizard), 리소스편집기 (Resource Editor) 등의다양한도구를제공하고있다. 이장에서는응용프로그램마법사등의도구들은사용하지않고 MFC만을사용하여윈도우응용프로그램을작성하는방법을설명한다.

More information

Microsoft Word - hci08-final-answer.doc

Microsoft Word - hci08-final-answer.doc 기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 다음문장의내용이맞으면 True, 틀리면 False를표시하시오.

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores 컴퓨터공학설계및실험 I MFC programming 8 주차실험 MFC Programming Dept. of CS, Sogang Univ. 1 Programming with Visual Studio Visual Studio 의소개 Visual Studio : 프로그래머가손으로일일이전체코드를작성하는것이아니라마우스로그림을그리듯화면을디자인하고, 필요한곳에만코드를삽입하는발전된방식의개발도구

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

Microsoft PowerPoint _파일입출력.ppt

Microsoft PowerPoint _파일입출력.ppt 8 장. 파일입출력 파일입출력연속화 (serialization) 아카이브 (archive) 객체 Paint4.dsw Paint5.dsw 레지스트리 (registry) 오목게임 순천향대학교정보기술공학부이상정 1 파일입출력 순천향대학교정보기술공학부이상정 2 파일입출력소개 파일입출력 프로그램에서만든정보를하드디스크의파일로저장하는방법 MFC 에서사용하는파일입출력방법인연속화

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요

More information

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345]) 클래스의응용 클래스를자유자재로사용하자. 이장에서다룰내용 1 객체의치환 2 함수와클래스의상관관계 01_ 객체의치환 객체도변수와마찬가지로치환이가능하다. 기본예제 [7-1] 객체도일반변수와마찬가지로대입이가능하다. 기본예제 [7-2] 객체의치환시에는조심해야할점이있다. 복사생성자의필요성에대하여알아보자. [ 기본예제 7-1] 클래스의치환 01 #include

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

DLL(Dynamic Linked Library)

DLL(Dynamic Linked Library) 제 11 장동적연결라이브러리 11.1 DLL 의링크 11.2 DLL 의종류 실습 11-1 Implicit 링킹을통한정규 DLL 달력만들기 실습 11-2 Explicit 링킹을통한정규 DLL 달력만들기 실습 11-3 확장 DLL 을통한주민등록번호조회 프로그램만들기 DLL(Dynamic Linked Library) DLL 이란? 동적연결라이브러리 프로그램내부에라이브러리가있는것이아니라따로독립적으로실행가능한파일

More information

Microsoft PowerPoint - hci2-lecture7.ppt

Microsoft PowerPoint - hci2-lecture7.ppt Overview 파일입출력 CFile 클래스를이용한파일입출력기법 도큐먼트 / 뷰구조이해 CArchive 클래스를이용한직렬화기법 HCI Programming 2 (321190) 2007 년가을학기 11/5/2007 박경신 2 파일입출력방법 일반파일입출력 CFile ( 파생 ) 클래스 Read(), Write() 등의함수이용 직렬화 (serialization)

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 객체지향프로그래밍응용 Chap 2. 프로그램의뼈대 2012.09.17. 오병우 컴퓨터공학과금오공과대학교 윈도우프로그램각부분의명칭 타이틀바 메뉴 프레임윈도우오브젝트 메뉴오브젝트 도구모음 툴바오브젝트 스크롤바 클라이언트영역 뷰오브젝트 상태표시줄 상태바오브젝트 Department of Computer Engineering 2 Win32 Application API

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

Microsoft PowerPoint - CPP_chap7_dialogbox(2)

Microsoft PowerPoint - CPP_chap7_dialogbox(2) 7 장. 대화상자컨트롤 (2) 1 1. 버튼컨트롤 2 학습목표버튼컨트롤들을포함한다이얼로그박스를만들어본다 소스 : "07-1 Ctrl1.zip" 다이얼로그박스만들기 1 Ctrl1 라는이름의 Dialog based 프로젝트를생성한다 2 IDD_CTRL1_DIALOG 다이얼로그박스리소스수정 3 3 컨트롤아이디지정컨트롤 ID 컨트롤유형 캡션 IDC_STATIC Static

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D> 06: 사용자인터페이스 학습목표 메뉴명령을처리하고메뉴항목을적절하게갱신하는기법을익 힌다. 컨텍스트메뉴와시스템메뉴를다루는방법을익힌다. 툴바를생성하고사용하는방법을익힌다. 상태바를생성하고사용하는방법을익힌다. 메뉴용어 (1/6) 최상위메뉴 = 메뉴바 최상위메뉴 = 메뉴바 1 메뉴용어 (2/6) 메뉴항목 용어 의미 1 명령항목명령 (Command) 을수행하는메뉴항목.

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

Microsoft Word - hci07-final-answer.doc

Microsoft Word - hci07-final-answer.doc 기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 다음문장의내용이맞으면 True, 틀리면 False를표시하시오.

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 14. 상속 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 상속의기본 파생클래스와생성자 protected: 제한자 멤버함수의재정의 상속되지않는함수들 상속을이용한프로그래밍

More information

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Chapter 6.ppt 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#2) 2012.10.08. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

윈도우 프로그래밍의 개념

윈도우 프로그래밍의 개념 제 8 장컨트롤과리소스 II 8.1 탭컨트롤 8.2 슬라이더컨트롤실습 8-1 도형의종류와색상출력하기 8.3 스핀컨트롤 8.4 프로그레스바컨트롤 8.5 IP 주소컨트롤 8.6 네트워크주소컨트롤 8.7 날짜 / 시간컨트롤 8.8 애니메이트컨트롤실습 8.2 데이터전송시뮬레이터작성하기 컨트롤및리소스 리스트컨트롤 (List Control) 트리컨트롤 (Tree Control)

More information

MFC 프로그래밍

MFC 프로그래밍 윈도우프로그래밍 Visual C++ 2010 MFC Programming 1 장. 윈도우프로그래밍기초 윈도우운영체제의특징 그래픽사용자인터페이스 시스템메뉴타이틀바메뉴최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 상태표시줄 스크롤바 윈도우운영체제의특징 메시지구동구조 윈도우운영체제의특징 멀티태스킹과멀티스레딩 멀티태스킹 (Multitasking) 운영체제가여러개의응용프로그램을동시에실행

More information

Microsoft PowerPoint - hci2-lecture3.ppt

Microsoft PowerPoint - hci2-lecture3.ppt Overview MFC 프로그램구조 HCI Programming 2 (321190) 2007년가을학기 10/1/2007 박경신 MFC 개요 MFC 발전과정과주요특징이해 MFC 구조 MFC 구성요소, 클래스계층도, 주요클래스 MFC 최상위클래스인 CObject 가제공하는서비스이해 MFC 가제공하는전역함수사용법 MFC 응용프로그램구조 MFC Application

More information

Microsoft PowerPoint - MFC-교재.ppt

Microsoft PowerPoint - MFC-교재.ppt MFC MFC 기초와구조 1 차례 MFC 란무엇인가 Application Framework MFC 계층구조 MFC 구조 The Application Framework CWinApp Class CFrameWnd Class Documents and Views 객체간의통신 MFC 프로그래밍 Messages and Commands [2] MFC(Microsoft Foundation

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 03 장 영상처리를위한 Visual C++ 디지털영상파일포맷 MFC AppWizard[exe] 를이용한 MFC 프로젝트작성 MFC 를이용한영상처리입. 출력프로그램작성 MFC 를이용한영상축소 MFC 를이용한영상확대 MFC 를이용한양자화영상처리 한빛미디어 ( 주 ) 학습목표 3 장. 영상처리를위한 Visual C++ 영상처리에사용되는 RAW 파일포맷을이해한다.

More information

C++ Programming

C++ Programming C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )

More information

Programming hwp

Programming hwp 4.3 그래픽프로그래밍 이절에서다룰예제응용프로그램은사각형이나타원을그리거나마우스이동위치를추적하여연결함으로써자유곡선을그리는등의그래픽작업을다루는프로그램이다. 어떤도형을그릴것인지는라디오버튼으로정한다. 타원을그릴때는매번타원모양, 테두리선의굵기와색상, 채우기패턴등을변경하는데, 이렇게변경된그래픽속성이다른도형을그릴때에도적용된다. 즉, 타원을그릴때는그래픽속성이매번변경되지만,

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << ary[ << i << ] =  << ary[i] << endl; 5 장클래스의활용 1 5 장클래스의활용 클래스와배열객체포인터 this 포인터멤버함수오버로딩디폴트매개변수의사용 friend ( 전역함수, 클래스, 멤버함수 ) 내포클래스지역클래스 static 멤버 const 멤버와 const 객체 explicit 생성자 C++ 프로그래밍입문 1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int

More information

Microsoft PowerPoint - hci2-lecture9.ppt

Microsoft PowerPoint - hci2-lecture9.ppt Overview 대화상자 대화상자, 대화상자템플렛, 대화상자편집기 모드형대화상자와비모드형대화상자의차이 대화상자기반응용프로그램 HCI Programming 2 (321190) 2007 년가을학기 11/19/2007 박경신 2 대화상자 대화상자 (Dialog Box) 다양한컨트롤을포함하고있는일종의윈도우 사용자로부터입력을받거나정보를출력 정적, 버튼, 편집등다양한컨트롤들을배치하고관리하는윈도우

More information

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID android:title= 항목제목 /> </menu> public boolean oncreateoptionsmenu(menu menu) { getme 8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean

More information

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 1. 클래스와객체 추상데이터형 : 속성 (attribute) + 메서드 (method) 예 : 자동차의속성과메서드 C++ : 주로 class

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

PowerPoint Template

PowerPoint Template 7. 상속 (inheritance) 의이해 상속의기본개념 상속의생성자, 소멸자 protected 멤버 Jong Hyuk Park 상속의기본개념 Jong Hyuk Park 상속의기본개념 상속의예 1 " 철수는아버지로부터좋은목소리와큰키를물려받았다." 상속의예 2 "Student 클래스가 Person 클래스를상속한다." 아버지 Person 철수 Stduent 3

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

Microsoft PowerPoint - hci2-lecture3.ppt

Microsoft PowerPoint - hci2-lecture3.ppt Overview MFC 프로그램구조 HCI Programming 2 (321190) 2008년가을학기 9/30/2008 박경신 MFC 개요 MFC 발전과정과주요특징이해 MFC 구조 MFC 구성요소, 클래스계층도, 주요클래스 MFC 최상위클래스인 CObject 가제공하는서비스이해 MFC 가제공하는전역함수사용법 MFC 응용프로그램구조 MFC Application

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 11. 분리컴파일과 네임스페이스 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr 분리컴파일 프로그램부분 분리된파일에저장 분리되어컴파일 프로그램이실행되기전에상호간에링크됨 클래스정의 사용프로그램에서분리됨

More information

Microsoft PowerPoint - additional08.ppt [호환 모드]

Microsoft PowerPoint - additional08.ppt [호환 모드] 8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!

More information

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx CrackMe 15.exe (in Simples) 문제풀이 동명대학교정보보호동아리 THINK www.mainthink.net 강동현 Blog: johnghb.tistory.com e-mail: cari2052@gmail.com 1 목차 : 1. 문제설명및기본분석 --------------------------- P. 03 2 상세분석 ---------------------------

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?

More information

JDK이클립스

JDK이클립스 JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트

More information

08장 윈도우에서의 그리기

08장 윈도우에서의 그리기 8 장 윈도우에서의그리기 김성영교수 금오공과대학교 컴퓨터공학부 그래픽장치인터페이스객체 GDI 객체 객체의핸들타입 MFC 클래스속성 HPEN CPen 선속성 HBRUSH CBrush 채우기속성 HFONT CFont 글꼴속성 HBITMAP CBitmap 비트맵영상속성 HPALETTE CPalette 팔레트속성 HRGN CRgn 영역속성 GDI 클래스는 CGdiObject

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을 (structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information