22// Time(), Time(int hour), Time(int hour, int min),
33// Time(int h, int m, int s) и Time(char *time)
44
5+ // ! Спросить у Линского, нужно ли перегружать операторы?
6+
7+ // Используйте приватные поля для данных
8+ // Реализуйте конструктор, который должен устанавливать значения по умолчанию
9+ // Реализуйте методы для чтения и записи значений полей (set, get)
10+ // Реализуйте операторы ввода и вывода (перегрузка operator<< и operator>> не требуется)
11+ // Если требуется, напишите конструктор копий, оператор присваивания и деструктор
12+ // Напишите программу для тестирования вашего класса
13+
14+ // TODO:
15+ // добавить проверку на корректность данных
16+
517#include < stdio.h>
618#include < stdlib.h>
719
20+ using namespace std ;
21+
822class Time {
923 private:
1024 int _hour, _minute, _second;
1125
1226 public:
27+ // конструкторы
28+
1329 Time (int hour = 0 , int minute = 0 , int second = 0 ):
1430 _hour (hour), _minute(minute), _second(second) {
1531 printf (" %d : %d : %d\n " , _hour, _minute, _second); // ? test
@@ -18,12 +34,46 @@ class Time {
1834 Time (const char *time):
1935 _hour (0 ), _minute(0 ), _second(0 ) {
2036 sscanf (time, " %d:%d:%d" , &_hour, &_minute, &_second);
21- printf (" %d : %d : %d\n " , _hour, _minute, _second); // ? test
37+ printf (" %02d:%02d:%02d\n " , _hour, _minute, _second); // ? test
38+ }
39+
40+ // сеттеры
41+
42+ void set_hour (int h) {
43+ _hour = h % 24 ;
44+ }
45+
46+ void set_minute (int m) {
47+ _minute = m % 60 ;
48+ }
49+
50+ void set_second (int s) {
51+ _second = s % 60 ;
52+ }
53+
54+ // геттеры
55+
56+ int get_hour () {
57+ return _hour;
58+ }
59+
60+ int get_minute () {
61+ return _minute;
62+ }
63+
64+ int get_second () {
65+ return _second;
66+ }
67+
68+ // вывод на экран
69+
70+ void print () {
71+ printf (" %02d:%02d:%02d" , _hour, _minute, _second);
2272 }
2373};
2474
2575int main () {
2676 Time test0 (6 , 18 );
27- Time test1 (" 16 :18:01" );
77+ Time test1 (" 6 :18:01" );
2878 Time test2 (" 16:18" );
2979}
0 commit comments