26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
1

Класс «Время», вычислить разницу в секундах между двумя объектами типа «Время»

20.11.2018, 15:56. Показов 2919. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нужно написать задачку на C++ в приложении с оконным интерфейсом.

Класс «Время» имеет три поля – часы, минуты, секунды. Создать два конструктора класса, один из которых будет конструктором по умолчанию и инициализировать поля нулевыми значениями. Создайте метод класса, который будет выводить значения полей на экран в произвольном формате. Создайте метод класса, который будет вычислять разницу в секундах между двумя объектами типа «Время», которые будут передаваться ему в виде аргументов. Разработать программу, демонстрирующую работу с объектами этого класса.

Может быть кто-нибудь делал похожую задачку или знает как это решать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2018, 15:56
Ответы с готовыми решениями:

Класс «Время», вычислить разницу в секундах между двумя объектами типа «Время»
Здравствуйте. Нужно написать задачку на C++ в приложении с оконным интерфейсом. Класс «Время»...

Класс «Время», вычислить разницу в секундах между двумя объектами типа «Время»
Здравствуйте. Нужно написать задачку на C++ в приложении с оконным интерфейсом. Класс «Время»...

Дано время N в секундах. Выразить это время в сутках, часах, минутах и секундах.
Дано время N в секундах. Выразить это время в сутках, часах, минутах и секундах. Можете помочь...

Как измерить разницу в секундах между двумя значениями времени?
привет. Мне нужно замерить время работы программы, используются объекты класса...

6
22 / 16 / 6
Регистрация: 13.11.2016
Сообщений: 24
20.11.2018, 17:07 2
Лучший ответ Сообщение было отмечено Komputershik как решение

Решение

Отвечал на похожий вопрос Реализовать класс «дата», содержащий информацию о годе, месяце, числе, часе, минуте, секунде, в целом у вас похожи, но там я не делал проверку.
Вот код для вас, если что-то не понятно спрашивайте, так же если никакая защита не нужна то удалите везде функцию check
Заголовок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef DATA_H
#define DATA_H
#include<cmath>
#include<iostream>
using std::cout;
using std::endl;
class Data
{
public:
    Data() :hours(0), mins(0), second(0) {}
    Data(int h, int m, int s) :hours(h), mins(m), second(s) 
    {
        check();
    }
    friend int difference(const Data& dt, const Data& dt2)
    {
        int sec =  (dt.hours * 3600 + dt.mins * 60) + dt.second;
        int sec2 = (dt2.hours * 3600 + dt2.mins * 60) + dt2.second;
        return abs(sec - sec2);
    }
    void show() const;
private:
    int hours;
    int mins;
    int second;
    void check()
    {
        
            while (hours > 24 || hours < 0)
            {
                cout << "Неверный ввод времени(часы) введите еще раз: ";
                    std::cin >> hours;
            }
            while (mins > 60 || mins < 0)
            {
                cout << "Неверный ввод времени(минуты) введите еще раз: ";
                std::cin >> mins;
            }
            while (second > 60 || second < 0)
            {
                cout << "Неверный ввод времени(секунды) введите еще раз: ";
                std::cin >> second;
            }
 
    }
};
#endif // DATA_H
main файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include"Header.h"
#include<iostream>
 
using std::cout;
using std::cin;
 
 
void Data::show() const
{
    cout << "Нынешнее время:" << ((hours < 10) ? "0" : "") << hours << ":" << ((mins < 10) ? "0" : "") << mins << ":" << ((second < 10) ? "0" : "") << second<<'\n';
}
 
 
int main()
{
    setlocale(LC_ALL, "Rus");
    Data time1(10, 12, 40);
    time1.show();
    cout << std::endl;
    Data time2(12, 12, 90);
    time2.show();
    cout <<"Различие в секундах составляет "<<difference(time1,time2);
    return 0;
}
1
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
20.11.2018, 17:37  [ТС] 3
Mr_Klim, большое спасибо, сейчас попробую.

Добавлено через 4 минуты
Mr_Klim, если это вас не затруднит, не могли бы вы скинуть это проектом? У меня почему-то в среде Visual проблемы с созданием оконного приложения. Был бы очень благодарен
0
22 / 16 / 6
Регистрация: 13.11.2016
Сообщений: 24
20.11.2018, 17:50 4
Komputershik,Хотя походу я только сейчас заметил. что вам нужно именно оконное приложение,а у меня консольное. Или это пойдет вам?
Вложения
Тип файла: rar Cyberforumpr.rar (5.62 Мб, 7 просмотров)
1
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
20.11.2018, 18:02  [ТС] 5
Mr_Klim, неа, мне оконное нужно
0
22 / 16 / 6
Регистрация: 13.11.2016
Сообщений: 24
20.11.2018, 18:07 6
Komputershik, Тогда вам скорее всего в другой раздел, что-то типо WINAPI или же C++Qt.
1
26 / 1 / 1
Регистрация: 18.03.2018
Сообщений: 278
20.11.2018, 19:17  [ТС] 7
Mr_Klim, окей, тем не менее спасибо за помощь
0
20.11.2018, 19:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2018, 19:17
Помогаю со студенческими работами здесь

Вычислить время между двумя датами в цикле
Доброе время суток! Нужна помощь! Есть два списка, нужно получить итоговый список в котором разница...

Вычислить время выполнения между двумя точками программы
Перепробовал все что логически можно с библиотекой time: 1) в этом случае t получается 0, фз...

Как проще всего вычислить разницу между TDateTime (в секундах)?
Господа, гении программирования! Как проще всего вычислить разницу между T1 и T2 : TDateTime (в...

Функция, возвращающая время в часах и минутах на основе параметра - время в секундах
Создайте функцию, которая возвращает время в часах и минутах на основе параметра - время в секундах.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru