== 컴퓨터 실습시간.. ^^ == {{{~cpp ê°ì²´ì™€ í´ëž˜ìФ (성ì 관리 프로그램) 성ì 관리하는 í”„ë¡œê·¸ëž¨ì„ í´ëž˜ìФ(class)를 ì´ìš©í•˜ì—¬ C++로 작성하여 본다. 1. í´ëž˜ìФ(Class) 설계 SungJuk Class Member 변수 ì´ë¦„ char[21] m_szName êµì–´ ì 수 int m_nKorean ì˜ì–´ ì 수 int m_nEnglish 수학 ì 수 int m_nMath ì´ì int m_nTotal í‰ê· int m_dAvg 등수 double m_nRank Member 함수 ìž…ë ¥í•¨ìˆ˜ void Input(char szName[],int nKorean, int nEnglish,int nMath); ì´ì 함수 int GetTotal(void); 등수 함수 int GetRank(void); 등수 ê¸°ë¡ í•¨ìˆ˜ void SetRank(int nRank); ê²°ê³¼ì¶œë ¥ 함수 void PrintResult(); 2. 컴파ì¼ëŸ¬ 세팅 (Compiler Setting) 1) Microsoft Visual Studio를 실행시킨다. 2) File->New를 ì„ íƒí•œë‹¤. 3) Tabì—서 Project를 ì„ íƒí•œë‹¤. 4) ListBoxì—서 Win32 Console Applicationì„ ì„ íƒí•œë‹¤. 5) Project ì´ë¦„ì„ ì‚½ìž…í•œë‹¤. 6) Location:ì— í”„ë¡œê·¸ëž¨ì„ ìž‘ì„±í• ê²½ë¡œë¥¼ ì§€ì •í•œë‹¤. 7) OK를 누른다. 8) An empty project를 ì„ íƒí•˜ê³ , Finish를 ì„ íƒí•œë‹¤. 9) File->New를 ì„ íƒí•œë‹¤. 10) Tabì—서 Files를 ì„ íƒí•œë‹¤. 11) C/C++ Header Fileì„ ì„ íƒí•œ 후, 오른쪽 File ì¹¸ì— "SungJuk.h"ë¼ê³ 기입한다. 12) OK ë²„íŠ¼ì„ ëˆ„ë¥¸ë‹¤. 13) 오른쪽 Project Workspace ì°½ì—서 Class View Tabì„ ì„ íƒí•œë‹¤. 14) Tree를 ëª¨ë‘ íŽ¼ì³ ë³´ë©´, SungJuk.h와 SungJuk.cppê°€ 존재한다.ê° Fileì„ ë°‘ì— ë³´ì—¬ì£¼ëŠ” Source를 작성한다. 15) Source ìž‘ì„±ì´ ë나면, F7ì„ ëˆŒëŸ¬ Compile한다. 16) Error를 ëª¨ë‘ ìž¡ì€ í›„, Ctrl+F5를 눌러 실행하여 본다. 3. ê²°ê³¼ 4. Source Code SungJuk.h class SungJuk { private: char m_szName[21]; int m_nKorean,m_nEnglish,m_nMath; int m_nTotal; int m_nRank; double m_dAvg; public: SungJuk(); void Input(char szName[],int nKorean,int nEnglish,int nMath); int GetTotal(void); int GetRank(void); void SetRank(int nRank); void PrintResult(); }; SungJuk.cpp #include "iostream.h" #include "string.h" #include "SungJuk.h" void main(void) { SungJuk sung[5]; sung[0].Input("Kim1",90,70,80); sung[1].Input("Lee1",100,90,80); sung[2].Input("Kim2",100,100,100); sung[3].Input("Lee2",80,70,100); sung[4].Input("Park",85,75,70); for(int i = 0;i < 5;i++) { sung[i].SetRank(i+1); } for(i = 0;i< 5;i++) { for(int j = 0;j < 5;j++) { if(sung[i].GetTotal() > sung[j].GetTotal()) { if(sung[i].GetRank() > sung[j].GetRank()) { int nTemp; nTemp = sung[i].GetRank(); sung[i].SetRank(sung[j].GetRank()); sung[j].SetRank(nTemp); } } } } for(i = 0;i < 5;i++) { sung[i].PrintResult(); } } SungJuk::SungJuk() { memset(m_szName,NULL,sizeof(char)*21); m_nKorean = 0; m_nEnglish = 0; m_nMath = 0; m_nTotal = 0; m_nRank = 0; m_dAvg = 0.0; } void SungJuk::Input(char szName[],int nKorean,int nEnglish,int nMath) { strcpy(m_szName,szName); m_nKorean = nKorean; m_nEnglish = nEnglish; m_nMath = nMath; m_nTotal = m_nKorean + m_nEnglish + m_nMath; m_dAvg = m_nTotal / 3; } int SungJuk::GetRank(void) { return m_nRank; } void SungJuk::SetRank(int nRank) { m_nRank = nRank; } int SungJuk::GetTotal(void) { return m_nTotal; } void SungJuk::PrintResult() { cout << "Rank : " << m_nRank; cout << "\tName : " << m_szName; cout << "\tKorean = " << m_nKorean; cout << "\tEnglish = " << m_nEnglish; cout << "\tMath = " << m_nMath; cout << "\tTotal = " << m_nTotal; cout << "\tAvg = " << m_dAvg; cout << "\n\n"; } }}}