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

Создать класс Time для работы со временем - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нарисовать круг и квадрат http://www.cyberforum.ru/cpp-beginners/thread1202372.html
Нарисовать круг и квадрат!!!у меня имеется прямоугольник и овал,как переделать +++++++++++++++++++ class Rect:public Shape { public: void draw() { line(x1,y1,x2,y1); line(x1,y1,x1,y2); line(x2,y1,x2,y2);
C++ Статические и виртуальные функции Составить программу с одним родительским классом и двумя потомками. Все поля должны быть закрытыми. Потомки должны содержать виртуальные функции. Для родительского объекта создать статическую функцию выдачи результатов расчета виртуальной функции на экран монитора. Составить тестирующую программу. В ней нужно реализовать вывод параметров объектов на экран монитора. Родительский класс:... http://www.cyberforum.ru/cpp-beginners/thread1202343.html
Сумма по модулю 256 C++
Обьясните в алгоритме ГОСТ 28147-89 В РЕЖИМЕ ГАММИРОВАНИЯ 32-х разрядный суматор по модулю 2^32 как это и помогите с реализацией
C++ Substr и рекурсия
Доброй ночи! void extract(string*, string&); int main() { string array; string test = "FOO bar,1444,63333,99222,100333"; int first = test.find(','); string data = test.substr(first + 1);
C++ Нахождение наименьшего нечетного натурального делителя k (k≠1) любого заданного натурального числа n http://www.cyberforum.ru/cpp-beginners/thread1202328.html
Помогите с этой задачой: Подпрограммы Составить функцию для нахождения наименьшего нечетного натурального делителя k (k≠1) любого заданного натурального числа n. Хотя бы подскажите идею для решения.
C++ Вывести элемент массива, который строго больше минимального Привет всем. У меня такая задача. Ввести элементы массива с клавиатуры, отсортировать его по возрастанию и вывести после сортировки элемент массива, который строго больше минимального. Если такого элемента нет, вывести "NO", то есть, если массив 1 1 1 1 1. А если отсортированный массив - 1 1 3 5 6, то должно вывести 3. Первые 2 части задачи я сделал #include <stdio.h> #include <conio.h> int... подробнее

Показать сообщение отдельно
RG21
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 8
08.06.2014, 09:15     Создать класс Time для работы со временем
Нужно исправить ошибки в программе.Срочно.

Создать класс Time для работы со временем в формате «час:минута:секунда».
Класс должен включать в себя три конструктора инициализации: числами,
строкой (например, «23:59:59»), секундами. Конструктор инициализации тремя
числами должен присваивать значения по умолчанию минутам и секундам.
Реализовать операции вычисления разницы между двумя моментами времени
в секундах, сложения времени и заданного количества секунд, вычитания из
времени заданного количества секунд, сравнения моментов времени.
Реализовать функцию преобразования в строку toStringO
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
#include "stdafx.h"
#include <iostream>
#include <stdexcept>
#include <locale>
#include <cstdlib>
#include <string>
#include <sstream>
 
using namespace std;
 
class Time
{
public:
    typedef unsigned short ushort;
    Time(ushort hs, ushort ms, ushort ss)
    {
        set_time(hs, ms, ss);
    }
 
    explicit Time(size_t ss = 0)
    {
        set_time(ss);
    }
 
    explicit Time(std::string const& stime)
    {
        set_time(stime);
    }
 
    void set_time(ushort hs, ushort ms, ushort ss)
    {
        _hs = hs;
        _ms = ms;
        _ss = ss;
        check();
    }
 
    void set_time(size_t ss)
    {
        _hs = ss / 3600;
        _ms = (ss % 3600) / 60;
        _ss = (ss % 3600) % 60;
        check();
    }
 
    void set_time(std::string const& stime) // "23:59:59"
    {
        std::stringstream sstr;
        for(auto const& val : stime)
            sstr << (val == ':' ? ' ' : val);
        sstr >> _hs >> _ms >> _ss;
        if(!sstr || !sstr.eof())
            throw std::runtime_error("Time::set_time: !sstr || !sstr.eof()");
        check();
    }
 
    friend std::ostream& operator<<(std::ostream& ost, Time const& rhs)
    {
        return ost << rhs._hs << ':' << rhs._ms << ':' << rhs._ss;
    }
 
    operator std::string() const
    {
        std::stringstream sstr;
        sstr << _hs << ':' << _ms << ':' << _ss;
        return sstr.str();
    }
 
private:
    ushort _hs, _ms, _ss;
    void check() const
    {
        if(_hs >= 24  || _ms >= 60 || _ss >= 60)
            throw std::runtime_error("Time::check: _hs >= 24  || _ms >= 60 || _ss >= 60");
    }
};
 
int main()
{
    setlocale(LC_ALL, "rus");
    Time hms1("23:45:40"), hms2(23 * 3600 + 45 * 60 + 41), hms3(23, 45, 42);
    std::string shms3 = hms3;
    std::cout << hms1 << '\n' << hms2 << '\n' << shms3 << "\n\n";
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru