1. 문제

 

2. 날짜를 다루는 Date 클래스를 작성하고자 한다. Date를 이용하는 main()과 실행 결과는 다음과 같다. 클래스 Date를 작성하여 아래 프로그램에 추가하라.

 

 

2. 결과

 

 

3. 코드

 

#include <iostream>
using namespace std;

class Date {
	int year, month, day;
public :
	Date(int y, int m, int d) { year = y; month = m; day = d; }
	Date( char *nal ) ;
	void show() { cout << year << "년" << month << "월" << day << "일" << endl; }
	int getYear() { return year; }
	int getMonth() { return month; }
	int getDay() { return day; }
};
Date::Date( char *nal) {
	char a[20];
	for(int i=0; i< strlen(nal); i++)
		a[i] = *(nal+i);
	year = atoi( strtok( a, "/" ) );
	month = atoi( strtok( NULL, "/" ) );
	day = atoi( strtok( NULL, "" ) );
}

int main() {
	Date birth(2014, 3, 20);
	Date independenceDay("1945/8/15");
	independenceDay.show();
	cout << birth.getYear() << ',' << birth.getMonth() << ',' << birth.getDay() << endl;
}

 

4. 설명

 

Date생성자를 Date( int y, int m, int d)로 각각 년, 월, 일을 입력받는 생성자와, Date( char *nal)로 하나의 문자열로 입력받는 생성자 2개를 만듭니다.

매개변수로 문자열을 입력받는 생성자는 strtok();함수를 사용하여서 "/"을 기준으로 나눈다음 atoi()함수를 사용하여서 int형으로 바꾸어 클래스 멤버 변수인 year, month, day에 각각 저장합니다.

 

그 외 년, 월, 일을 출력해주는 void show(); 멤버함수

각각 년, 월, 일을 return해주는 getYear(); getMonth(); getDay(); 멤버 함수를 만들어 줍니다.

 

+ Recent posts