Skip to content

Commit edccd9b

Browse files
committed
added setters, getters and formatting
1 parent 3817241 commit edccd9b

File tree

1 file changed

+52
-2
lines changed

1 file changed

+52
-2
lines changed

Variants/Lab_12/var_11/main.cpp

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,30 @@
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+
822
class 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

2575
int 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

Comments
 (0)