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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Kivinet
0 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 4
#1

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

24.04.2011, 17:21. Просмотров 1478. Ответов 6
Метки нет (Все метки)

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

Класс "Время", как реализовать работу со временем? - C++
Добрый день. Прошу помочь мне в столь, надеюсь, для кого-то простом вопросе. Необходимо создать класс время и произвести некоторую работу с...

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

Во время приостановления потока (thread), ошибка "this было nullptr" - C++
Удалите тему, проблема решена. Извините за беспокойство.

Как правильно задать параметр "время выполнения алгоритма"? - C++
как правильно задать параметр "время выполнения алгоритма"? #include <iostream> #include <math.h> #include <time.h> #include...

Структура "Время". Функции преобразования в секунды и из секунд - C++
Здравствуйте решаю такую вот задачку ,прошу помощи : Модифицируйте программу, описанную в упражнении 11 главы 4 "Структуры",...

Ошибка "чтение памяти невозможно" во время перехода к строке с функцией - C++
При запуске программы вижу ошибку "чтение памяти невозможно" во время перехода к строке с функцией ext() Не могу понять в чем дело,...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4961 / 3037 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
Эксперт С++
4961 / 3037 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.04.2011, 17:45     Класс "Время" #4
На скрине, конечно, всё шшшикарно читается, но мне как-то... Скоро выложу код, с учётом того, что буду минуты всё же к минутам прибавлять, а не к дням (заменю "день, месяц год" на "часы, минуты, секунды").
Kivinet
0 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 4
24.04.2011, 17:47  [ТС]     Класс "Время" #5
Извините, уже исправила)))

Вот:
[cut]
silent_1991
Эксперт С++
4961 / 3037 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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     Класс "Время"
Еще ссылки по теме:

Структура "АТС": вывести для заданного города общее время разговоров - C++
На междугородной АТС информация о разговорах содержит дату разговора, код и название города, время разговора, тариф, номер телефона в этом...

Выведите в окно приложения прочитанную фамилию и оставшееся "время жизни" до 3000г - C++
Помогите, пожалуйста, с решением задачи. условие: &quot;запишите в файл фамилию и год рождения. Выведите в окно приложения прочитанную фамилию...

Перегрузка оператора вывода в классе "Время" - C++
Здравствуйте. Столкнулся с проблемой при работе с классом (Время), что выводит или чушь или вообще ничего не выводит. Прописал (вроде бы) 1...

арифметические операции с данымы типа "время" - C++
Есть переменная типа string a1=&quot;071355&quot;. Необходимо перевести значение переменной в формат времени, проделать математическую операцию,...

Все время программировали на Pascal, а тут бац, и программируйте на С++ или вам "конец"! - C++
Задание 1 Разработать программу обработки массивов Подпрограмма должна находить сумму положительных элементов нечетных строк матрицы...


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

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

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