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

Создать класс Time - C++

Восстановить пароль Регистрация
 
Sash0k
1 / 1 / 0
Регистрация: 19.05.2013
Сообщений: 18
16.12.2013, 12:49     Создать класс Time #1
Здравствуйте. Помогите написать программу. Заранее спасибо.
Создать класс Time для работы со временем в формате «час:минута:секунда». Класс должен включать в себя не менее четырех функций инициализации: числами, строкой (например, «23:59:59»), секундами и временем. Обязательными операциями являются: вычисление разницы между двумя моментами времени в секундах, сложение времени и заданного количества секунд, вычитание из времени заданного количества секунд, сравнение моментов времени, перевод в секунды, перевод в минуты (с округлением до целой минуты). Использовать два вида конструкторов, динамическую память.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2013, 12:49     Создать класс Time
Посмотрите здесь:

Создать класс Time для работы со временем C++
C++ Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......"
C++ Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Класс time C++
Создать класс Time C++
C++ Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...
Создать класс time для работы со временем C++
Класс "Время". Двусмысленность между time и std:time(long*) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.12.2013, 15:32     Создать класс Time #2
Как то так
Вам осталось перегрузить
C++
1
2
Time operator +(Time & t);
Time operator +(uint sec);
И сделать проверку на корректный ввод значений.

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
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
 
typedef unsigned int uint;
const char maxSec = 60;
const char maxMin = 60;
const char maxHr = 24;
 
class Time
{
  private:
          uint hour;
          uint minute;
          uint second;
  public:
         Time(uint h = 0, uint m = 0, uint s = 0) : 
               hour(h), minute(m), second(s){} //Нужна проверка
 
         Time(std::string time = "00:00:00")//Нужна проверка
         {
           std::vector<uint> vec;
           std::istringstream iss(time);
           std::string str;
           int val;
           
           while(std::getline(iss, str, ':'))
           {
             std::stringstream ss;
             ss << str;
             ss >> val;
             vec.push_back(val);
           }        
             hour = vec[0];
             minute = vec[1];
             second = vec[2];                
         }
         
         void setHour(uint h){ hour = h; } //Нужна проверка
         void setMinute(uint m){ minute = m; } //Нужна проверка
         void setSecond(uint s){ second = s; } //Нужна проверка
         
         uint getHour()const{ return hour; }
         uint getMinute()const{ return minute; }
         uint getSecond()const{ return second; }
         
         static Time secToTime(uint sec)
         {
           uint h = (uint)(sec / maxMin / maxHr);
           uint m = (uint)(sec / maxMin);
           uint s = sec - m * (maxMin);
           
           return Time(h, m, s);
         }
         
         static uint TimeToSec(Time & t)
         {
           return (t.getSecond() + t.getMinute() * maxMin + t.getHour() * maxHr * maxMin);
         }
         
         friend std::ostream & operator <<(std::ostream & out, Time & t);
         Time operator -(Time & t)
         {
             uint h = hour - t.getHour() < 0 ? 0 : hour - t.getHour();
             uint m = minute - t.getMinute() < 0 ? 0 : minute - t.getMinute();
             uint s = second - t.getSecond() < 0 ? 0 : second - t.getSecond();
             return Time(h, m, s); 
         }
         
         Time operator -(uint sec)
         {
             Time t(Time::secToTime(sec));
             return *this - t;
         }
         
         bool operator ==(Time & t)
         {
              return hour == t.getHour() && minute == t.getMinute() && second == t.getSecond();
         }
         
         bool operator !=(Time & t)
         {
              return hour != t.getHour() && minute != t.getMinute() && second != t.getSecond();
         }
};
 
int main()
{   
    Time time(10, 15, 22);
    Time time1("11:16:23");
    Time time2(Time::secToTime(70));
    Time time3((time1 - time));
    Time time4((time - 120));
    
    std::cout << time3 << std::endl;
    std::cout << time4 << std::endl;
    
    
    system("PAUSE");
    return 0;
}
 
std::ostream & operator <<(std::ostream & out, Time & t)
{
  out << t.getHour() << ":" << t.getMinute() << ":" << t.getSecond();
  return out;
}
Yandex
Объявления
16.12.2013, 15:32     Создать класс Time
Ответ Создать тему
Опции темы

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