Форум программистов, компьютерный форум CyberForum.ru

Написать класс Время (часы, минуты, секунды) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
milka495
2 / 2 / 0
Регистрация: 12.12.2013
Сообщений: 73
24.06.2014, 23:11     Написать класс Время (часы, минуты, секунды) #1
Написать класс Время(часы, минуты, секунды). Написать методы вывод введенного времени и подсчета интервала между двумя данными
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2014, 23:11     Написать класс Время (часы, минуты, секунды)
Посмотрите здесь:

C++ Как перевести секунды в часы, минуты и секунды
C++ Создать класс время с данными-членами часы, минуты, секунды
C++ Написать программу, которая бы по введенному номеру единицы измерения (1-секунды, 2-минуты, 3-часы, 4-сутки) и заданному временному интервалу печатала
C++ Класс для работы с секундомером (считать секунды до нажатия клавиши, результат переводить в минуты и часы)
Описать структуру «время» (часы, минуты, секунды). Определить функцию «следующая минута» C++
Написать функцию, получающую часы, минуты, секунды, и возвращающую сколько секунд прошло с полудня C++
C++ Часы, минуты, секунды - операция сложения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6413 / 4879 / 448
Регистрация: 14.02.2011
Сообщений: 16,176
24.06.2014, 23:14     Написать класс Время (часы, минуты, секунды) #2
Цитата Сообщение от milka495 Посмотреть сообщение
Написать класс Время
А зачем?
он и так есть
точнее не класс а функции для работы со временем
http://www.cplusplus.com/reference/ctime/
milka495
2 / 2 / 0
Регистрация: 12.12.2013
Сообщений: 73
24.06.2014, 23:15  [ТС]     Написать класс Время (часы, минуты, секунды) #3
Преподаватель требует именно класс.
ValeryS
Модератор
6413 / 4879 / 448
Регистрация: 14.02.2011
Сообщений: 16,176
24.06.2014, 23:18     Написать класс Время (часы, минуты, секунды) #4
открой ссылку, посмотри на функции и оберни все это в класс
а в MFC вообще есть класс CTime
milka495
2 / 2 / 0
Регистрация: 12.12.2013
Сообщений: 73
24.06.2014, 23:21  [ТС]     Написать класс Время (часы, минуты, секунды) #5
Эх, я совсем в этом не сильна. Ну ладно. И на этом спасибо)
NanoBreaker
 Аватар для NanoBreaker
23 / 23 / 7
Регистрация: 11.07.2013
Сообщений: 85
25.06.2014, 00:17     Написать класс Время (часы, минуты, секунды) #6
Класс сделал далеко не лучшим способом, но думаю сойдет.

Вот time.hpp

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
48
49
50
51
52
#include <cmath>
#include <iostream>
 
using namespace std;
 
class Time
{
public:
    int hours;
    int minutes;
    int seconds;
 
    //конструкторы 
    Time(int hours_, int minutes_, int seconds_) : hours(hours_), minutes(minutes_), seconds(seconds_) {};
    Time() : hours(0), minutes(0), seconds(0) {};
 
    //если не хочешь пользоваться конструктором, то можно иницилизировать время через функцию
    void initTime(int hours_, int minutes_, int seconds_)
    {
        hours = hours_;
        minutes = minutes_;
        seconds = seconds_;
    }
 
    //фукнция для вычисления разницы во времени, в секундах
    double diff(Time time_)
    {
        //переводим всё в секунды для простоты нахождения разницы
        int seconds_this = hours * 3600 + minutes * 60 + seconds;
        int seconds_input = time_.hours * 3600 + time_.minutes * 60 + time_.seconds;
 
        //от большего вычисляем меньшее
        if (seconds_this > seconds_input) return seconds_this - seconds_input;
        else return seconds_input - seconds_this;
    }
 
        //перегружаем оператор присвоения
    Time operator=(Time time)
    {
        hours = time.hours;
        minutes = time.minutes;
        seconds = time.seconds;
        return *this;
    }
 
    //перегружаем оператор вывода для нашего времени
    friend ostream& operator << (ostream& s, Time& time)
    {
        return cout << "Hours: " << time.hours << " Minutes: " << time.minutes << " Seconds: " << time.seconds;
    }
 
};
И Main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include "time.hpp"
 
using namespace std;
 
int main(void)
{
    Time t1(11, 42, 0);
    Time t2(11, 0, 0);
 
    cout << "Raznita v secundah mejdu t1 i t2 = " << t1.diff(t2) << endl;
 
    system("PAUSE");
    return 0;
}
P.S. Разницу вывел в секундах, если тебе надо в стандарте (ч,м,с), то тогда поколдуй над "seconds_this - seconds_input"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2014, 00:21     Написать класс Время (часы, минуты, секунды)
Еще ссылки по теме:

C++ Функция, переводящая количество секунд в часы, минуты, секунды
C++ Перевод из секунд в часы, минуты, секунды
Определить класс Time, предусмотрев в нем компонентные данные: часы, минуты, секунды C++
C++ Преобразование double во время (char) год, месяц, день, часы секунды, минуты
C++ Перевод секунд в дни часы минуты секунды

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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
 Аватар для gray_fox
1246 / 1129 / 54
Регистрация: 21.04.2012
Сообщений: 2,354
Завершенные тесты: 3
25.06.2014, 00:21     Написать класс Время (часы, минуты, секунды) #7
как вариант
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
48
49
50
51
52
53
#include <iostream>
#include <cassert>
 
 
class time_type {
 
   typedef unsigned long int ul_t;
 
public:
   time_type(ul_t const hours, ul_t const minutes, ul_t const seconds) {
      assert(hours < 24);
      assert(minutes < 60);
      assert(seconds < 60);
 
      seconds_ = hours * 60 * 60 + minutes * 60 + seconds;
   }
 
   ul_t hours() const {
      return seconds_ / (60 * 60);
   }
 
   ul_t minutes() const {
      return (seconds_ % (60 * 60)) / 60;
   }
 
   ul_t seconds() const {
      return seconds_ % 60;
   }
 
   friend time_type operator -(time_type const lhs, time_type const rhs) {
      assert(lhs.seconds_ >= rhs.seconds_);
 
      return time_type(lhs.seconds_ - rhs.seconds_);
   }
 
private:
   time_type(ul_t const seconds) : seconds_(seconds) {}
 
   ul_t seconds_;
};
 
 
std::ostream & operator <<(std::ostream & ostream, time_type const time) {
   return ostream << time.hours() << "h " << time.minutes() << "m " << time.seconds() << "s";
}
 
 
int main() {
   time_type const begin(2, 7, 57);
   time_type const end(4, 5, 56);
 
   std::cout << (end - begin) << std::endl;
}
Yandex
Объявления
25.06.2014, 00:21     Написать класс Время (часы, минуты, секунды)
Ответ Создать тему
Опции темы

Текущее время: 16:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru