ÇнÀ¸ñÇ¥    1

ÇнÀÁÖÁ¦    1

¿¹½À³»¿ë    1

½Ç½À¹æ¹ý    1

°ú    Á¦    1

Áß¿äÇÔ¼ö    1

Ŭ·¡½º¸¦ ÀÌ¿ëÇÑ ¼ºÀû°ü¸® Å×ÀÌºí ¸¸µé±â

ÇнÀ¸ñÇ¥

±¸Á¶Ã¼¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥À» ÇßÀ» ¶§ Ç×»ó Å×ÀÌºí¿¡ 10¸íÀÇ µ¥ÀÌÅÍ°¡ Ãâ·ÂµÇ¾ú´Ù. Çлý¼ö°¡ °¡º¯ ÀÏ ¶§ ¸Þ¸ð¸®¸¦ °ü¸®ÇϱⰡ ºÒÆí ÇÏ¿´´Ù. ÀÌ´Â µ¥ÀÌÅ͸¦ Ŭ·¡½º¸¦ Á¤ÀÇÇÏ¿© »ç¿ëÇϸé È¿À²ÀûÀ¸·Î ÇÁ·Î±×·¥ ÇÒ ¼ö ÀÖ´Ù.

´ÙÀ̾î·Î±× ¹Ú½º¿¡¼­ Çлý°ú ¼ºÀûÀ» ÀÔ·ÂÇÏ°í, Å×À̺íÀ» ¸¸µé¾î Ãâ·ÂÇÑ´Ù. ÇлýÀÇ µ¥ÀÌÅʹ Ŭ·¡½º¸¦ Á¤ÀÇ Çؼ­ µ¥ÀÌÅ͸¦ °ü¸®ÇÑ´Ù.

¾Æ·¡´Â ÇлýÀÇ ¹øÈ£, ±¹¾î, ¿µ¾î Á¡¼ö¸¦ ÀÔ·ÂÇÏ°í ÀÔ·Â ¹öÆ°À» ´©¸£¸é Å×ÀÌºí¿¡ ÇлýÀÇ µ¥ÀÌÅÍ°¡ Ãâ·ÂµÇ°í ÇлýÀÇ ¹øÈ£¸¦ ÀÔ·ÂÇÏ°í ã±â¸¦ ´©¸£¸é ÇлýÀÇ µ¥ÀÌÅÍ°¡ Ãâ·ÂµÈ´Ù.

ÇнÀÁÖÁ¦

1.       ´ÙÀ̾î·Î±× ¹Ú½ºÀÇ ÀÔÃâ·Â

2.       Çлý ¼ºÀûÀÇ Data Ŭ·¡½º Á¤ÀÇ

3.       Å×ÀÌºí ¸¸µé±â, Å×À̺í ÃʱâÈ­, Å×ÀÌºí¿¡ µ¥ÀÌÅÍ ¾²±â

4.       µ¥ÀÌÅÍÀÇ ªO±â

¿¹½À³»¿ë

´ÙÀ̾î·Î±× ¹Ú½ºÀÇ ÀÔÃâ·Â°ú ±¸Á¶Ã¼¿¡¼­ ÇнÀÇÑ ³»¿ëÀ» °áÇÕÇÏ°í ºñÁê¾ó ÇÁ·Î±×·¥ÀÇ Å×À̺íÀ» ÀÌ¿ëÇÏ¿© ¼ºÀû ÇÁ·Î±×·¥À» ¸¸µé°í µ¥ÀÌÅ͸¦ ã´Â ±â´ÉÀ» ¸¸µé¾î º»´Ù.

½Ç½À¹æ¹ý

¸ñ    Â÷

 

1. »õ·Î¿î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í À̸§Àº ¡°Table¡±·Î ÀÔ·ÂÇÑ´Ù.

 

 

¡°OK¡±¸¦ ´©¸£°í ¾Æ·¡¿¡¼­ ¡°Dialog based¡±À» ¼±ÅÃÇÑ´Ù. ³ª¸ÓÁö´Â ±âº»°ªÀ¸·Î ¼±ÅÃÇϰųª ¡°Finish¡±À» ´©¸£¸é ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÈ´Ù.

¡°¸®¼Ò½ººä¡±¿¡ ´ÙÀ̾î·Î±× ¹Ú½º°¡ »ý¼ºµÈ °ÍÀ» º¼¼ö ÀÖ´Ù.

 

¡°Edit Control¡±À» ¼±ÅÃÇÏ¿© 6°³ÀÇ ÀÔ·ÂâÀ» ¸¸µç´Ù.

 

´ëÈ­»óÀÚ ÆíÁý±â¿¡¼­ ¡°Static Text¡±¸¦ ¼±ÅÃÇÏ¿© ¸¸µç ÈÄ¿¡ ¾Æ·¡¿Í °°ÀÌ ¡°¼Ó¼º¡± âÀÇ ¡°Caption¡± Ç׸ñ¿¡ ÇØ´ç À̸§À» ¾´´Ù.

¾Æ·¡ ±×¸²¿¡¼­ Edit ControlÀ» ¼±ÅÃÇÏ¿© ¸¶¿ì½º ¿À¸¥ÂÊ Å°¸¦ ´­·¯ ¡°Class Wizard¡±¸¦ ¼±ÅÃÇÑ´Ù.

¡°¹üÁÖ(T)¡±¸¦ ¡°Value¡±, ¡°º¯¼ö Çü½Ä(V)¡±Àº ¡°int¡±, ¡°º¯¼öÀ̸§(N)¡±Àº ¡°m_no¡±·Î ÇÑ´Ù.

³ª¸ÓÁö 5°³µµ ¾Æ·¡¿Í °°ÀÌ º¯¼ö¸¦ Ãß°¡ÇÑ´Ù.

 

 

¹øÈ£

±¹¾î

¿µ¾î

 

 

ID

IDC_EDIT1

IDC_EDIT2

IDC_EDIT3

 

 

º¯¼öÀ̸§

m_no

m_kor

m_eng

 

 

ID

IDC_EDIT4

IDC_EDIT5

IDC_EDIT6

 

 

º¯¼öÀ̸§

m_no1

m_kor1

m_eng1

 

¾Æ·¡ ´ëÈ­»óÀÚ ÆíÁý±â¿¡¼­ ¡°Button¡±À» ¼±ÅÃÇÏ¿© 2°³ÀÇ ¹öÆ°À» ¸¸µç´Ù.

»ý¼ºµÈ ¹öÆ°ÀÇ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» ´­·¯ ¡°¼Ó¼º¡±Ã¢¿¡¼­ ¡°Caption¡±À» ¡°ÀԷ¡±°ú ¡°Ã£±â¡±·Î ¼öÁ¤ÇÑ´Ù.

¡°ÀԷ¡±°¡ ¡°Ã£±â¡± ¹öÆ°À» ¸¶¿ì½º ¿ÞÂÊ Å°·Î ´õºí Å©¸¯ÇÏ¸é ¡°OnBnClickedButton1()¡±, ¡°OnBnClickedButton2()¡±ÀÇ ½ÇÇà ÇÔ¼ö°¡ ¸¸µé¾î Áø´Ù.

 

 

¾Æ·¡ ±×¸²°ú °°ÀÌ »õ·Î¿î Ŭ·¡½º¸¦ ¸¸µç´Ù.

¾Æ·¡ ±×¸²°ú °°ÀÌ µ¥ÀÌÅÍ ÀúÀåÀ» À§ÇÑ ¡°CData¡± Ŭ·¡½º¸¦ ¸¸µç´Ù. ±×¸®°í Base class ¡°CObeject¡±·Î ÇؾßÇϳª ¿©±â¿¡´Â ¼±ÅÃÇ×ÀÌ ¾øÀ¸¹Ç·Î ÀÓÀÇ·Î ¾Æ¹«°ÍÀ̳ª ¼±ÅÃÀ» ÇÑ ÈÄ¿¡ ³ªÁß¿¡ ¼öÁ¤À» Çϵµ·Ï ÇÑ´Ù.

