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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Задачки в С++ http://www.cyberforum.ru/cpp-beginners/thread845482.html
Работаю, вернее пытаюсь работать в С++ в кодблоке, задали вот тут задачки, над которыми жестко туплю, помогите решить.... Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема. Запрещено размещать задания в виде картинок и других файлов с их текстом. Перепечатайте задание! Правила форума
C++ Создание массива из строки Я ввожу любую строку без пробелов, например "A+B+!C": char *str=(Label1->Caption.c_str()); Как создать массив, каждый элемент которого - это символ из строки?? http://www.cyberforum.ru/cpp-beginners/thread845480.html
Использовать контейнер Queue с алгоритмами C++
Доброго времени суток, вот появился такой вопрос, как извратиться чтобы использовать контейнер Queue с алгоритмами, мои попытки не увенчались успехом. Видел несколько вариантов в сети, но что-то у меня они не работали, хотелось бы увидеть какой-нибудь пример, хотя бы на copy с back_inserter, буду благодарен за любую помощь:)
C++ Интерполяция и вторая производная
Нужна программа для интерполяции табличных данных и последующего вычисление 2 производной по полученным результатам Данные в архиве
C++ Задача про скобки http://www.cyberforum.ru/cpp-beginners/thread845477.html
Суть задачи: построить все слова длины n>0 в алфавите скобок "(", ")", "", представляющие правильные скобочные записи. вот код только для (), нужно его как-то дописать, подскажите что добавить или как исправить #include <iostream> #include <string> void f( int n, int k, std ::string &s ) { if( 0 == n ) { if( 0 == k ) std ::cout << s << std ::endl; return...
C++ Транспонирование матриц, с++, OpenMp Здравствуйте, будьте добры помогите разобраться. Задние: Транспонировать матрицу и распаралелить с помощью технологии OpenMP. Последовательный алгоритм и многопоточный пашут, но препод говорит, что ускорение не достаточное, помогите разобраться, как увеличить скорость или подскажите где найти инфу. Вот код. #include <iostream> #include <cstdio> #include <time.h> #include <omp.h> подробнее

Показать сообщение отдельно
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
23.04.2013, 08:04  [ТС]     Класс «Время»
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;
}
 Комментарий модератора 
Не забывайте выделять код тегами подсветки синтаксиса
 
Текущее время: 02:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru