Вопрос задан 15.06.2023 в 20:09. Предмет Информатика. Спрашивает Козуб Денис.

Помогите решить на C++ Добавьте для класса Timer возможность сохранять начальное время и, в

случае, если оставшееся время на таймере - 0 секунд, то вместо вывода сообщения "Done!" восстановите начальное значение времени.Формат входных данныхВ первой строке входных данных вводятся 3 целых числа H, M и S - часы, минуты и секунды соответственно.Гарантируется, что данные верные.Во второй строке вводится натуральное число T - количество секунд, в течение которых время должно изменяться.Формат выходных данныхВыведите T строк в формате hh:mm:ss - время на таймере после каждой новой секунды.ПримечанияВ задачу необходимо отправить оба класса: Clock и Timer.входные данные выходные данные1 5 51701:05:5001:05:4901:05:4801:05:4701:05:4601:05:4501:05:4420 21 5420:21:0420:21:0320:21:0220:21:01 часть программыint main() { int h, m, s, t; cin >> h >> m >> s >> t; Timer c(h, m, s); Clock anticheat(h, m, s); //Проверка, что описаны оба класса for (int i = 0; i < t; i++) { c.tic(); c.print(); } return 0;}
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Вейбер Анжелика.

#include <iostream>

#include<string>

using namespace std;

class Clock {

protected:

int hours;

int minutes;

int secounds;

public:

Clock(int _hours = 0, int _minutes = 0, int _secounds = 0) :

 hours(_hours), minutes(_minutes), secounds(_secounds) {}

void tic() {

 secounds++;

}

void print() {

 int sum = hours * 60 * 60 + minutes * 60 + secounds;

 cout << (sum / 3600 < 10 ? "0" : "") << sum / 3600 <<":";

 cout << (sum % 3600 / 60 < 10 ? "0" : "") << sum % 3600 / 60 << ":";

 cout << (sum % 3600 % 60 < 10 ? "0" : "")<< sum % 3600 % 60 << endl;

}

};

class Timer : public Clock {

public:

Timer(int _hours = 0, int _minutes = 0, int _secounds = 0) : Clock(_hours, _minutes, _secounds) {}

int save_hours = hours;

int save_minutes = minutes;

int save_secounds = secounds;

void tic() {

 int sum = hours * 60 * 60 + minutes * 60 + secounds;

 if (sum == 0) { hours = save_hours; minutes = save_minutes; secounds = save_secounds-1;}

 else secounds--;

}

};

int main() {

   int h, m, s, t;

   cin >> h >> m >> s >> t;

   Timer c(h, m, s);

   Clock anticheat(h, m, s); //Проверка, что описаны оба класса

   for (int i = 0; i < t; i++) {

       c.tic();

       c.print();

   }

   return 0;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Класс Timer:

```cpp #include using namespace std;

class Timer { int initial_h, initial_m, initial_s; int current_h, current_m, current_s; public: Timer(int h, int m, int s) { initial_h = h; initial_m = m; initial_s = s; current_h = h; current_m = m; current_s = s; }

void tic() { if (current_s > 0) { current_s--; } else { if (current_m > 0) { current_m--; current_s = 59; } else { if (current_h > 0) { current_h--; current_m = 59; current_s = 59; } } } }

void print() { if (current_h == 0 && current_m == 0 && current_s == 0) { cout << initial_h << ":" << initial_m << ":" << initial_s << endl; current_h = initial_h; current_m = initial_m; current_s = initial_s; } else { cout << current_h << ":" << current_m << ":" << current_s << endl; } } }; ```

Класс Clock:

```cpp class Clock { int h, m, s; public: Clock(int h, int m, int s) { this->h = h; this->m = m; this->s = s; } }; ```

Функция main:

```cpp int main() { int h, m, s, t; cin >> h >> m >> s >> t; Timer c(h, m, s); Clock anticheat(h, m, s); for (int i = 0; i < t; i++) { c.tic(); c.print(); } return 0; } ```

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос