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

BOrland c for dos Исправить ошибку! код есть! - C++

Восстановить пароль Регистрация
 
Олег2323
1 / 1 / 0
Регистрация: 08.06.2011
Сообщений: 38
01.06.2012, 18:42     BOrland c for dos Исправить ошибку! код есть! #1
Прошу помощи!!!! Есть код....
Но проблема.....когда ввожу номер группы ( на разных студентов но один номер группы) то он выводит первого которого я ввел...а нужно чтобы выводил всех с заданной группой!!!
Так же с фамилией .. код должен быть на Borland C for dos..... ПЛИЗ ИСПРАВТЕ ОШИБКУ!!! курсач надо завтра защищать...!!!! ПРОШУ!!
------------------------------------
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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
struct BazaDannix
    {
    char LastName[30];
    char FirstName[30];
    char Age[30];
    int  BorlandC;
    int  Metodi;
    int  Istoria;
    int  Student;
    struct BazaDannix *pred;  //ykazatel na predidywiy element spiska
    struct BazaDannix *next;   //ykazatel na sled. element spiska
    } st[100];
const int M=10;
struct control
    {
    int ze;   //4islo zaniatix elementov
    int se;   //4islo svobiodnix elementov
    struct BazaDannix *A;  //na4alo spiska zaniatix elementov
    struct BazaDannix *B;  //konec spiska zaniatix
    struct BazaDannix *X;  //na4alo spiska svobodnix elementov
    struct BazaDannix *Y;  //konec spiska svobodnix elementov
    } ABXY;
int init(void);
int input(void);
int poisk(void);
int pooisk(void);
int print(void);
struct BazaDannix *Naxogdenia(int PCount);
void main(void)
{
clrscr();
printf("\nBaza dannix studentov\n");
printf("\nNajmite luduyu klavishu\n");
getch();
clrscr();
init();
char command;
while(1)
{
printf(" BAZA DANNIX STUDENTOV GRUPPI TIS\n\n");
printf("        Yspexov v poiske     \n\n");
 printf("1.Vvod informaci o  studentax \n");
 printf("2.Vivod soderjimogo\n");
 printf("3.Poisk po Famylyu v gruppe \n");
 printf("4.Poisk po Nomeru gruppi \n\n");
 printf("------Chtobi viyti najmite ESC---------\n");
 printf("\nVvedite nomer pynkta menu\n");
char command;
command=getch();
switch (command)
{
    case '1':
        input();
            clrscr();
    break;
    case '2':
        clrscr();
        print();
    break;
    case '3':
    
    poisk();
    break;
    case '4':
    pooisk();
    break;
    case 27:
        return;
    default: printf("\n\nNeverniy pynkt menu\n\n");
}
}
}
int init(void)
{
struct BazaDannix *p=st;
int i;
ABXY.ze=0;
ABXY.se=0;
ABXY.A=NULL;
ABXY.B=NULL;
ABXY.X=st;
ABXY.Y=st;
p=st;
for (i=0;i<M-1;i++)
{
    if (ABXY.se!=0)
    {
    p -> pred=p-1;
    p -> next=p+1;
    }
    else
    {
    p -> pred=NULL;
    p -> next=p+1;
    }
    p++;
    ABXY.se++;
    ABXY.Y++;
    }
    ABXY.se++;
    p -> pred=p-1;
    p -> next=NULL;
    return 0;
}
int input(void)
{
struct BazaDannix *ptr;
printf("\n\n  \n");
if (ABXY.se==0)
{
    printf("Svobodnix elementov net\n");
    return -1;
}
ptr=ABXY.X;
printf("Vvedite Imia Studenta \n");
scanf("%s",ABXY.X->LastName);
printf("Vvedite Family Studenta \n");
scanf("%s",ABXY.X->FirstName);
printf("Vvedite vozrast studenta \n");
scanf("%s",ABXY.X->Age);
printf("Vvedite Ocenku po Borland C++ for dos \n");
scanf("%d",&ptr->BorlandC);
printf("Vvedite Ocenku po Metodi optimizacii \n");
scanf("%d",&ptr->Metodi);
printf("Vvedite Ocenku po istorii \n");
scanf("%d",&ptr->Istoria);
printf("Nomer gruppi \n");
scanf("%d",&ptr->Student);
if (ABXY.se==1)
{
 ABXY.X=NULL;
 ptr->next=NULL;
 ptr->pred=ABXY.B;
 ABXY.B->next=ptr;
 ABXY.B=ptr;
 ABXY.Y=NULL;
}
 else
 {
  if (ABXY.ze==0)
  ABXY.A=ptr;
  ABXY.X=ptr->next;
  ptr->next=NULL;
  ptr->pred=ABXY.B;
  ABXY.B->next=ptr;
  ABXY.B=ptr;
  ABXY.X->pred=NULL;
 }
 ABXY.ze++;
 ABXY.se--;
 return 0;
 }
int print(void)
{
int i;
struct BazaDannix *ptr;
ptr=ABXY.A;
printf("Baza:\n\n");
if (ABXY.ze==0)
{
 printf("V baze net zapisei\n\n");
 return -1;
}
for (i=0;i<ABXY.ze;i++)
{
 printf("%d Familya:  %s\n",(i+1),ptr->FirstName);
 printf("  Imya:   %s\n",ptr->LastName);
 printf("  Vozrast Studenta: %s\n",ptr->Age);
 printf("  Ocenka po Borland C++ for Dos: %d\n",ptr->BorlandC);
 printf("  Ocenka po Metodi optimizacii: %d\n",ptr->Metodi);
 printf("  Ocenka po Istorii: %d\n",ptr->Istoria);
 printf("  Nomer gruppi %d\n",ptr->Student);
 ptr=ptr->next;
}
printf("\n\n Vsego zapisei=%d\n\n",i);
return 0;
}
struct BazaDannix *f(char PCount)
{
 int i;
 struct BazaDannix *ptf;
 ptf=ABXY.A;
 for (i=0;i<ABXY.ze;i++)  //nb - 4islo zaniatix elementov
 {
  if( PCount==*ptf->FirstName)
  return ptf;
  else ptf=ptf->next;
 }
 return NULL;
}
int poisk(void)
{
char PCount;
int i;
struct BazaDannix *ptr;
if (ABXY.ze==0)
    {
    printf("\nV baze net zapisei\n\n");
    return -1;
    }
printf("Vvedite Famylyu studenta :    \n");
scanf("%c", &PCount);
if ((ptr=f(PCount))==0)
    {
    printf("Ni4ego ne naideno\n");
    return -1;
    }
if (ptr==ABXY.A)
{
    if (ABXY.ze==1)
    {
     printf("  Familya:  %s\n",ptr->FirstName);
     printf("  Ocenka po matematike: %d\n",ptr->BorlandC);
     printf("  Ocenka po russkomu : %d\n",ptr->Metodi);
     printf("  Ocenka po Istorii : %d\n",ptr->Istoria);
     printf("  Nomer gruppi %d\n",ptr->Student);
     return 0;
    }
  else
  { ABXY.A=ptr->next;
  printf("  Familya:  %s\n",ptr->FirstName);
     printf("  Ocenka po matematike: %d\n",ptr->BorlandC);
     printf("  Ocenka po russkomu : %d\n",ptr->Metodi);
     printf("  Ocenka po Istorii : %d\n",ptr->Istoria);
     printf("  Nomer gruppi %d\n",ptr->Student);
  return 0;
  }
  }
else
 {if (ptr==ABXY.B)
   {
   printf("  Familya:  %s\n",ptr->FirstName);
     printf("  Ocenka po matematike: %d\n",ptr->BorlandC);
     printf("  Ocenka po russkomu : %d\n",ptr->Metodi);
     printf("  Ocenka po Istorii : %d\n",ptr->Istoria);
     printf("  Nomer gruppi %d\n",ptr->Student);
}
else
{
 ptr->pred->next=ptr->next;
 ptr->next->pred=ptr->pred;
 return 0;
}
}
}
struct BazaDannix *f(int PCounnt)
{
 int i;
 struct BazaDannix *ptf;
 ptf=ABXY.A;
 for (i=0;i<ABXY.ze;i++)  //nb - 4islo zaniatix elementov
 {
  if( PCounnt==ptf->Student)
  return ptf;
  else ptf=ptf->next;
 }
 return NULL;
}
int pooisk(void)
{
int PCounnt;
int i;
struct BazaDannix *ptr;
if (ABXY.ze==0)
    {
    printf("\nV baze net zapisei\n\n");
    return -1;
    }
printf("Vvedite Nomer gruppi studenta :    \n");
scanf("%d", &PCounnt);
if ((ptr=f(PCounnt))==0)
    {
    printf("Ni4ego ne naideno\n");
    return -1;
    }
    {
if (ptr==ABXY.A)
{
    if (ABXY.ze==0)
    {
     printf("%d  Familya:  %s\n",ptr->FirstName);
     printf("  Ocenka po matematike: %d\n",ptr->BorlandC);
     printf("  Ocenka po russkomu : %d\n",ptr->Metodi);
     printf("  Ocenka po Istorii : %d\n",ptr->Istoria);
     printf("  Nomer gruppi %d\n",ptr->Student);
     return 0;
    }
  else
  { ABXY.A=ptr->next;
     printf("  Familya:  %s\n",ptr->FirstName);
     printf("  Ocenka po matematike: %d\n",ptr->BorlandC);
     printf("  Ocenka po russkomu : %d\n",ptr->Metodi);
     printf("  Ocenka po Istorii : %d\n",ptr->Istoria);
     printf("  Nomer gruppi %d\n",ptr->Student);
  return 0;
  }
  }
else
 {if (ptr==ABXY.B)
   {
     printf("  Familya:  %s\n",ptr->FirstName);
     printf("  Ocenka po matematike: %d\n",ptr->BorlandC);
     printf("  Ocenka po russkomu : %d\n",ptr->Metodi);
     printf("  Ocenka po Istorii : %d\n",ptr->Istoria);
     printf("  Nomer gruppi %d\n",ptr->Student);
}
else
{
 ptr->pred->next=ptr->next;
 ptr->next->pred=ptr->pred;
 return 0;
}
}
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
01.06.2012, 21:25     BOrland c for dos Исправить ошибку! код есть! #2
Олег2323, твой код с трудом разобрал, тут на форуме есть теги которые позволяют его не текстовкой а кодом подавать, но ладно это так замечание.
Вобщем ругать концепт твоих функций не буду скажу одно - если у тебя функция int function то возврат у неё должен быть из всех ветвей, ряд твоих функций не имел возвратов во всех ветвях хотябы последняя int pooisk. Так же в коде было напутано со скобками и пропущен else здесь
Цитата Сообщение от Олег2323 Посмотреть сообщение
if ((ptr=f(PCounnt))==0)
{
printf("Ni4ego ne naideno\n");
return -1;
}
else
{
Вобщем даже не знаю как єтот код мог вообще работать
Ниже код который слинковался 4-м борландСи и как бы что то можно вводить короче работать с программой. Далее мне нужна конкретика что именно и при каком вводе не работает - код раздут и из за этого сложен для восприятия
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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
 
struct BazaDannix
{
    char LastName[30];
    char FirstName[30];
    char Age[30];
    int BorlandC;
    int Metodi;
    int Istoria;
    int Student;
    struct BazaDannix *pred; //ykazatel na predidywiy element spiska
    struct BazaDannix *next; //ykazatel na sled. element spiska
} st[100];
const int M=10;
struct control
{
    int ze; //4islo zaniatix elementov
    int se; //4islo svobiodnix elementov
    struct BazaDannix *A; //na4alo spiska zaniatix elementov
    struct BazaDannix *B; //konec spiska zaniatix
    struct BazaDannix *X; //na4alo spiska svobodnix elementov
    struct BazaDannix *Y; //konec spiska svobodnix elementov
} ABXY;
int init(void);
int input(void);
int poisk(void);
int pooisk(void);
int print(void);
struct BazaDannix *Naxogdenia(int PCount);
 
void main(void)
{
    clrscr();
    printf("\nBaza dannix studentov\n");
    printf("\nNajmite luduyu klavishu\n");
    getch();
    clrscr();
    init();
    char command;
    while(1)
    {
        printf(" BAZA DANNIX STUDENTOV GRUPPI TIS\n\n");
        printf(" Yspexov v poiske \n\n");
        printf("1.Vvod informaci o studentax \n");
        printf("2.Vivod soderjimogo\n");
        printf("3.Poisk po Famylyu v gruppe \n");
        printf("4.Poisk po Nomeru gruppi \n\n");
        printf("------Chtobi viyti najmite ESC---------\n");
        printf("\nVvedite nomer pynkta menu\n");
        command=getch();
        switch (command)
        {
            case '1':
            input();
            clrscr();
            break;
            case '2':
            clrscr();
            print();
            break;
            case '3':
 
            poisk();
            break;
            case '4':
            pooisk();
            break;
            case 27:
            return;
            default: 
                printf("\n\nNeverniy pynkt menu\n\n");
                break;
        }
    }
}
 
int init(void)
{
    struct BazaDannix *p=st;
    int i;
    ABXY.ze=0;
    ABXY.se=0;
    ABXY.A=NULL;
    ABXY.B=NULL;
    ABXY.X=st;
    ABXY.Y=st;
    p=st;
    for (i=0;i<M-1;i++)
    {
        if (ABXY.se!=0)
        {
            p -> pred=p-1;
            p -> next=p+1;
        }
        else
        {
            p -> pred=NULL;
            p -> next=p+1;
        }
        p++;
        ABXY.se++;
        ABXY.Y++;
    }
    ABXY.se++;
    p -> pred=p-1;
    p -> next=NULL;
    return 0;
}
 
int input(void)
{
    struct BazaDannix *ptr;
    printf("\n\n \n");
    if (ABXY.se==0)
    {
        printf("Svobodnix elementov net\n");
        return -1;
    }
    ptr=ABXY.X;
    printf("Vvedite Imia Studenta \n");
    scanf("%s",ABXY.X->LastName);
    printf("Vvedite Family Studenta \n");
    scanf("%s",ABXY.X->FirstName);
    printf("Vvedite vozrast studenta \n");
    scanf("%s",ABXY.X->Age);
    printf("Vvedite Ocenku po Borland C++ for dos \n");
    scanf("%d",&ptr->BorlandC);
    printf("Vvedite Ocenku po Metodi optimizacii \n");
    scanf("%d",&ptr->Metodi);
    printf("Vvedite Ocenku po istorii \n");
    scanf("%d",&ptr->Istoria);
    printf("Nomer gruppi \n");
    scanf("%d",&ptr->Student);
    if (ABXY.se==1)
    {
        ABXY.X=NULL;
        ptr->next=NULL;
        ptr->pred=ABXY.B;
        ABXY.B->next=ptr;
        ABXY.B=ptr;
        ABXY.Y=NULL;
    }
    else
    {
        if (ABXY.ze==0)
            ABXY.A=ptr;
        ABXY.X=ptr->next;
        ptr->next=NULL;
        ptr->pred=ABXY.B;
        ABXY.B->next=ptr;
        ABXY.B=ptr;
        ABXY.X->pred=NULL;
    }
    ABXY.ze++;
    ABXY.se--;
    return 0;
}
 
int print(void)
{
    int i;
    struct BazaDannix *ptr;
    ptr=ABXY.A;
    printf("Baza:\n\n");
    if (ABXY.ze==0)
    {
        printf("V baze net zapisei\n\n");
        return -1;
    }
    for (i=0;i<ABXY.ze;i++)
    {
        printf("%d Familya: %s\n",(i+1),ptr->FirstName);
        printf(" Imya: %s\n",ptr->LastName);
        printf(" Vozrast Studenta: %s\n",ptr->Age);
        printf(" Ocenka po Borland C++ for Dos: %d\n",ptr->BorlandC);
        printf(" Ocenka po Metodi optimizacii: %d\n",ptr->Metodi);
        printf(" Ocenka po Istorii: %d\n",ptr->Istoria);
        printf(" Nomer gruppi %d\n",ptr->Student);
        ptr=ptr->next;
    }
    printf("\n\n Vsego zapisei=%d\n\n",i);
    return 0;
}
 
struct BazaDannix *f(char PCount)
{
    int i;
    struct BazaDannix *ptf;
    ptf=ABXY.A;
    for (i=0;i<ABXY.ze;i++) //nb - 4islo zaniatix elementov
    {
        if( PCount==*ptf->FirstName)
            return ptf;
        else 
            ptf=ptf->next;
    }
    return NULL;
}
 
int poisk(void)
{
    char PCount;
    int i;
    struct BazaDannix *ptr;
    if (ABXY.ze==0)
    {
        printf("\nV baze net zapisei\n\n");
        return -1;
    }
    printf("Vvedite Famylyu studenta : \n");
    scanf("%c", &PCount);
    if ((ptr=f(PCount))==0)
    {
        printf("Ni4ego ne naideno\n");
        return -1;
    }
    if (ptr==ABXY.A)
    {
        if (ABXY.ze==1)
        {
            printf(" Familya: %s\n",ptr->FirstName);
            printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
            printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
            printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
            printf(" Nomer gruppi %d\n",ptr->Student);
            return 0;
        }
        else
        { 
            ABXY.A=ptr->next;
            printf(" Familya: %s\n",ptr->FirstName);
            printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
            printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
            printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
            printf(" Nomer gruppi %d\n",ptr->Student);
            return 0;
        }
    }
    else
    {
        if (ptr==ABXY.B)
        {
            printf(" Familya: %s\n",ptr->FirstName);
            printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
            printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
            printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
            printf(" Nomer gruppi %d\n",ptr->Student);
        }
        else
        {
            ptr->pred->next=ptr->next;
            ptr->next->pred=ptr->pred;
            return 0;
        }
    }
    return 0;
}
 
struct BazaDannix *f(int PCounnt)
{
    int i;
    struct BazaDannix *ptf;
    ptf=ABXY.A;
    for (i=0;i<ABXY.ze;i++) //nb - 4islo zaniatix elementov
    {
        if( PCounnt==ptf->Student)
            return ptf;
        else 
            ptf=ptf->next;
    }
    return NULL;
}
 
int pooisk(void)
{
    int PCounnt;
    int i;
    struct BazaDannix *ptr;
    if (ABXY.ze==0)
    {
        printf("\nV baze net zapisei\n\n");
        return -1;
    }
    printf("Vvedite Nomer gruppi studenta : \n");
    scanf("%d", &PCounnt);
    if ((ptr=f(PCounnt))==0)
    {
        printf("Ni4ego ne naideno\n");
        return -1;
    }
    else
    {
        if (ptr==ABXY.A)
        {
            if (ABXY.ze==0)
            {
                printf("%d Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
                return 0;
            }
            else
            { 
                ABXY.A=ptr->next;
                printf(" Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
                return 0;
            }
        }
        else
        {
            if (ptr==ABXY.B)
            {
                printf(" Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
            }
            else
            {
                ptr->pred->next=ptr->next;
                ptr->next->pred=ptr->pred;
                return 0;
            }
        }
    }
    return 0;
}
Миниатюры
BOrland c for dos Исправить ошибку! код есть!   BOrland c for dos Исправить ошибку! код есть!  
Олег2323
1 / 1 / 0
Регистрация: 08.06.2011
Сообщений: 38
02.06.2012, 01:28  [ТС]     BOrland c for dos Исправить ошибку! код есть! #3
Смотри когда вводим студентов...разная фамилия оценки..и т.д..и вводим одну и ту же группу у каждого..то он выводит только первого которого ввели... а надо чтобы выводил всех с одной и той же группой..но с разными оценками и фамилией. оч прошу вот этот момент подсказать.
--
но ты красава +1 от меня ..вот этого момента описанного выше у меня нету...т.е не работает..
Олег2323
1 / 1 / 0
Регистрация: 08.06.2011
Сообщений: 38
04.06.2012, 12:36  [ТС]     BOrland c for dos Исправить ошибку! код есть! #4
............................................................................................
-=ЮрА=-
Заблокирован
Автор FAQ
04.06.2012, 15:36     BOrland c for dos Исправить ошибку! код есть! #5
Олег2323, попробуй этот код с циклами, но это больше моя попытка залатать нежели что то осмысленное. Не обижайся у тебя неверно всё от начала и до конца - сам концепт, поэтому и не работает. Чтобы было всё ок надо садиться и всё писать с нуля, такой вариант приемлим?
Код с заплаткой
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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
 
struct BazaDannix
{
    char LastName[30];
    char FirstName[30];
    char Age[30];
    int BorlandC;
    int Metodi;
    int Istoria;
    int Student;
    struct BazaDannix *pred; //ykazatel na predidywiy element spiska
    struct BazaDannix *next; //ykazatel na sled. element spiska
} st[100];
const int M=10;
struct control
{
    int ze; //4islo zaniatix elementov
    int se; //4islo svobiodnix elementov
    struct BazaDannix *A; //na4alo spiska zaniatix elementov
    struct BazaDannix *B; //konec spiska zaniatix
    struct BazaDannix *X; //na4alo spiska svobodnix elementov
    struct BazaDannix *Y; //konec spiska svobodnix elementov
} ABXY;
int init(void);
int input(void);
int poisk(void);
int pooisk(void);
int print(void);
struct BazaDannix *Naxogdenia(int PCount);
 
void main(void)
{
    clrscr();
    printf("\nBaza dannix studentov\n");
    printf("\nNajmite luduyu klavishu\n");
    getch();
    clrscr();
    init();
    char command;
    while(1)
    {
        printf(" BAZA DANNIX STUDENTOV GRUPPI TIS\n\n");
        printf(" Yspexov v poiske \n\n");
        printf("1.Vvod informaci o studentax \n");
        printf("2.Vivod soderjimogo\n");
        printf("3.Poisk po Famylyu v gruppe \n");
        printf("4.Poisk po Nomeru gruppi \n\n");
        printf("------Chtobi viyti najmite ESC---------\n");
        printf("\nVvedite nomer pynkta menu\n");
        command=getch();
        switch (command)
        {
            case '1':
            input();
            clrscr();
            break;
            case '2':
            clrscr();
            print();
            break;
            case '3':
 
            poisk();
            break;
            case '4':
            pooisk();
            break;
            case 27:
            return;
            default: 
                printf("\n\nNeverniy pynkt menu\n\n");
                break;
        }
    }
}
 
int init(void)
{
    struct BazaDannix *p=st;
    int i;
    ABXY.ze=0;
    ABXY.se=0;
    ABXY.A=NULL;
    ABXY.B=NULL;
    ABXY.X=st;
    ABXY.Y=st;
    p=st;
    for (i=0;i<M-1;i++)
    {
        if (ABXY.se!=0)
        {
            p -> pred=p-1;
            p -> next=p+1;
        }
        else
        {
            p -> pred=NULL;
            p -> next=p+1;
        }
        p++;
        ABXY.se++;
        ABXY.Y++;
    }
    ABXY.se++;
    p -> pred=p-1;
    p -> next=NULL;
    return 0;
}
 
int input(void)
{
    struct BazaDannix *ptr;
    printf("\n\n \n");
    if (ABXY.se==0)
    {
        printf("Svobodnix elementov net\n");
        return -1;
    }
    ptr=ABXY.X;
    printf("Vvedite Imia Studenta \n");
    scanf("%s",ABXY.X->LastName);
    printf("Vvedite Family Studenta \n");
    scanf("%s",ABXY.X->FirstName);
    printf("Vvedite vozrast studenta \n");
    scanf("%s",ABXY.X->Age);
    printf("Vvedite Ocenku po Borland C++ for dos \n");
    scanf("%d",&ptr->BorlandC);
    printf("Vvedite Ocenku po Metodi optimizacii \n");
    scanf("%d",&ptr->Metodi);
    printf("Vvedite Ocenku po istorii \n");
    scanf("%d",&ptr->Istoria);
    printf("Nomer gruppi \n");
    scanf("%d",&ptr->Student);
    if (ABXY.se==1)
    {
        ABXY.X=NULL;
        ptr->next=NULL;
        ptr->pred=ABXY.B;
        ABXY.B->next=ptr;
        ABXY.B=ptr;
        ABXY.Y=NULL;
    }
    else
    {
        if (ABXY.ze==0)
            ABXY.A=ptr;
        ABXY.X=ptr->next;
        ptr->next=NULL;
        ptr->pred=ABXY.B;
        ABXY.B->next=ptr;
        ABXY.B=ptr;
        ABXY.X->pred=NULL;
    }
    ABXY.ze++;
    ABXY.se--;
    return 0;
}
 
int print(void)
{
    int i;
    struct BazaDannix *ptr;
    ptr=ABXY.A;
    printf("Baza:\n\n");
    if (ABXY.ze==0)
    {
        printf("V baze net zapisei\n\n");
        return -1;
    }
    for (i=0;i<ABXY.ze;i++)
    {
        printf("%d Familya: %s\n",(i+1),ptr->FirstName);
        printf(" Imya: %s\n",ptr->LastName);
        printf(" Vozrast Studenta: %s\n",ptr->Age);
        printf(" Ocenka po Borland C++ for Dos: %d\n",ptr->BorlandC);
        printf(" Ocenka po Metodi optimizacii: %d\n",ptr->Metodi);
        printf(" Ocenka po Istorii: %d\n",ptr->Istoria);
        printf(" Nomer gruppi %d\n",ptr->Student);
        ptr=ptr->next;
    }
    printf("\n\n Vsego zapisei=%d\n\n",i);
    return 0;
}
 
struct BazaDannix *f(char PCount)
{
    int i;
    struct BazaDannix *ptf;
    ptf=ABXY.A;
    for (i=0;i<ABXY.ze;i++) //nb - 4islo zaniatix elementov
    {
        if( PCount==*ptf->FirstName)
            return ptf;
        else 
            ptf=ptf->next;
    }
    return NULL;
}
 
int poisk(void)
{
    char PCount;
    int i;
    struct BazaDannix *ptr;
    if (ABXY.ze==0)
    {
        printf("\nV baze net zapisei\n\n");
        return -1;
    }
    printf("Vvedite Famylyu studenta : \n");
    scanf("%c", &PCount);
    if ((ptr=f(PCount))==0)
    {
        printf("Ni4ego ne naideno\n");
        return -1;
    }
    for (i=0;i<M-1;i++)
    {
        if (ptr==ABXY.A)
        {
            if (ABXY.ze==1)
            {
                printf(" Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
                return 0;
            }
            else
            { 
                ABXY.A=ptr->next;
                printf(" Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
                return 0;
            }
        }
        else
        {
            if (ptr==ABXY.B)
            {
                printf(" Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
            }
            else
            {
                ptr->pred->next=ptr->next;
                ptr->next->pred=ptr->pred;
                return 0;
            }
        }
    }
    return 0;
}
 
struct BazaDannix *f(int PCounnt)
{
    int i;
    struct BazaDannix *ptf;
    ptf=ABXY.A;
    for (i=0;i<ABXY.ze;i++) //nb - 4islo zaniatix elementov
    {
        if( PCounnt==ptf->Student)
            return ptf;
        else 
            ptf=ptf->next;
    }
    return NULL;
}
 
int pooisk(void)
{
    int PCounnt;
    int i;
    struct BazaDannix *ptr;
    if (ABXY.ze==0)
    {
        printf("\nV baze net zapisei\n\n");
        return -1;
    }
    printf("Vvedite Nomer gruppi studenta : \n");
    scanf("%d", &PCounnt);
    if ((ptr=f(PCounnt))==0)
    {
        printf("Ni4ego ne naideno\n");
        return -1;
    }
    for (i=0;i<M-1;i++)
    {
        if (ptr==ABXY.A)
        {
            if (ABXY.ze==0)
            {
                printf("%d Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
                return 0;
            }
            else
            { 
                ABXY.A=ptr->next;
                printf(" Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
                return 0;
            }
        }
        else
        {
            if (ptr==ABXY.B)
            {
                printf(" Familya: %s\n",ptr->FirstName);
                printf(" Ocenka po matematike: %d\n",ptr->BorlandC);
                printf(" Ocenka po russkomu : %d\n",ptr->Metodi);
                printf(" Ocenka po Istorii : %d\n",ptr->Istoria);
                printf(" Nomer gruppi %d\n",ptr->Student);
            }
            else
            {
                ptr->pred->next=ptr->next;
                ptr->next->pred=ptr->pred;
                return 0;
            }
        }
    }
    return 0;
}
Олег2323
1 / 1 / 0
Регистрация: 08.06.2011
Сообщений: 38
04.06.2012, 16:41  [ТС]     BOrland c for dos Исправить ошибку! код есть! #6
Юра реально спасибо.....тебе....но не получилось....Но по карйне мере ты старался что то сделать...! спасибо!!
-=ЮрА=-
Заблокирован
Автор FAQ
05.06.2012, 17:20     BOrland c for dos Исправить ошибку! код есть! #7
Олег2323, вот как я вижу это задание
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
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
typedef struct 
{
    int  BorlandC;
    int  Metodi;
    int  Istoria;
}OCENKI;
 
typedef struct 
{
    char Name  [33];//32 + '\0'
    char Family[33];//32 + '\0'
    int  Age;
    OCENKI ocenka;
    int  NoGroup;
    void *pred;  //ykazatel na predidywiy element spiska
    void *next;  //ykazatel na sled. element spiska
}STUDENT;
 
int UpdateIntParam(char * sMSG, int  *iParam);
int UpdateStrParam(char * sMSG, char *sParam);
 
STUDENT * init (STUDENT * pList);
STUDENT * first(STUDENT * pList);
STUDENT * last (STUDENT * pList);
int input(STUDENT * pList, int *isInit);
int print(STUDENT pSTUD);
int poiskOnFam(STUDENT * pList, char * sFam);
int poiskOnNum(STUDENT * pList, int NoGroup);
int isInit = 0;
 
int main()
{
    STUDENT *pList = NULL;
    printf("\tBaza dannix studentov\n");
    printf("Najmite luduyu klavishu\n");
    getch();
    pList = init(pList);
    char Family[32] = {0};
    int NoGroup     = 0;
    int count       = 0;
    int iMenu       = 1;
    char command    = 0;
    while(iMenu)
    {
        printf(" BAZA DANNIX STUDENTOV GRUPPI TIS\n");
        printf("        Yspexov v poiske     \n");
        printf("1.Vvod informaci o  studentax \n");
        printf("2.Vivod soderjimogo\n");
        printf("3.Poisk po Famylyu v gruppe \n");
        printf("4.Poisk po Nomeru gruppi \n\n");
        printf("------Chtobi viyti najmite ESC---------\n");
        printf("\nVvedite nomer pynkta menu\n");
        printf("Your input : %c\n",command = getch());
        switch (command)
        {
            case '1':
                if(!input(pList, &isInit))
                    printf("INPUT ERROR\n");
                break;
            case '2':
                pList = first(pList);
                while(pList)
                {
                    print(*pList);
                    pList = (STUDENT *)pList->next;
                }
            break;
            case '3':
                if(UpdateStrParam("Vvedite Family Studenta : ", Family))
                if(!(count = poiskOnFam(pList,Family)))
                    printf("Basa dannih ne soderjit family %s\n",Family);
                else
                    printf("Vsego naideno %d studentov s family %s\n",count,Family);
                break;
            case '4':
                if(UpdateIntParam("Vvedite Nomer Group : ", &NoGroup))
                if(!(count = poiskOnNum(pList,NoGroup)))
                    printf("Basa dannih ne soderjit groupy s No %d\n",NoGroup);
                else
                    printf("Vsego naideno %d studentov s groupy No %d\n",count,NoGroup);
                break;
            case 27:
                iMenu = 0;
                break;
            default: 
                printf("Neverniy pynkt menu\n");
                break;
        }
    }
    return 0;
}
 
int UpdateIntParam(char * sMSG, int  *iParam)
{
    int iRet = 0;
    char chr = '\0';
    if
    (
        (printf(sMSG) && !scanf("%d", iParam)) 
        || (chr = getchar()) != '\n'
    )
    {
        //âûòèðГ*ГҐГ¬ ëèøГ*ГЁГҐ Г¤Г*Г*Г*ûå ГЁГ§ ГЎГіГґГҐГ°Г*
        while(chr != '\n')
            chr = getchar();
        printf("Bad input\n");
    }
    else
        iRet = 1;
    return iRet;
}
 
int UpdateStrParam(char * sMSG, char *sParam)
{
    int iRet = 0;
    char chr = '\0';
    if
    (
        (printf(sMSG) && !scanf("%32s", sParam)) 
        || (chr = getchar()) != '\n'
    )
    {
        //âûòèðГ*ГҐГ¬ ëèøГ*ГЁГҐ Г¤Г*Г*Г*ûå ГЁГ§ ГЎГіГґГҐГ°Г*
        while(chr != '\n')
            chr = getchar();
        printf("Bad input\n");
    }
    else
        iRet = 1;
    return iRet;
}
 
STUDENT * init (STUDENT * pList)
{
    pList = (STUDENT *)malloc(sizeof(STUDENT));
    pList->next   = NULL;
    pList->pred   = NULL;
    return pList;
}
 
STUDENT * first(STUDENT * pList)
{
    STUDENT * ptr = pList;
    while(ptr->pred)
        ptr = (STUDENT *)ptr->pred;
    return ptr;
}
 
STUDENT * last(STUDENT * pList)
{
    STUDENT * ptr = pList;
    while(ptr->next)
        ptr = (STUDENT *)ptr->next;
    return ptr;
}
 
int input(STUDENT * pList, int *isInit)
{
    int iRet = 0;
    STUDENT * pAdd = NULL;
    pAdd  = init(pAdd);
    pList = last(pList);
    if(UpdateStrParam("Vvedite Imia Studenta : "   , pAdd->Name))
    if(UpdateStrParam("Vvedite Family Studenta : " , pAdd->Family))
    if(UpdateIntParam("Vvedite vozrast studenta : ", &pAdd->Age))
    if(UpdateIntParam("Vvedite nomer gruppi : " , &pAdd->NoGroup))
    if(UpdateIntParam("Vvedite Ocenku po Borland C++ for dos : ", &pAdd->ocenka.BorlandC))
    if(UpdateIntParam("Vvedite Ocenku po Metodi optimizacii : " , &pAdd->ocenka.Metodi))
    if(UpdateIntParam("Vvedite Ocenku po istorii : " , &pAdd->ocenka.Istoria))
    {
        if(!(*isInit))
        {
            memcpy((void *)pList,(void *)pAdd,sizeof(STUDENT));
            free((void *)pAdd);
            (*isInit) = 1;
        }
        else
        {
            pAdd->pred = pList;
            pList->next= pAdd;
        }
        iRet = 1;
    }
    return iRet;
}
 
int print(STUDENT pSTUD)
{
    int iRet = 0;
    if(printf("Imia Studenta   : %s\n",pSTUD.Name))
    if(printf("Family Studenta : %s\n",pSTUD.Family))
    if(printf("vozrast studenta: %d\n",pSTUD.Age))
    if(printf("nomer gruppi    : %d\n",pSTUD.NoGroup))
    if(printf("Ocenka po Borland C++ for dos : %d\n", pSTUD.ocenka.BorlandC))
    if(printf("Ocenka po Metodi optimizacii  : %d\n", pSTUD.ocenka.Metodi))
    if(printf("Ocenka po istorii             : %d\n", pSTUD.ocenka.Istoria))
        iRet = 1;
    return iRet;
}
 
int poiskOnFam(STUDENT * pList, char * sFam)
{
    int count = 0;
    pList = first(pList);
    while(pList)
    {
        if(strcmp(pList->Family,sFam) == 0)
        {
            count = count + 1;
            print(*pList);
        }
        pList = (STUDENT *)pList->next;
    }
    return count;
}
 
int poiskOnNum(STUDENT * pList, int NoGroup)
{
    int count = 0;
    pList = first(pList);
    while(pList)
    {
        if(pList->NoGroup == NoGroup)
        {
            count = count + 1;
            print(*pList);
        }
        pList = (STUDENT *)pList->next;
    }
    return count;
}
Отработка алгоритма
Baza dannix studentov
Najmite luduyu klavishu
BAZA DANNIX STUDENTOV GRUPPI TIS
Yspexov v poiske
1.Vvod informaci o studentax
2.Vivod soderjimogo
3.Poisk po Famylyu v gruppe
4.Poisk po Nomeru gruppi

------Chtobi viyti najmite ESC---------

Vvedite nomer pynkta menu
Your input : 1
Vvedite Imia Studenta : Ima1
Продолжение
Vvedite Family Studenta : Fam1
Vvedite vozrast studenta : 19
Vvedite nomer gruppi : 4
Vvedite Ocenku po Borland C++ for dos : 4
Vvedite Ocenku po Metodi optimizacii : 5
Vvedite Ocenku po istorii : 4
BAZA DANNIX STUDENTOV GRUPPI TIS
Yspexov v poiske
1.Vvod informaci o studentax
2.Vivod soderjimogo
3.Poisk po Famylyu v gruppe
4.Poisk po Nomeru gruppi

------Chtobi viyti najmite ESC---------

Vvedite nomer pynkta menu
Your input : 1
Vvedite Imia Studenta : Ima2
Vvedite Family Studenta : Fam2
Vvedite vozrast studenta : 21
Vvedite nomer gruppi : 4
Vvedite Ocenku po Borland C++ for dos : 5
Vvedite Ocenku po Metodi optimizacii : 4
Vvedite Ocenku po istorii : 5
BAZA DANNIX STUDENTOV GRUPPI TIS
Yspexov v poiske
1.Vvod informaci o studentax
2.Vivod soderjimogo
3.Poisk po Famylyu v gruppe

4.Poisk po Nomeru gruppi

------Chtobi viyti najmite ESC---------

Vvedite nomer pynkta menu
Your input : 4
Vvedite Nomer Group : 4
Imia Studenta : Ima1
Family Studenta : Fam1
vozrast studenta: 19
nomer gruppi : 4
Ocenka po Borland C++ for dos : 4
Ocenka po Metodi optimizacii : 5
Ocenka po istorii : 4
Imia Studenta : Ima2
Family Studenta : Fam2
vozrast studenta: 21
nomer gruppi : 4
Ocenka po Borland C++ for dos : 5
Ocenka po Metodi optimizacii : 4
Ocenka po istorii : 5
Vsego naideno 2 studentov s groupy No 4
BAZA DANNIX STUDENTOV GRUPPI TIS
Yspexov v poiske
1.Vvod informaci o studentax
2.Vivod soderjimogo
3.Poisk po Famylyu v gruppe
4.Poisk po Nomeru gruppi

------Chtobi viyti najmite ESC---------

Vvedite nomer pynkta menu
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2012, 17:55     BOrland c for dos Исправить ошибку! код есть!
Еще ссылки по теме:

Доделайте программу Исходник есть. Borland c++ (DOS) C++
C++ Дана целочисленная матрица A(N, M). Borland С++ for dos
C++ BOrland c for dos Прокоментируйте код
Borland C++ for DOS C++
C++ Код С++.Исправить ошибку

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

Или воспользуйтесь поиском по форуму:
Олег2323
1 / 1 / 0
Регистрация: 08.06.2011
Сообщений: 38
05.06.2012, 17:55  [ТС]     BOrland c for dos Исправить ошибку! код есть! #8
Юра спасибо!!!!!! Братан!!!! ТЫ мне сделал прогу на курсач!!!!! от души!!! работает просто классно!!!!! СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!! я не забуду!!!! будет что надо пиши!
Yandex
Объявления
05.06.2012, 17:55     BOrland c for dos Исправить ошибку! код есть!
Ответ Создать тему
Опции темы

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