~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";
}