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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу, работающую со структурами Автомобиль http://www.cyberforum.ru/cpp-beginners/thread1043600.html
Здравствуйте. Помогите написать программу. Заранее спасибо. Описать структуру с именем «Автомобиль», содержащую следующие поля: а) марка; б) год выпуска; в) цена; г) цвет. Написать программу, выполняющую следующие действия: а) ввод с клавиатуры данных в массив, состоящий из N элементов типа Автомобиль; б) упорядочить все элементы по году выпуска автомобиля; в) вывести информацию об...
C++ Перегрузка операторов Разработайте программу, в которой реализована перегрузка оператора «-». Оператор «-» должен определять разность элементов, лежащих на побочной диагонали двухмерного массива я так понимаю разность будет искаться как-то так loat array; int otherdiag = 0; for(int i = 0;i < a;i++){ otherdiag -= array; } а вот как сделать перегрузку оператора, и собрать это все добро в кучу http://www.cyberforum.ru/cpp-beginners/thread1043598.html
Разработать программу для определения попадает ли точка в область изображенную на рисунке C++
Разработать программу для определения – попадает ли точка с координатами x, y, в область изображенную на рисунке. Исходные данные (x, y, R1, R2) должны быть считаны с экрана. Осуществлять проверку исходных данных (x1, y1, R1, x2, y2, R2) на соответствие варианту (обязательное касание окружностей). Помогите пожалуйста! У меня с нижней частью запара. Вот те ограничения, что я использую:...
Открытие файлов разных расширений в одной программе C++
Здравствуйте, есть вопрос. Как задать условие для открытия файла? есть программа, в которой при нажатии на обзор как и всегда предлагается выбрать файл, так вот, как сделать так, что бы например если этот файл имеет расширение .doc или .docx то происходит одно, а если .txt то другое, и если какое нибудь другое расширение то выпрыгивает ошибка и пугает людей. Спасибо) Добавлено через 50 минут...
C++ Описать структуру Order http://www.cyberforum.ru/cpp-beginners/thread1043551.html
Вообщем такое задание :Описать структуру с именем Order, содержащую следующие поля: plat-расчетный счет плательщика, pol- расчетный счет получателя, summa-перечисляемая сумма. Написать программу, выполняющую ввод с клавиатуры данных в массив Spisok, состоящий из 15 элементов типа Order. Записи должны быть упорядочены по расчетным счетам плательщиков. Вывести на экран информацию о сумме, снятой с...
C++ После установки 2013 студии появились ошибки В проекте C++ и C файлы, на все C++ файлы начали появляться ошибки которых раньше не было: 1>D:\Program Files\Microsoft Visual Studio 12.0\VC\include\yvals.h(666): error C2059: синтаксическая ошибка: ; 1>D:\Program Files\Microsoft Visual Studio 12.0\VC\include\yvals.h(666): error C2238: непредвиденные лексемы перед ";" 1>D:\Program Files\Microsoft Visual Studio... подробнее

Показать сообщение отдельно
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.12.2013, 15:32     Создать класс Time
Как то так
Вам осталось перегрузить
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;
}
 
Текущее время: 00:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru