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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Kivinet
0 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 4
24.04.2011, 17:21     Класс "Время" #1
Учусь на экономическом факультете и тут ни стого - ни сиго нам ввели курс программирования на С++. Все в шоке, знакомые посоветовали ваш сайт, помогите пожалуйста.
Задание звучит так:
Создать класс "время" с компонентными данными: число, месяц, год. Определить компонентные функции:
получить каждый элемент класса по отдельности, вывести значение на экран, добавить к данному времени n часов, добавить n минут, добавит n секунд. Описать дружественную функцию "переход на летнее время".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2011, 17:21     Класс "Время"
Посмотрите здесь:

C++ Создать класс "точка" и производный класс "отрезок"
Абстрактный базовый класс "звонок" с виртуальной функцией "стоимость" C++
C++ Из класса "Дата" с полями день, месяц, год создать класс "Время" с дополнительными полями час, минута, секунда
C++ Класс "Графический объект", от которого будут наследоваться классы "круг" и "квадрат"
C++ Иерархия классов "список"-"очередь", вызов метода через класс интерфейс
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.04.2011, 17:33     Класс "Время" #2
Цитата Сообщение от 'Kivinet' Посмотреть сообщение
число, месяц, год
Цитата Сообщение от 'Kivinet' Посмотреть сообщение
добавить к данному времени n часов, добавить n минут, добавит n секунд
Что? о_О
Kivinet
0 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 4
24.04.2011, 17:43  [ТС]     Класс "Время" #3
Цитата Сообщение от silent_1991 Посмотреть сообщение
Что? о_О
Так и написано вот скрин 26 вариант:
[cut]
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.04.2011, 17:45     Класс "Время" #4
На скрине, конечно, всё шшшикарно читается, но мне как-то... Скоро выложу код, с учётом того, что буду минуты всё же к минутам прибавлять, а не к дням (заменю "день, месяц год" на "часы, минуты, секунды").
Kivinet
0 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 4
24.04.2011, 17:47  [ТС]     Класс "Время" #5
Извините, уже исправила)))

Вот:
[cut]
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.04.2011, 17:59     Класс "Время" #6
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
#include <iostream>
#include <iomanip>
 
class Time
{
    void normalize_time()
    {
        if (m_seconds > 59)
        {
            m_minutes += m_seconds / 60;
            m_seconds = m_seconds % 60;
        }
 
        if (m_minutes > 59)
        {
            m_hours += m_minutes / 60;
            m_minutes = m_minutes % 60;
        }
 
        m_hours %= 24;
    }
 
public:
    Time(unsigned hours, unsigned minutes, unsigned seconds):
    m_hours(hours),
    m_minutes(minutes),
    m_seconds(seconds)
    {
        normalize_time();
    }
 
    unsigned get_hours() const
    {
        return m_hours;
    }
 
    unsigned get_minutes() const
    {
        return m_minutes;
    }
 
    unsigned get_seconds() const
    {
        return m_seconds;
    }
 
    void print_time() const
    {
        std::cout << std::setw(2) << std::setfill('0') << m_hours << ":";
        std::cout << std::setw(2) << std::setfill('0') << m_minutes << ":";
        std::cout << std::setw(2) << std::setfill('0') << m_seconds << std::endl;
    }
 
    void inc_hours(unsigned hours)
    {
        m_hours += hours;
 
        normalize_time();
    }
 
    void inc_minutes(unsigned minutes)
    {
        m_minutes += minutes;
 
        normalize_time();
    }
 
    void inc_seconds(unsigned seconds)
    {
        m_seconds += seconds;
 
        normalize_time();
    }
 
    friend void to_summertime(Time &);
 
private:
    unsigned m_hours;
    unsigned m_minutes;
    unsigned m_seconds;
};
 
void to_summertime(Time &time)
{
    time.m_hours += 1;
 
    time.normalize_time();
}
 
int main()
{
    Time t(120, 480, 330);
 
    std::cout << t.get_hours() << std::endl;
    std::cout << t.get_minutes() << std::endl;
    std::cout << t.get_seconds() << std::endl;
    
    t.inc_hours(4);
    t.inc_minutes(8);
    t.inc_seconds(220);
 
    t.print_time();
 
    to_summertime(t);
 
    t.print_time();
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2011, 18:04     Класс "Время"
Еще ссылки по теме:

Класс "Время". Двусмысленность между time и std:time(long*) C++
Класс "Время", как реализовать работу со временем? C++
C++ Описать класс "Контейнер" как объект, предназначенный для транспортировки классов "Строительных блоков"

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

Или воспользуйтесь поиском по форуму:
Kivinet
0 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 4
24.04.2011, 18:04  [ТС]     Класс "Время" #7
Огромное вам человеческое спасибо!))))
А то обратилась к знакомым мальчикам программистам, а они только руками развели, мол самим бы кто написал.)))
Спасибо ещё раз)
Yandex
Объявления
24.04.2011, 18:04     Класс "Время"
Ответ Создать тему
Опции темы

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