Ŭ·¡½º°¡ »ý¼ºµÈ ÈÄ¿¡ ¡°Data.h¡±¸¦ ¿­¾î¼­ ¡°class CData : public CDataPathProperty¡±¿¡¼­ ¡°class CData : public CObject¡±·Î ¼öÁ¤ÇÑ´Ù.

¸¦ ¼±ÅÃÇÏ¿© int ÇüÅ·Πno, kor, eng, sumÀ» ¼±¾ðÇÏ°í float·Î ave¸¦ ¼±¾ðÇÑ´Ù.

CData Ŭ·¡½º¿¡ ÇÔ¼ö¸¦ Ãß°¡ÇØ¾ß Çϴµ¥ ÀÌ´Â Á÷Á¢ ¼ÕÀ¸·Î Ãß°¡ ÇÏ´Â °ÍÀ¸·Î ÇÑ´Ù.

 

 

 

 

#if !defined(AFX_DATA_H__752B62B0_58FE_44DA_9A0B_8098639D3772__INCLUDED_)

#define AFX_DATA_H__752B62B0_58FE_44DA_9A0B_8098639D3772__INCLUDED_

 

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

// Data.h : header file

//

 

/////////////////////////////////////////////////////////////////////////////

// CData command target

 

class CData : public CObject //(1) Base Class "CDataPathProperty"¸¦ ¹Ù²Û´Ù.

{

// Attributes

public:

 

// Operations

public:

        CData();                                                

        CData(CData& data);             //(1) ¼±¾ð Ãß°¡

        CData& operator=(CData& data);   //(2) ¼±¾ð Ãß°¡

        virtual ~CData();

 

// Overrides

public:

        //CData(CData& data);

        float ave;

        int sum;

        int eng;

        int kor;

        int no;

        // ClassWizard generated virtual function overrides

        //{{AFX_VIRTUAL(CData)

        //}}AFX_VIRTUAL

 

        // Generated message map functions

        //{{AFX_MSG(CData)

                // NOTE - the ClassWizard will add and remove member functions here.

        //}}AFX_MSG

 

// Implementation

protected:

};

 

/////////////////////////////////////////////////////////////////////////////

 

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

 

#endif // !defined(AFX_DATA_H__752B62B0_58FE_44DA_9A0B_8098639D3772__INCLUDED_)

 

 

 

 

 

 

// Data.cpp : implementation file

//

 

#include "stdafx.h"

#include "TableClass.h"

#include "Data.h"

 

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

 

/////////////////////////////////////////////////////////////////////////////

// CData

 

CData::CData()

{

}

 

CData::CData(CData &data)

{

        no = data.no;

        kor = data.kor;

        eng = data.eng;

        sum = data.kor + data.eng;

        ave = (float)sum/2.;

}

 

CData& CData::operator =(CData &data)

{

        if (this == &data) return *this;

        no = data.no;

        kor = data.kor;

        eng = data.eng;

        sum = data.kor + data.eng;

        ave = (float)sum/2.;

        return *this;

}

 

CData::~CData()

{

}

 

 

// Do not edit the following lines, which are needed by ClassWizard.

#if 0

BEGIN_MESSAGE_MAP(CData, CDataPathProperty)

        //{{AFX_MSG_MAP(CData)

        //}}AFX_MSG_MAP

END_MESSAGE_MAP()

#endif  // 0

 

/////////////////////////////////////////////////////////////////////////////

// CData member functions

 

 

 

µ¥ÀÌÅ͸¦ Ãß°¡ÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ Å¬·¡½º¸¦ Ãß°¡ÇÏ¸é µÈ´Ù.

 

 

void CTableClassDlg::OnButton1()

{

        CData pData;

 

        UpdateData(TRUE);

        pData.no = m_no;

        pData.kor = m_kor;

        pData.eng = m_eng;

        m_listData.AddTail(pData);

}

 

 

 

 

µ¥ÀÌÅÍ°¡ ÀúÀåµÈ Ŭ·¡½ºÀÇ Ã³À½ºÎÅÍ °Ë»öÇÏ¿© ÀÔ·Â ¹øÈ£¿Í ÀÏÄ¡Çϸé Ŭ·¡½º¸¦ ¸®ÅÏÇÑ´Ù.

 

 

CData CTableClassDlg::FindMan(int no)

{

        CData pData;

        POSITION pos,posL;

 

        for(pos=m_listData.GetHeadPosition(); pos != NULL;) {

                pData = m_listData.GetNext(pos);

                if(pData.no == no)

                        return pData;

        }

        pData.no = 0;

        return pData;

}

 

½ÇÇàÇÏ¸é ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÏ°í ã±â¸¦ ÇÒ ¼ö ÀÖ´Ù.

ÀÌÁ¦ Å×À̺íÀ» ¸¸µé¾î Àüü µ¥ÀÌÅ͸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µéÀÚ.

¾Æ·¡¿Í °°ÀÌ ¡°List Control¡±À» ¼±ÅÃÇÏ¿© Properties¿¡¼­ ¾Æ·¡¿Í °°ÀÌ ¼±ÅÃÇÑ´Ù.

Å×À̺íÀ» ¼±ÅÃÇÏ¿© ¿À¸¥ÂÊ ¸¶¿ì½º¸¦ Ŭ¸¯ÇÏ¿© ClassWizard¸¦ ¼±ÅÃÇÏ¿© º¯¼ö À̸§À» ¾Æ·¡¿Í °°ÀÌ ¡°m_ctrlList¡±·Î Á¤ÀÇ ÇÑ´Ù.

 

Å×À̺íÀº ¡°InitTabel¡± ÇÔ¼ö¸¦ ¸¸µé¾î ¡°¹øÈ£¡±, ¡°±¹¾î¡±, ¡°¿µ¾î¡±, ¡°Çհ衱, ¡°Æò±Õ¡±À» ±â·ÏÇϱâ À§ÇÑ Ä÷³À» ÃʱâÈ­ ÇÑ´Ù. ±×¸®°í ¡°ListWrite¡± ÇÔ¼ö¸¦ ¸¸µé¾î ÇлýµéÀÇ ¼ºÀûÀ» Ç¥½ÃÇÑ´Ù.

Ŭ·¡ºä¿¡¼­ ÇÔ¼ö Ãß°¡¸¦ ¼±ÅÃÇÏ¿©

 

Å×ÀÌºí¿¡ ¼ºÀûÀ» ³ª¿­Çϱâ À§ÇØ 5°³ÀÇ Ä÷³À» Ãß°¡ÇÑ´Ù. ±×¸®°í ÀÌ ÇÔ¼ö¸¦ ´ÙÀ̾î·Î±× ¹Ú½º°¡ »ý±æ ¶§ ½ÇÇàµÇ´Â ¡°OnInitDialog()¡±¿¡ Ãß°¡ÇÑ´Ù.

 

µ¥ÀÌÅ͸¦ Å×ÀÌºí¿¡ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µç´Ù. ±×¸®°í ÀÌ ÇÔ¼ö°¡ ¡°ÀԷ¡± ¹öÆ°À» ´©¸£¸é ½ÇÇàÇÏ°Ô ÇÑ´Ù.

 

 

 

 

// TableClassDlg.h : header file

//

 

#if !defined(AFX_TABLECLASSDLG_H__0412ECCC_9AE5_41EC_A207_1C55687CA6EC__INCLUDED_)

#define AFX_TABLECLASSDLG_H__0412ECCC_9AE5_41EC_A207_1C55687CA6EC__INCLUDED_

 

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

 

