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

Уважаемые программисты прокомментируйте программу пожалуйста - C++

Восстановить пароль Регистрация
 
Рас
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 14
11.09.2013, 23:10     Уважаемые программисты прокомментируйте программу пожалуйста #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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
#include <iostream>
#include <ctime>
using namespace std;
 
class Budilnik
{
private:
    int hour, min, sec;
public:
    void Set_time(int hour=0, int min=0, int sec=0);
    void Print_rem_time();
    void Print_time();
    int Get_hour()
    {
        return hour;
    }
    int Get_min()
    {
        return min;
    }
    int Get_sec()
    {
        return sec;
    }
    Budilnik operator +(const Budilnik & y) const;
    Budilnik operator -(const Budilnik & y) const;
    Budilnik operator +(const int & y) const;
    Budilnik operator -(const int & y) const;
    friend Budilnik operator +(const int x, const Budilnik & y);
    friend Budilnik operator -(const int x, const Budilnik & y);
};
void Budilnik::Set_time(int hour_g, int min_g, int sec_g)
{
    if((hour_g>23)||(hour_g<=0)) hour=0;
    else hour=hour_g;
    if((min_g>59)||(min_g<=0)) min=0;
    else min=min_g;
    if((sec_g>59)||(sec_g<=0)) sec=0;
    else sec=sec_g;
}
void Budilnik::Print_time()
{
    cout<<hour<<':'<<min<<':'<<sec;
}
void Budilnik::Print_rem_time() 
{
    time_t rem_t;
    struct tm * time_m;
    rem_t=time(NULL);
    time_m=localtime(&rem_t);
    int rem_hour, rem_min, rem_sec;
    if(time_m->tm_sec > sec) rem_sec=(60-time_m->tm_sec)+sec;
    else rem_sec=sec-time_m->tm_sec;
    if(time_m->tm_min > min) rem_min=(60-time_m->tm_min)+min;
    else rem_min=min-time_m->tm_min;
    if(time_m->tm_hour > hour) rem_hour=(23-time_m->tm_hour)+hour;
    else rem_hour=hour-time_m->tm_hour;
    cout<<rem_hour<<':'<<rem_min<<':'<<rem_sec;
}
int Time_sec(Budilnik x)
{
    int h_sec=x.Get_hour()*3600;
    int m_sec=x.Get_min()*60;
    int s_sec=x.Get_sec();
    return h_sec+m_sec+s_sec;
}
Budilnik Budilnik::operator +(const Budilnik & y) const
{
    Budilnik res;
    res.Set_time();
    if((sec+y.sec)>59)
    {
        res.min=(sec+y.sec)/60;
        res.sec=(sec+y.sec)%60;
    }
    else res.sec=sec+y.sec;
    if((min+y.min)>59)
    {
        res.hour=(min+y.min)/60;
        res.min=(min+y.min)%60;
    }
    else res.min=min+y.min;
    res.hour=res.hour+hour+y.hour;
    if(res.hour==24) res.hour=0;
    if((res.hour>24)&&(res.hour!=0)) res.hour=res.hour%24;
    return res;
}
Budilnik Budilnik::operator -(const Budilnik & y) const
{
    Budilnik res;
    res.Set_time();
    if((sec-y.sec)<0)
    {
        res.sec=60+sec-y.sec;
        res.min-=1;
    }
    else res.sec=sec-y.sec;
    if((min-y.min)<0)
    {
        res.min=60+min-y.min;
        res.hour-=1;
    }
    else res.min=min-y.min;
    if((hour-y.hour)<0) res.hour=24+hour-y.hour;
    else res.hour=hour-y.hour;
    return res;
}
Budilnik Budilnik::operator +(const int & y) const
{
    Budilnik res;
    res.Set_time();
    if(y>=60) 
    {
        res.sec=y%60;
        res.min=min+(y/60);
    }
    else 
    {
        res.sec=sec+y;
        if(res.sec>=60)
        {
            res.min=res.sec/60;
            res.sec=res.sec%60;
        }
    }
    if(res.sec>=60)
    {
        res.min=res.sec;
        res.sec=res.sec%60;
        res.min=min+(res.min/60);
    }
    if(res.min>=60)
    {
        res.hour=res.min;
        res.min=res.min%60;
        res.hour=hour+(res.hour/60);
    }
    return res;
}
Budilnik Budilnik::operator -(const int & y) const
{
    Budilnik res, z;
    res.Set_time();
    z.Set_time();
    z.sec=y%60;
    z.min=y/60;
    z.hour=y/3600;
    if((sec-z.sec)<0)
    {
        res.sec=60+sec-z.sec;
        res.min-=1;
    }
    else res.sec=sec-z.sec;
    if((min-z.min)<0)
    {
        res.min=60+min-z.min;
        res.hour-=1;
    }
    else res.min=min-z.min;
    if((hour-z.hour)<0) res.hour=24+hour-z.hour;
    else res.hour=hour-z.hour;
    return res;
}
bool operator ==(Budilnik const & y, Budilnik const & t)
{
    int y_y=Time_sec(y);
    int t_t=Time_sec(t);
    return (y_y==t_t);
}
bool operator !=(Budilnik const & y, Budilnik const & t)
{
    return !(y==t);
}
bool operator <(Budilnik const & y, Budilnik const & t)
{
    int y_y=Time_sec(y);
    int t_t=Time_sec(t);
    return (y_y<t_t);
}
bool operator >=(Budilnik const & y, Budilnik const & t)
{
    return !(y<t);
}
bool operator >(Budilnik const & y, Budilnik const & t)
{
    return t<y;
}
bool operator <=(Budilnik const & y, Budilnik const & t)
{
    return !(y>t);
}
Budilnik operator +(const int x, const Budilnik & y)
{
    Budilnik res;
    int z=Time_sec(y);
    z+=x; 
    res.sec=z%60;
    z=z-(z%60);
    res.min=(z%3600)/60;
    z=z-(z%3600);
    res.hour=z/3600;
    return res;
}
Budilnik operator -(const int x, const Budilnik & y)
{
    Budilnik res;
    int z=Time_sec(y);
    z=x-z; 
    res.sec=z%60;
    z=z-(z%60);
    res.min=(z%3600)/60;
    z=z-(z%3600);
    res.hour=z/3600;
    return res;
}
int main(void)
{
setlocale(LC_ALL,"Russian");
int h1,m1,s1,h2,m2,s2;
cout<<"введите значения a:";
cin>>h1>>m1>>s1;
cout<<"введите значения b:";
cin>>h2>>m2>>s2;
Budilnik a, b, c;
a.Set_time(h1,m1,s1);
b.Set_time(h2,m2,s2);
cout<<"a!=b : "<<(a!=b?"Истина":"Ложь")<<endl;  //неравно
cout<<"a<b : " <<(a<b? "Истина":"Ложь")<<endl;  //меньше
cout<<"a<=b : "<<(a<=b?"Истина":"Ложь")<<endl;  //меньше или равно
cout<<"a==b : "<<(a==b?"Истина":"Ложь")<<endl;  //равно
cout<<"a>b : " <<(a>b? "Истина":"Ложь")<<endl;  //больше 
cout<<"a>=b : "<<(a>=b?"Истина":"Ложь")<<endl;  //больше или равно
cout<<"a+b: ";              //c=a.operator+(b)
c=a+b;
c.Print_time();
cout<<endl<<"b-a: ";
c=b-a;              //c=b.operator-(a)
c.Print_time();
cout<<endl<<"a+4567: ";
c=a+4567;               // c=a.operator+(4567)
c.Print_time();
cout<<endl<<"b-36: ";
c=b-36;             //c= b.operator-(36) 
c.Print_time();
cout<<endl<<"c=18+a= ";
c=18+a;             // c=operator+(18,a)
c.Print_time();
cout<<endl<<"c=27000-a= ";
c=27000-a;          // c=operator-(27000,a)
c.Print_time();
cin.get();
cin.get();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2013, 23:10     Уважаемые программисты прокомментируйте программу пожалуйста
Посмотрите здесь:

C++ уважаемые программисты прокомментируйте программу пожалуйста ...очень надо
прокомментируйте пожалуйста готовую программу C++
C++ прокомментируйте пожалуйста программу
Уважаемые программисты прокомментируйте программу пожалуйста C++
C++ Уважаемые программисты прокомментируйте программу пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
11.09.2013, 23:14     Уважаемые программисты прокомментируйте программу пожалуйста #2
Цитата Сообщение от Рас Посмотреть сообщение
прокомментируйте программу пожалуйста
прокомментировать или может покритиковать?)
Рас
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 14
11.09.2013, 23:17  [ТС]     Уважаемые программисты прокомментируйте программу пожалуйста #3
Цитата Сообщение от ___ Посмотреть сообщение
прокомментировать или может покритиковать?)
желательно прокомментировать))
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
11.09.2013, 23:21     Уважаемые программисты прокомментируйте программу пожалуйста #4
Цитата Сообщение от Рас Посмотреть сообщение
желательно прокомментировать))
я извиняюсь, но зачем комментировать??

Добавлено через 1 минуту
ладно, так и быть
Цитата Сообщение от Рас Посмотреть сообщение
C++
1
2
3
class Budilnik // это класс
{ 
private: // здесь начинаются закрытые данные
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
11.09.2013, 23:22     Уважаемые программисты прокомментируйте программу пожалуйста #5
Цитата Сообщение от ___ Посмотреть сообщение
зачем комментировать??

Не по теме:

человек не знает как работает будильник.

User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
11.09.2013, 23:24     Уважаемые программисты прокомментируйте программу пожалуйста #6
Цитата Сообщение от coloc Посмотреть сообщение
человек не знает как работает будильник.
понятно, но неужели у кого то возникнет желание комментировать 250 строк кода?
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
11.09.2013, 23:27     Уважаемые программисты прокомментируйте программу пожалуйста #7
Цитата Сообщение от ___ Посмотреть сообщение
понятно, но неужели у кого то возникнет желание комментировать 250 строк кода?

Не по теме:

наивный ТС полагает что да

User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
11.09.2013, 23:27     Уважаемые программисты прокомментируйте программу пожалуйста #8
если что-то конкретно непонятно, то конечно, можно объяснить и рассказать. но чтоб так, то увольте
Рас
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 14
11.09.2013, 23:33  [ТС]     Уважаемые программисты прокомментируйте программу пожалуйста #9
я не понял Дружественную функцию )
извените за кривые руки)
zer0mail
11.09.2013, 23:35
  #10

Не по теме:

Возможно, ТС дали задачу и он хочет скомпоновать решение из одного источника и объяснение из другого
Ну не садиться же за учебники, в самом деле...

User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
11.09.2013, 23:38     Уважаемые программисты прокомментируйте программу пожалуйста #11
Цитата Сообщение от Рас Посмотреть сообщение
я не понял Дружественную функцию )
да я их тоже не понимаю. эти дружественные функции постоянно лезут в private данные и изменяют их (хотя некоторые просто читают)
Рас
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 14
12.09.2013, 00:15  [ТС]     Уважаемые программисты прокомментируйте программу пожалуйста #12
Цитата Сообщение от zer0mail Посмотреть сообщение

Не по теме:

Возможно, ТС дали задачу и он хочет скомпоновать решение из одного источника и объяснение из другого
Ну не садиться же за учебники, в самом деле...

Времени нет) В Пт надо защитить эту программу)

Добавлено через 2 минуты
Похож надо открыть книшку (Стевен Прата)

Добавлено через 16 минут
Ладно фиг с ним как нибуть разберусь

 Комментарий модератора 
Пункт 5.16 Правил: Один вопрос - одна тема.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2013, 09:19     Уважаемые программисты прокомментируйте программу пожалуйста
Еще ссылки по теме:

Уважаемые программисты прокомментируйте программу пожалуйста C++
C++ Уважаемые программисты прокомментируйте программу пожалуйста
C++ Прокомментируйте пожалуйста программу

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

Или воспользуйтесь поиском по форуму:
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
12.09.2013, 09:19     Уважаемые программисты прокомментируйте программу пожалуйста #13
Цитата Сообщение от Рас Посмотреть сообщение
int main(void)
в аргументе функции не обязательно указывать void. эт так делают в языке Си а в C++ до лампочки. можешь писать, можешь не писать - результат будет один и тот же
Yandex
Объявления
12.09.2013, 09:19     Уважаемые программисты прокомментируйте программу пожалуйста
Ответ Создать тему
Опции темы

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