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

Оформление и оптимизация кода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как вычислить остаток от деления? http://www.cyberforum.ru/cpp-beginners/thread505117.html
Помогите пожалуйста разобраться - как вычислить остаток от деления переменной X на число Y. как воспользоваться функцией div? судя по описанию:
C++ Использование своих функций, error C2601 Подскажите пожалуйста. У меня есть пара функций, есть для них прототипы, а компилер говорит, что неправильное определение функций, я сомтрела в мсдн по коду ошибки, но не разобралась. Может я не туда прототипы сую? У меня проект создан через MFC AppWizard; соответственно файлы myproj.cpp myproj.h myprojDlg.cpp myprojDlg.h я прототипы в myprojDlg.h ставлю: int dayInMonth(int... http://www.cyberforum.ru/cpp-beginners/thread505092.html
Нужно определить, что пользователь выключик монитор или вообще отцепил его C++
Можно ли узнать включён ли монитор и/или вообще подключён он сейчас к компу или нет? (Нужно определить, что пользователь выключик монитор или вообще отцепил его)
Работа с Ftp (internetwritefile) C++
Не понимаю как произвести дозапись (append) файла по ftp? Как создавать и писать в него разобрался, а вот с дозаписью проблемы... Среди всех команд позиционирования нашёл только одну и она используются для read (для докачки). Заранее спасибо. С уважением, Дмитрий.
C++ Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. http://www.cyberforum.ru/cpp-beginners/thread505034.html
Помогите пожалуйста. Есть сервис nt. Попробую передать основной смысл, чтоб не грузить ненужным кодом. // обработчик void ServHandler(DWORD Opcode) { InitArr(); while (Status == "'Running'") {
C++ new и delete при освобождении памяти Здравствуйте. Скажите, пожалуйста что я неправильно делаю. При освобождении памяти. Выделяем память: char **VIRTUAL = NULL; if (VIRTUAL == NULL) { VIRTUAL = new char*; for (i = 0; i < 50; i++) VIRTUAL = new char; } подробнее

Показать сообщение отдельно
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27

Оформление и оптимизация кода - C++

01.08.2006, 19:09. Просмотров 2970. Ответов 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
void CDLineDlg::OnOK() 
{
UpdateData (TRUE);
CString out; 
CTimeSpan diff;
CTime currt = CTime::GetCurrentTime();
 
int nD = currt.GetDay(); 
int nM = currt.GetMonth(); 
int nY = currt.GetYear();
 
int drD = m_DTP.GetDay(); 
int drM = m_DTP.GetMonth(); 
int drY = m_DTP.GetYear();
 
int difY=nY-drY;
int difM=nM-drM;
int difD=nD-drD;
 
if (difY>50)
{
MessageBox("C введённой вами даты прошло больше 50 лет! На фига вам линеечка!","Ошибка!!!",MB_OK);
}
if ((nY { 
MessageBox("Указанная вами дата не должна быть больше сегодняшнего числа","Ошибка!!!",MB_OK);
}
 
else
{
if ((difM 0))
{
difY=difY-1;difM=difM+12;
}
if ((difD {
bool vis =checkvisokos(nY);
int res= dayInMonth(nM-1,nY,vis);
difY=difY-1;
difM=difM+12;
difM=difM-1;
difD=difD+res;
}
 
if ((difD 0))
{
bool vis =checkvisokos(nY);
int res= dayInMonth(nM-1,nY,vis);
difM=difM-1;
difD=difD+res;
}
 
CString out =Out(difY,difM,difD,m_Sig);
MessageBox(out,"zuzu",MB_OK);
 
}
 
}
int CDLineDlg::dayInMonth(int numb_month, int year,bool visflag)
{ 
int dIm =0;
 
if ((numb_month==1)||(numb_month==3)||(numb_month==5)||(numb_month==7)||(numb_month==8)||(numb_month==10)||(numb_month==12))
{
dIm=31; 
}
else 
if ((numb_month==4)||(numb_month==6)||(numb_month==9)||(numb_month==11))
{
dIm=30;
}
else 
if (visflag==true) 
{
dIm=28;
} 
else 
{
dIm=29;
}
return dIm;
 
} 
 
bool CDLineDlg::checkvisokos(int god)
{
int r;
div_t divr;
divr=div(god,4);
r=divr.rem;
if ( r ==0) 
{ return true; 
} 
else 
{
return false;
}
}
 
int CDLineDlg::whattype(int c)
{ 
int type;
if ((c==1)||(c==21)||(c==21)||(c==31)||(c==41)||(c==51))
{
type=1;//ед.число
}
else if ( ((c>=5)&&(c=25)&&(c=35)&&(c=45)&&(c {
type =3;//мн.число
}
else
{
type= 2;//род.падеж
}
 
return type;
}
 
CString CDLineDlg::Out(int resY,int resM,int resD, CString sig)
{
CString sdifY,sdifM,sdifD,output;
 
sdifY.Format("%d", resY);
sdifD.Format("%d", resD);
sdifM.Format("%d", resM);
 
output=sig+":";
 
 
if (resY!=0) 
{
int Yt = whattype(resY);
switch (Yt)
{
case 1: {output+=sdifY+" год ";break;}
case 2: {output+=sdifY+" года ";break;}
case 3: {output+=sdifY+" лет ";break;}
}
}
 
if (resM!=0) 
{
int Mt = whattype(resM);
switch (Mt)
{
case 1: {output+=sdifM+" месяц и ";break;}
case 2: {output+=sdifM+" месяца и ";break;}
case 3: {output+=sdifM+" месяцев и ";break;}
}
}
 
if (resD!=0) 
{
int Dt = whattype(resD);
switch (Dt)
{
case 1: {output+=sdifD+" день.";break;}
case 2: {output+=sdifD+" дня.";break;}
case 3: {output+=sdifD+" дней.";break;}
}
} 
 
return output;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru