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

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

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

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

11.09.2013, 23:10. Просмотров 508. Ответов 12
Метки нет (Все метки)

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();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2013, 23:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Уважаемые программисты прокомментируйте программу пожалуйста (C++):

Уважаемые программисты по C++ - C++
Помогите плиз Описать структуру с именем STUDENT, содержащую следующие поля: -фамилия и инициалы -номер группы -успеваемость...

прокомментируйте пожалуйста программу на языке С++ на двоичные файлы если можно подробно - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main () { ofstream out (&quot;f.dat&quot;, ios::binary); int n; ...

Нужна консультация, уважаемые программисты - C++
Очень нужна Ваша помощь, потому что в этом я должным образом не разбираюсь. Программу я нашёл на просторах Интернета, которая целиком и...

уважаемые программисты, у меня компиллятор ругается( делов на 1минутку - C++
Всем доброго времени суток!.. Подскажите пожалуйста, где у меня косяк в этой программе... ____________________ #include &lt;iostream&gt; ...

Прокомментируйте пожалуйста - C++
#include &quot;iostream&quot; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; void Yacoby(int** m, int* s, int it); int...

Прокомментируйте пожалуйста - C++
Не до конца понимаю код программы. Прошу дать комментарии к коду. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include&lt;math.h&gt; using...

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

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

Не по теме:

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

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

Не по теме:

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

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

Не по теме:

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

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

Не по теме:

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

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

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

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

 Комментарий модератора 
Пункт 5.16 Правил: Один вопрос - одна тема.
0
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
12.09.2013, 09:19 #13
Цитата Сообщение от Рас Посмотреть сообщение
int main(void)
в аргументе функции не обязательно указывать void. эт так делают в языке Си а в C++ до лампочки. можешь писать, можешь не писать - результат будет один и тот же
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2013, 09:19
Привет! Вот еще темы с ответами:

Прокомментируйте, пожалуйста рекурсию - C++
Нашел в сети код прохождения доски шахм. конем. разобраться не очень получилось, помогите пожалуйста!void chessknight(int k) { c++; ...

Прокомментируйте пожалуйста прогу - C++
#include &quot;iostream&quot; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; float f2(float x){ return x+3; ...

Прокомментируйте пожалуйста код - C++
Объясните пожалуйста как работает данный кусок кода: template &lt;typename T&gt; Deque &lt;T&gt; Deque&lt;T&gt;::operator + (const Deque&lt;T&gt; &amp;L){ ...

Прокомментируйте код пожалуйста - C++
#include&lt;iostream.h&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;graphics.h&gt; class Point { int X,Y; public: ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.09.2013, 09:19
Ответ Создать тему
Опции темы

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