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

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

Войти
Регистрация
Восстановить пароль
 
Sash0k
1 / 1 / 0
Регистрация: 19.05.2013
Сообщений: 18
#1

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

16.12.2013, 12:49. Просмотров 984. Ответов 1
Метки нет (Все метки)

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

Создать базовый класс Тройка_чисел (Triad) и производный класс Time с полями часы, минуты и секунды - C++
Наследование. Виртуальныефункции.Полиморфизм. 1. Цельзадания: 1) Создание консольного приложения, состоящего и - Базовый класс:...

Создать класс Time - C++
Помогите решить: Класс Time. Создать класс Time, который должен включать: a. Два поля: int min; int hour; b. Конструкторы....

Создать класс с именем time - C++
Я в программировинии (более-менее знаю только Turbo Pascal) ещё совсем профан, в универе задание дали написать программу на ООП, т.е. С++,...

Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......" - C++
/* Создайте класс Time с конструкторами Time(), Time( int hour), Time(int hour, int min), Time( int h, int m, int s) и ...

Создать класс Time для работы со временем - C++
Создать класс Time для работы со временем в формате "час. минута.секунда" . Класс должен включать в себя не менее четырёх функций...

Создать класс time для работы со временем - C++
на языке C++ создать класс ВРЕМЯ,разработав следующие элементы класса: •Поля с;(временной интервал,заданный в секундах) ...

1
egor2116
340 / 371 / 42
Регистрация: 20.01.2013
Сообщений: 1,130
16.12.2013, 15:32 #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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 15:32
Привет! Вот еще темы с ответами:

Класс Time через time(0) - C++
Всем привет. На форуме искал ничего похожего не нашол. Не могу до конца разобраться. В класе 1 член, который держит секунды, которые...

Класс "Время". Двусмысленность между time и std:time(long*) - C++
Здравствуйте. Дали код, сказали есть проблема(скриншот): http://joxi.ru/12MxOENhw14QmJ Код: # include &lt;iostream.h&gt; # include...

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ... - C++
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями - C++
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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