
Лабораторные работы / лабы ооп / ооп5
.docxФедеральное государственное автономное образовательное учреждение высшего образования
«ОМСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра Информатика и вычислительная техника
Лабораторная работа ООП №5
по дисциплине «Программирование»
на тему:
«ДРУЖЕСТВЕННЫЕ ФУНКЦИИ»
Выполнил ст.гр. ИВТ-234
Шкутова А.В.
Проверила
Дорошенко М.С
Омск 2024
Определить класс "время": часы, минуты, секунды. Написать член-функцию печатающую время, и дружественную функцию наращивания времени на t секунд.
#include <iostream>
using namespace std;
class Time {
private:
int hours;
int minutes;
int seconds;
public:
Time(int h, int m, int s) : hours(h), minutes(m), seconds(s) {}
void printTime() {
cout << "Текущее время: " << hours << ":" << minutes << ":" << seconds << endl;
}
friend void incrementTime(Time& t, int secondsToAdd);
};
void incrementTime(Time& t, int secondsToAdd) {
t.seconds += secondsToAdd; // Прибавление секунд к текущему времени
t.minutes += t.seconds / 60; // Пересчет минут при необходимости
t.seconds %= 60; // Оставшиеся секунды после пересчета
t.hours += t.minutes / 60; // Пересчет часов при необходимости
t.minutes %= 60; // Оставшиеся минуты после пересчета
t.hours %= 24; // Оставшиеся часы после пересчета
}
int main() {
setlocale(LC_ALL, "RUS");
int secondsToAdd;
cout << "Введите количество секунд для наращивания времени: ";
cin >> secondsToAdd;
Time currentTime(10, 30, 45);
currentTime.printTime(); // Вывод текущего времени
incrementTime(currentTime, secondsToAdd); // Наращивание времени на указанное количество секунд
currentTime.printTime(); // Вывод обновленного времени
return 0;
}