/////////////////////////////////////////////////////////////////////////////

// CTableClassDlg dialog

#include "Data.h"       // (1) Data¸¦ À§ÇÑ ÆÄÀÏ Ãß°¡

#include "afxtempl.h"   // (1) Data¸¦ À§ÇÑ ÆÄÀÏ Ãß°¡

class CTableClassDlg : public CDialog

{

// Construction

public:

        void ListWrite();

        void InitTable();

        CData FindMan(int no);

        CList <CData, CData&> m_listData;        // µ¥ÀÌÅÍ ÀúÀåÀ» À§ÇÑ ¼±¾ð

        CTableClassDlg(CWnd* pParent = NULL);    // standard constructor

 

// Dialog Data

        //{{AFX_DATA(CTableClassDlg)

        enum { IDD = IDD_TABLECLASS_DIALOG };

        CListCtrl       m_ctrlList;

        int             m_no;

        int             m_kor;

        int             m_eng;

        int             m_no1;

        int             m_kor1;

        int             m_eng1;

        //}}AFX_DATA

 

        // ClassWizard generated virtual function overrides

        //{{AFX_VIRTUAL(CTableClassDlg)

        protected:

        virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

        //}}AFX_VIRTUAL

 

// Implementation

protected:

        HICON m_hIcon;

 

        // Generated message map functions

        //{{AFX_MSG(CTableClassDlg)

        virtual BOOL OnInitDialog();

        afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

        afx_msg void OnPaint();

        afx_msg HCURSOR OnQueryDragIcon();

        afx_msg void OnButton1();

        afx_msg void OnButton2();

        //}}AFX_MSG

        DECLARE_MESSAGE_MAP()

};

 

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

 

#endif // !defined(AFX_TABLECLASSDLG_H__0412ECCC_9AE5_41EC_A207_1C55687CA6EC__INCLUDED_)

 

 

 

 

 

 

 

BOOL CTableClassDlg::OnInitDialog()

{

        CDialog::OnInitDialog();

 

        // Add "About..." menu item to system menu.

 

        // IDM_ABOUTBOX must be in the system command range.

        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

        ASSERT(IDM_ABOUTBOX < 0xF000);

 

        CMenu* pSysMenu = GetSystemMenu(FALSE);

        if (pSysMenu != NULL)

        {

                CString strAboutMenu;

                strAboutMenu.LoadString(IDS_ABOUTBOX);

                if (!strAboutMenu.IsEmpty())

                {

                        pSysMenu->AppendMenu(MF_SEPARATOR);

                        pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

                }

        }

 

        // Set the icon for this dialog.  The framework does this automatically

        //  when the application's main window is not a dialog

        SetIcon(m_hIcon, TRUE);                  // Set big icon

        SetIcon(m_hIcon, FALSE);         // Set small icon

       

        // TODO: Add extra initialization here

        InitTable();

        return TRUE;  // return TRUE  unless you set the focus to a control

}

void CTableClassDlg::OnButton1()

{

        CData pData;

 

        UpdateData(TRUE);

        pData.no = m_no;

        pData.kor = m_kor;

        pData.eng = m_eng;

        m_listData.AddTail(pData);

        ListWrite();

}

 

void CTableClassDlg::OnButton2()

{

        CData pData,pData1;

 

        UpdateData(TRUE);

        pData = FindMan((int)m_no1);

        m_kor1 = pData.kor;

        m_eng1 = pData.eng;

        UpdateData(FALSE);

}

 

CData CTableClassDlg::FindMan(int no)

{

        CData pData;

        POSITION pos,posL;

 

        for(pos=m_listData.GetHeadPosition(); pos != NULL;) {

                pData = m_listData.GetNext(pos);

                if(pData.no == no)

                        return pData;

        }

        pData.no = 0;

        return pData;

}

 

void CTableClassDlg::InitTable()

