This is an old revision of the document!


Student 클래스를 다음과 같이 정의하여라.

  • Student 클래스는 다음과 같은 private 데이터를 저장할 수 있다.
    1. 성 (last name), string type
    2. 이름 (first name), string type
    3. 학년, integer type
    4. 수강과목 리스트, vector(string) type
  • Student 클래스는 다음과 같은 public 함수를 제공한다.
    1. 생성자는 다음을 인자로 받는다.
      1. 성(string), 이름(string)
      2. 이 생성자가 불리면 학년을 1로 초기화 한다. 수강과목은 없음.
    2. string get_name(): 성+빈칸+이름을 string으로 리턴한다. 예: Shin Minho
    3. int get_year(): 학년을 리턴한다
    4. void promote(): 학년을 하나 증가한다. 단, 현재 4학년이면 0으로 설정한다.
    5. bool graduated(): 학년이 0이면 참을 리턴한다. 그 외는 거짓.
    6. void enroll(string classname): 주어진 이름의 수업을 수강한다.
  • Student 클래스는 다음과 같은 main()함수를 실행했을 때 모두 패스해야 한다.
#define check( s, a, b ) { \
    if( a != b ) { \
        cout << "## FAIL (" << s << "): " << a << " != " << b << endl; \
        exit(1); \
    } \
    cout << "## PASS (" << s << "): " <<  a << endl; \
    }
    
int main() {
    Student s1( "Kim", "Soochul" );
    check( s1.get_year(), 1 );
    check( s1.get_name(), "Kim Soochul" );
    s1.promote();
    check( s1.get_year(), 2 );
    check( s1.graduated(), false );
    s1.enroll( "C++" );
    s1.enroll( "Java" );
    vector<string> classes = s1.get_classes();
    check( classes[0], "C++" );
    check( classes[1], "Java" );
    s1.promote();
    s1.promote();
    s1.promote();
    check( s1.graduated(), true );
}
 
class/os2014f/hw5.1412874514.txt.gz · Last modified: 2025/10/13 13:00 (external edit) · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki