This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
class:os2014f:hw4 [2014/10/02 23:12] mhshin |
class:os2014f:hw4 [2025/10/13 12:45] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| 홈페이지에 있는 class1002.cpp 파일은 Time이라는 클래스를 선언, 정의하고 사용하는 예를 보여주고 있다. 이번 숙제에서는 이 Time 클래스의 기능을 확장하고 보완하는 것이 목적이다. 현재 Time 클래스는 내부적으로 시, 분, 초 정보를 저장하고 있고, 외부적으로는 생성자와 getter/setter, 그리고 + 오퍼레이터를 구현하고 있다. class1002.cpp 파일을 기반으로 하여 Time클래스에 아래와 같은 기능을 추가 및 보완하여라. | 홈페이지에 있는 class1002.cpp 파일은 Time이라는 클래스를 선언, 정의하고 사용하는 예를 보여주고 있다. 이번 숙제에서는 이 Time 클래스의 기능을 확장하고 보완하는 것이 목적이다. 현재 Time 클래스는 내부적으로 시, 분, 초 정보를 저장하고 있고, 외부적으로는 생성자와 getter/setter, 그리고 + 오퍼레이터를 구현하고 있다. class1002.cpp 파일을 기반으로 하여 Time클래스에 아래와 같은 기능을 추가 및 보완하여라. | ||
| - | - 생성자 Time( int hour, int min, int sec )가 불리면 주어진 값을 저장하기 이전에 hour, min, sec 의 범위를 체크하고, 범위에 맞지 않을 때에는 "Hour is not in [0, 23]", "Min is not in [0, 59]", "Sec is not in [0, 59]"를 출력하고, 범위가 벗어난 값 대신에 -1을 저장한다. | + | - 생성자 Time( int hour, int min, int sec )가 불리면 주어진 값을 저장하기 이전에 hour, min, sec 의 범위를 체크하고, 범위에 맞지 않을 때에는 범위가 벗어난 값 대신에 -1을 저장한다. |
| - 예: Time(3, 100, 20) ==> h=3, m=-1, s=20 | - 예: Time(3, 100, 20) ==> h=3, m=-1, s=20 | ||
| - | - 새로운 생성자 Time( int sec )을 추가하여라. 그리고 주어진 sec 값이 음수면 "Sec is negative" 를 출력하고 프로그램을 종료한다. 만약 sec 값이 60 이상이면 이를 시, 분, 초로 다시 계산해서 h, m, s값을 설정하도록 한다. 예를 들어서 sec=3700 이면 h=1, m=1, s=40 으로 설정한다. | + | - 새로운 생성자 Time( int sec )을 추가하여라. 그리고 주어진 sec 값이 음수면 s=-1. 만약 sec 값이 60 이상이면 이를 시, 분, 초로 다시 계산해서 h, m, s값을 설정하도록 한다. 단, h가 24 이상이면 24로 나눈 나머지만 취한다. 예를 들어서 sec=3700 이면 h=1, m=1, s=40 으로 설정한다. |
| - operator + 를 다음과 같이 수정한다. 두 Time의 s, m, h 값을 각각 더한 후에도 s와 m이 0에서 59 사이에 있도록 값을 자동으로 조절한다. 단, h 값은 이 경우 24 이상이면 24로 나눈 나머지 값을 취한다. | - operator + 를 다음과 같이 수정한다. 두 Time의 s, m, h 값을 각각 더한 후에도 s와 m이 0에서 59 사이에 있도록 값을 자동으로 조절한다. 단, h 값은 이 경우 24 이상이면 24로 나눈 나머지 값을 취한다. | ||
| - 예: Time(3, 30, 30) + Time(5, 40, 40) == Time( 9, 11, 10 ) | - 예: Time(3, 30, 30) + Time(5, 40, 40) == Time( 9, 11, 10 ) | ||