{

        // Ä÷³¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â ±¸Á¶Ã¼

        LV_COLUMN lvcolumn;

 

        // ¼³Á¤ÇÒ Ç׸ñµéÀ» ¸í½ÃÇÔ

        lvcolumn.mask = LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;

 

        // Ä÷³ Çì´õ¸¦ Áß¾Ó¿¡ Ãâ·ÂÇϵµ·Ï ÇÔ

        lvcolumn.fmt = LVCFMT_CENTER;

 

        for(int i = 0 ; i < 5 ; i++ )

        {

                lvcolumn.iSubItem = i;

                switch(i)

                {

                case 0: // ù¹ø° Ä÷³ Á¤º¸ ¼³Á¤

                        lvcolumn.cx = 50;

                        lvcolumn.pszText = "¹øÈ£";

                        break;

                case 1: // µÎ¹ø° Ä÷³ Á¤º¸ ¼³Á¤

                        lvcolumn.cx = 50;

                        lvcolumn.pszText = "±¹¾î";

                        break;

                case 2: // ¼¼¹ø° Ä÷³ Á¤º¸ ¼³Á¤

                        lvcolumn.cx = 50;

                        lvcolumn.pszText = "¿µ¾î";

                        break;

                case 3: // ³×¹ø° Ä÷³ Á¤º¸ ¼³Á¤

                        lvcolumn.cx = 50;

                        lvcolumn.pszText = "ÇÕ°è";

                        break;

                case 4: // ´Ù¼¸¹ø° Ä÷³ Á¤º¸ ¼³Á¤

                        lvcolumn.cx = 50;

                        lvcolumn.pszText = "Æò±Õ";

                        break;

                }

                m_ctrlList.InsertColumn(i, &lvcolumn);   // Ä÷³ Ãß°¡

        }

}

 

void CTableClassDlg::ListWrite()

{

        m_ctrlList.DeleteAllItems( );    // ¸®½ºÆ®¿¡ ÀÖ´Â °ÍÀ» ¸ðµÎ Áö¿î´Ù.

        // ±âÁ¸ ÆÄÀÏÀ» ¿­¾úÀ» ¶§ Å×À̺í ÀÛ¼º

 

        LV_ITEM lvitem;

        lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;

        lvitem.iSubItem = 0;

        lvitem.iImage = 2;

        lvitem.stateMask = LVIS_STATEIMAGEMASK;

        lvitem.state = INDEXTOSTATEIMAGEMASK(1);

        lvitem.pszText = "";

 

        CData pData;

        POSITION pos,posL;

        CString strIms;

       

        for(pos=m_listData.GetHeadPosition(); pos != NULL;) {

                pData = m_listData.GetNext(pos);

 

                lvitem.iItem = m_ctrlList.GetItemCount();

                m_ctrlList.InsertItem(&lvitem);

 

                strIms.Empty();

                strIms.Format("%d",pData.no);

                m_ctrlList.SetItemText(lvitem.iItem, 0, strIms);

 

                strIms.Empty();

                strIms.Format("%d",pData.kor);

                m_ctrlList.SetItemText(lvitem.iItem, 1, strIms);

 

                strIms.Empty();

                strIms.Format("%d",pData.eng);

                m_ctrlList.SetItemText(lvitem.iItem, 2, strIms);

 

                strIms.Empty();

                strIms.Format("%d",pData.sum);

                m_ctrlList.SetItemText(lvitem.iItem, 3, strIms);

 

                strIms.Empty();

                strIms.Format("%f",pData.ave);

                m_ctrlList.SetItemText(lvitem.iItem, 4, strIms);

        }

}

 

 

ÀÌÁ¦ ÇÁ·Î±×·¥À» ½ÇÇàÇϸé ÇнÀ¸ñÇ¥¿Í °°Àº ´ÙÀ̾î·Î±× âÀÌ ³ªÅ¸³­´Ù.

 

 

°ú    Á¦

 

Áß¿äÇÔ¼ö

óÀ½