Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
milka495
2 / 2 / 0
Регистрация: 12.12.2013
Сообщений: 73
#1

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

24.06.2014, 23:11. Просмотров 2167. Ответов 6
Метки нет (Все метки)

Написать класс Время(часы, минуты, секунды). Написать методы вывод введенного времени и подсчета интервала между двумя данными
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2014, 23:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать класс Время (часы, минуты, секунды) (C++):

Создать класс время с данными-членами часы, минуты, секунды - C++
отучилась на программиста уже год, но пока что как-то тяжко с заданиями, тем более с классами, не успели пройти их... помогите пожалуйста...

Определить текущий день недели, год, месяц, число, а также текущее время-часы, минуты, секунды, сотые доли секунды. - C++
1. Составить программу на языке Си , используя функций прерывания 21h. Определить текущий день недели, год, месяц, число, а также текущее...

Описать структуру «время» (часы, минуты, секунды) - C++
Описать структуру «время» (часы, минуты, секунды). Определить функцию «позже» для проверки, предшествует ли время t2 времени t1 (в рамках...

Создать базовый класс Тройка_чисел (Triad) и производный класс Time с полями часы, минуты и секунды - C++
Наследование. Виртуальныефункции.Полиморфизм. 1. Цельзадания: 1) Создание консольного приложения, состоящего и - Базовый класс:...

Описать как структуру переменную время (с полями часы, минуты, секунды) - C++
Прошу вашей помощи Описать как структуру переменную время (с полями часы, минуты, секунды). Составить и протестировать функцию: ...

Описать структуру «время» (часы, минуты, секунды). Определить функцию «следующая минута» - C++
Привет ребят, вот такая задачка, голову ломаю ничего понять не могу: Описать структуру «время» (часы, минуты, секунды). Определить...

6
ValeryS
Модератор
6794 / 5202 / 499
Регистрация: 14.02.2011
Сообщений: 17,450
24.06.2014, 23:14 #2
Цитата Сообщение от milka495 Посмотреть сообщение
Написать класс Время
А зачем?
он и так есть
точнее не класс а функции для работы со временем
http://www.cplusplus.com/reference/ctime/
0
milka495
2 / 2 / 0
Регистрация: 12.12.2013
Сообщений: 73
24.06.2014, 23:15  [ТС] #3
Преподаватель требует именно класс.
0
ValeryS
Модератор
6794 / 5202 / 499
Регистрация: 14.02.2011
Сообщений: 17,450
24.06.2014, 23:18 #4
открой ссылку, посмотри на функции и оберни все это в класс
а в MFC вообще есть класс CTime
0
milka495
2 / 2 / 0
Регистрация: 12.12.2013
Сообщений: 73
24.06.2014, 23:21  [ТС] #5
Эх, я совсем в этом не сильна. Ну ладно. И на этом спасибо)
0
NanoBreaker
23 / 23 / 7
Регистрация: 11.07.2013
Сообщений: 93
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"
1
gray_fox
What a waste!
1531 / 1236 / 71
Регистрация: 21.04.2012
Сообщений: 2,601
Завершенные тесты: 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;
}
1
25.06.2014, 00:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2014, 00:21
Привет! Вот еще темы с ответами:

Преобразование double во время (char) год, месяц, день, часы секунды, минуты - C++
Здравствуйте, форумчане. Подскажите как получить текущее время, сохранить его в double, а потом преобразовать скажем в строку char*. Есть...

Определить класс Time, предусмотрев в нем компонентные данные: часы, минуты, секунды - C++
Определить класс Time, предусмотрев в нем компонентные данные: часы, минуты, секунды; компонентные функции вывода на экран времени в...

Класс для работы с секундомером (считать секунды до нажатия клавиши, результат переводить в минуты и часы) - C++
Ребята, помогите пожалуйста, я даже не подозреваю как начать, препод молчит, мне необходимо написать &quot;Класс для работы с...

Написать функцию, получающую часы, минуты, секунды, и возвращающую сколько секунд прошло с полудня - C++
привет все на форуме. я новичок в с++ поэтому нужна ваша помощь в написании программки:) Написать функцию, которая получает время в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru