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

что нетак с кодом - C++

Восстановить пароль Регистрация
 
gibirg
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 7
30.10.2013, 16:36     что нетак с кодом #1
Добрый день! Подскажите пожалуйста пару нюансев с кодом.

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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include "stdafx.h"
#include<ctime>
#include<iostream>
 
using namespace std;
class CTime
{ int Sec;
public:
CTime();
CTime(int h, int m, int s);
CTime(CTime &c);
void SetTime(int h, int m, int s);
void SetHours(int h);
void SetMinutes(int m);
void SetSecunds(int s);
int GetHours();
int GetMinutes();
int GetSecunds();
int tm; int th; int ts;
void Print();
CTime operator+(CTime &c);
CTime operator-(CTime &c);
CTime operator++();
CTime operator--();
int operator==(CTime &c);
CTime operator++(int);
CTime operator--(int);
 
 
};
 
CTime::CTime()
{ time_t rawtime;
struct tm *timeinfo;
time (&rawtime);
timeinfo=localtime (&rawtime);
Sec=timeinfo ->tm_hour*3600;
Sec=timeinfo ->tm_min*60;
Sec=timeinfo ->tm_sec;
}
CTime::CTime(int h, int m, int s)
{ if (h>23 || h<0 || m>59 || m<0 || s>59 || s<0)
{ time_t rawtime;
struct tm *timeinfo;
time (&rawtime);
timeinfo=localtime(&rawtime);
Sec=timeinfo->tm_hour*3600;
Sec=timeinfo->tm_min*60;
Sec=timeinfo->tm_sec;
 
 
}
else 
{Sec=h*3600;
Sec+=m*60;
Sec+=s;
}
}
CTime::CTime(CTime &c)
{ Sec=c.Sec;}
 
CTime::GetHours()
{
th=Sec/3600;
return th; }
 
int CTime::GetMinutes()
{ 
tm=(Sec-th*3600)/60;
return tm;}
 
int CTime::GetSecunds()
{
ts=Sec-th*3600-tm*60;
return ts;}
 
void CTime::SetHours(int h)
{ if (h>23 && h<0)
 
Sec+=(h-th)*3600;
}
void CTime::SetMinutes(int m)
{ if (m>59 && m<0)
 
Sec+=(m-tm)*60;
}
void CTime::SetSecunds(int s)
{ if (s>59 && s<0)
 
Sec+=(s-ts);
 
}
 
void CTime::Print()
{ std::cout<<th<<':'<<tm<<':'<<ts<<std::endl;}
 
CTime CTime::operator +(CTime &c)
{ CTime t;
t.Sec=c.Sec+Sec;
return t;
}
 
CTime CTime::operator -(CTime &c)
{ CTime t;
t.Sec=c.Sec-Sec;
return t;
}
 
int CTime::operator ==(CTime &c)
{ return (Sec-c.Sec);}
 
CTime CTime::operator ++()
{ Sec++;
return *this;
}
CTime CTime::operator --()
 
{ Sec--;
return *this;
}
CTime CTime::operator ++(int)
{ CTime t(*this);
Sec++;
return t;
}
 
CTime CTime::operator --(int)
{ CTime t(*this);
Sec--;
return t;
}
 
void CTime::SetTime(int h, int m, int s)
{ SetHours(h); 
SetMinutes(m);
SetSecunds(s);
}
 
int main()
{ CTime t;
int k;
t.Print();
cout<<"Enter amount of hour"<<endl;
cin>>k;
t.SetHours(k);
t.Print();
 
cout<<"Enter amount of minutes "<<endl;
cin>>k;
t.GetMinutes();
t.Print();
 
cout<<"Enter amount of second"<<endl;
cin>>k;
t.GetSecunds();
t.Print();
 
int h, m, s;
cout<<"Enter the time in international format"<<endl;
cin>>h>>m>>s;
CTime t2(h,m,s);
t2.Print();
 
cout<<endl<<"Checking of copy:"<<endl;
CTime t3(t2);
t3.Print();
 
cout<<"Checking of operator++"<<endl;
t2.Print();
(t2++).Print();
(++t2).Print();
 
 
cout<<"Checking of operator--"<<endl;
t2.Print();
(t2--).Print();
(--t2).Print();
 
cout<<"operator+"<<endl;
CTime t4(2,10,15);
t2.Print();
t4.Print();
(t2+t4).Print();
 
 
 
getchar();
getchar();
return 0;
 
}
как работаю эти 4 функции
CTime CTime::operator ++()
CTime CTime::operator --()
CTime CTime::operator ++(int)
CTime CTime::operator --(int)

Подскажите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2013, 16:36     что нетак с кодом
Посмотрите здесь:

C++ Граф (раскажите что нетак уменя с условием)
Что не так с кодом C++
C++ Что не так с кодом?
C++ что не так с кодом?
C++ что не так с кодом
C++ что-то не то с кодом C++
C++ Что-то неладное с кодом
C++ Подскажите что не так с кодом?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
30.10.2013, 16:41     что нетак с кодом #2
Цитата Сообщение от gibirg Посмотреть сообщение
if (h>23 || h<0 || m>59 || m<0 || s>59 || s<0)
сам переведи это условие на русский язык
часы меньше 23 или часы меньше 0
15 часов смело попадают в эту конструкцию
может все таки больше 23?
Yandex
Объявления
30.10.2013, 16:41     что нетак с кодом
Ответ Создать тему
Опции темы

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