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

Класс «Время» - C++

Восстановить пароль Регистрация
 
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
22.04.2013, 19:43     Класс «Время» #1
Разработать консольную программу на языке С++, в которой описывается и используется класс. Требования к оформлению класса те же, что и для первого задания. Для объектов класса выполнить перегрузку операций, указанных в задании.
Класс «Время» должен включать поля данных: часы, минуты, секунды; методы: вывод времени и часть суток (до 6:00 – ночь, до 12:00 – утро, до 18:00 – день, до 23:59:59 – вечер) и перегруженные операции: сложение (+), вычитание (-), сравнение (< , >) времени.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ioioioi
 Аватар для ioioioi
96 / 28 / 6
Регистрация: 25.06.2010
Сообщений: 101
22.04.2013, 20:23     Класс «Время» #2
А в чем проблема? Задание вижу, вопроса нет. Или вам готовое решение написать? Если так, то вам в раздел фриланса)
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
23.04.2013, 08:04  [ТС]     Класс «Время» #3
ioioioi, Сейчас покажу
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <iostream>
#include <string>
 
using namespace std;
 
class Time
{
private:
        int _hour, _minute, _second;
public:
        Time() : _hour(0), _minute(0), _second(0) {}
        Time(int h, int m, int s) : _hour(h), _minute(m), _second(s) { optimize(); }
        void optimize()
        {
                _minute += _second / 60;
                _second  = _second % 60;
                _minute += ((_second<0)?-1:0);
                _second += ((_second<0)?60:0);
                _hour   += _minute / 60;
                _minute  = _minute % 60;
                _hour   += ((_minute<0)?-1:0);
                _minute += ((_minute<0)?60:0);
        }
        int hour() const { return _hour; }
        int minute() const { return _minute; }
        int second() const { return _second; }
        string tod()
        {
                if ((_hour % 24) < 6)
                        return "night";
                else
                if ((_hour % 24) < 12)
                        return "morning";
                else
                if ((_hour % 24) < 18)
                        return "day";
                else
                        return "evening";
        }
        friend ostream& operator<< (ostream& o, const Time& t)
        {
                o << ((t.minute()<10)?"0":"") << t.hour() << ":"
                  << ((t.minute()<10)?"0":"") << t.minute() << ":"
                  << ((t.second()<10)?"0":"") << t.second();
                return o;
        }
 
        Time(Time& other)
        {
                _hour = other._hour;
                _minute = other._minute;
                _second = other._second;
        }
 
        const Time operator+(const Time& other) const
        {
                Time result(other.hour()+_hour, other.minute()+_minute, other.second()+_second);
                return result;
        }
 
        const Time operator-(const Time& other) const
        {
                Time result(_hour - other.hour(), _minute - other.minute(), _second - other.second());
                return result;
        }
 
        const signed int compare(const Time& other) const
        {
                if (_hour<other.hour())
                        return -1;
                else
                if (_hour>other.hour())
                        return +1;
                else
                if (_minute<other.minute())
                        return -1;
                else
                if (_hour>other.hour())
                        return +1;
                else
                if (_second<other.second())
                        return -1;
                else
                if (_second>other.second())
                        return +1;
                return 0;
        }
 
        const bool operator<(const Time& other) const
        {
                return (compare(other) < 0);
        }
        const bool operator>(const Time& other) const
        {
                return (compare(other) > 0);
        }
 
        const bool operator==(const Time& other) const
        {
                return (compare(other) == 0);
        }
 
};
 
int main()
{
        Time a(2, 0, 0), b(0, 59, 59);
 
        cout << "(" << a << ")-(" << b << ")=(" << (a-b)  <<  ") " << endl
        << "(" << a << ")+(" << b << ")=(" << (a+b)  <<  ") " << endl
        << ((a > b)?"a more than b":"a no more than b") << ", " << endl
        << ((a < b)?"a less than b":"a no less than b") << "." << endl;
 
        return 0;
}
 Комментарий модератора 
Не забывайте выделять код тегами подсветки синтаксиса
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
23.04.2013, 08:06  [ТС]     Класс «Время» #4
Но показывает помоему всюкую ерунду
Миниатюры
Класс «Время»  
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.04.2013, 10:29     Класс «Время» #5
Цитата Сообщение от shmat_ru Посмотреть сообщение
Но показывает помоему всюкую ерунду
А что неправильно по-Вашему?
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
23.04.2013, 10:49  [ТС]     Класс «Время» #6
Tulosba, Помоему он должен нормально время показывать?или я не прав?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.04.2013, 10:56     Класс «Время» #7
shmat_ru, что значит "нормально"? Сейчас не нормально?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2013, 10:59     Класс «Время»
Еще ссылки по теме:

Написать класс Время (часы, минуты, секунды) C++
Класс время. Перегрузка операций C++
Класс Триада, Дата и Время C++

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

Или воспользуйтесь поиском по форуму:
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
23.04.2013, 10:59  [ТС]     Класс «Время» #8
Tulosba, А я кажется понял до меня дошло спосибо
Yandex
Объявления
23.04.2013, 10:59     Класс «Время»
Ответ Создать тему
Опции темы

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