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

Описать запись с именем ZNAK - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Margo93
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 7
12.05.2011, 03:05     Описать запись с именем ZNAK #1
Написала программу на СИ++, помогите (если есть время у кого-нибудь) перевести на СИ!!..В пятницу сдавать,не могу доделать...+если можете,помогите оформить в виде меню..
Вот программа на СИ++ и задание


Описать запись с именем ZNAK, содержащую следующие поля:
– фамилия, имя;
– знак Зодиака;
– дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
– ввод с клавиатуры данных в массив, состоящий из восьми элементов типа
ZNAK;
– вывод таблицы на экран;
– записи упорядочить по датам рождения;
– вывод отсортированной таблицы на экран;
– вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
– если такого нет, выдать на дисплей соответствующее сообщение.
+Оформить в виде меню


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
/*
1. Структура с именем ZNAK содержит следующие поля:
-   фамилия и инициалы;
-   знак зодиака;
-   день рождения (массив из трех чисел).
2. Условие поиска – вывод на экран информации о людях,
родившихся под знаком, наименование которого введено с клавиатуры.
*/
 
#include <iostream.h>
#include <iomanip.h>
#include <string.h>
#include <conio.h>
 
#define FAMN 26//Количество символов в массиве, содержащем фамилию
#define H 15//Количество человек в массиве
#define ZDK 9//Количество символов в массиве, содержащем знак зодиака
 
//Описание структуры ZNAK
struct ZNAK
{
  char familia[FAMN],fio[4],zodiak[ZDK];
  int birth[3];
};
 
// прототипы функций
void input ( ZNAK [H] );//Функция ввода в массив записей типа ZNAK
void output ( ZNAK [H] );//Функция для вывода из массива всех записей типа ZNAK
ZNAK inputzap ();//Функция ввода одной записи типа ZNAK
void outputzap ( ZNAK );//Функция вывода одной записи типа ZNAK
void tabl();//Вспомогательная таблица
void poisk ( ZNAK [H] );//Поиск значений, удовлетворяющих условию
 
 
void main(){
    ZNAK z[H];
    clrscr();
    input(z);
    clrscr();
    output(z);
    poisk(z);
}
 
// определение функции ввода в массив объектов
void input( ZNAK x[H])
{
  int i;
  cout << "Ввод информации в массив объектов:\n";
  for (i=0; i<H; i++)
    x[i]=inputzap();
}
 
// определение функции ввода одной записи
ZNAK inputzap()
{
  ZNAK z;
  cout << "Введите фамилию: ";
  cin.seekg(0L, ios::end);
  cin.get(z.familia,FAMN-1,'\n');
  cout << "Введите инициалы: ";
  cin.seekg(0L, ios::end);
  cin.get(z.fio,3,'\n');
  cout << "Введите день рождения('год месяц день'): ";
  cin.seekg(0L, ios::end);
  cin >> z.birth[0] >> z.birth[1] >> z.birth[2];
  //Знак зодиака определяется автоматически по дню рождения,
  //хотя можно и спрашивать пользователя о нём, не определяя автоматически
  switch (z.birth[1]) {
    case 1:if (z.birth[2]<=20) strcpy(z.zodiak,"Козерог");
           else strcpy(z.zodiak,"Водолей");
           break;
    case 2:if (z.birth[2]<=18) strcpy(z.zodiak,"Водолей");
           else strcpy(z.zodiak,"Рыбы");
           break;
    case 3:if (z.birth[2]<=20) strcpy(z.zodiak,"Рыбы");
           else strcpy(z.zodiak,"Овен");
           break;
    case 4:if (z.birth[2]<=20) strcpy(z.zodiak,"Овен");
           else strcpy(z.zodiak,"Телец");
           break;
    case 5:if (z.birth[2]<=21) strcpy(z.zodiak,"Телец");
           else strcpy(z.zodiak,"Близнецы");
           break;
    case 6:if (z.birth[2]<=21) strcpy(z.zodiak,"Близнецы");
           else strcpy(z.zodiak,"Рак");
           break;
    case 7:if (z.birth[2]<=22) strcpy(z.zodiak,"Рак");
           else strcpy(z.zodiak,"Лев");
           break;
    case 8:if (z.birth[2]<=23) strcpy(z.zodiak,"Лев");
           else strcpy(z.zodiak,"Дева");
           break;
    case 9:if (z.birth[2]<=23) strcpy(z.zodiak,"Дева");
           else strcpy(z.zodiak,"Весы");
           break;
    case 10:if (z.birth[2]<=23) strcpy(z.zodiak,"Весы");
            else strcpy(z.zodiak,"Скорпион");
            break;
    case 11:if (z.birth[2]<=22) strcpy(z.zodiak,"Скорпион");
            else strcpy(z.zodiak,"Стрелец");
            break;
    case 12:if (z.birth[2]<=21) strcpy(z.zodiak,"Стрелец");
            else strcpy(z.zodiak,"Козерог");
            break;
  }
  return z;
}
 
// определение функции вывода всей информации на экран
void output ( ZNAK x[H] )
{
  int i;
  cout << "Вывод информации о всех людях:\n";
  tabl();
  for (i=0; i<H; i++)
    outputzap(x[i]);
  cout << "------------------------------------------------------------\n";
}
 
 
// определение функции вывода одной записи на экран
void outputzap (ZNAK z)
{
    cout << z.familia<< "(" << z.fio << ")" <<setw(20-strlen(z.familia))<<"|"<<
        z.birth[0] << "-" << z.birth[1] << "-" << z.birth[2]<< "|"
        << z.zodiak << endl;
}
 
void tabl()
{
  cout << "-------------------------------------------------------------------------------\n";
  cout << "|      Фамилия(ФИО)       |ГГГГ-ММ-ДД|Знак зодиака\n";
  cout << "|-------------------------|----------|-----------------------------------------|\n";
}
 
// определение функции вывода на экран информации,
// отвечающей условию поиска
void poisk ( ZNAK x[H] )
{
  int i;
  char ZN[ZDK];
  cout << "Введите знак зодиака:";
  cin.seekg(0L, ios::end);
  cin.get(ZN,ZDK-1,'\n');
 
  cout << "Вывод информации о людях с этим знаком зодиака:\n";
  tabl();
  for (i=0; i<H; i++)
      if (strcmp(x[i].zodiak,ZN)==0)
          //Знак зодиака такой же, какой указал пользователь,
          //можно выводить информацию об этом i-ом человеке
             outputzap(x[i]);
  cout << "------------------------------------------------------------\n";
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 03:05     Описать запись с именем ZNAK
Посмотрите здесь:

C++ Описать структуру с именем ZNAK
C++ Описать структуру с именем ZNAK
Описать структуру с именем Znak C++
Описать структуру с именем Znak C++
C++ Описать структуру с именем ZNAK
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.05.2011, 03:13     Описать запись с именем ZNAK #2
Цитата Сообщение от Margo93 Посмотреть сообщение
Написала программу на СИ++, помогите (если есть время у кого-нибудь) перевести на СИ!!
сестра - это твой брат
Margo93
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 7
12.05.2011, 03:18  [ТС]     Описать запись с именем ZNAK #3
Да,задание схоже в принципе,но всё равно ошибки...+меню=(
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.05.2011, 03:27     Описать запись с именем ZNAK #4
Цитата Сообщение от Margo93 Посмотреть сообщение
+меню=(
принцип построения меню
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
bool flag = true; //флаг выхода
int ans; //ответ пользователя
do
{
    //очищаем экран
    //выводим все пункты меню
    //предлагаем пользователю выбрать пункт меню, записываем выбраный пункт в ans
    switch(ans)
     {
         case 1:
               //исполняем код 1-го пункта
               break;
         case 2:
               //исполняем код 2-го пункта
               break;
         case 3:
             //исполняем код 3-го пункта           
               break;
         case 4:
             //исполняем код 4-го пункта        
                break;
         case 5: //выход
                flag = false;
                break;
        }
} while (flag);
Margo93
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 7
12.05.2011, 19:14  [ТС]     Описать запись с именем ZNAK #5
Maxwe11,спасибо!

Добавлено через 15 часов 44 минуты
подскажите пожалуйста,как заменить вот эту строку из СИ++ на СИ : cin.seekg(0L, ios::end)
совсем запуталась
Margo93
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 7
12.05.2011, 20:48  [ТС]     Описать запись с именем ZNAK #6
Ребята,помогите пожалуйста исправить ошибки!Переделывала программу с Паскаля написанного,запуталась...Завтра сдавать!( Заранее огромное спасибо!


Описать запись с именем ZNAK, содержащую следующие поля:
– фамилия, имя;
– знак Зодиака;
– дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
– ввод с клавиатуры данных в массив, состоящий из восьми элементов типа
ZNAK;
– вывод таблицы на экран;
– записи упорядочить по датам рождения;
– вывод отсортированной таблицы на экран;
– вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
– если такого нет, выдать на дисплей соответствующее сообщение. +еще меню


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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define N 8
struct znak
{
char name[30];
char zodiak[100];
int bday[30];
};
struct znak note[N];
 
void input(void)
{
for (int i=0; i<N;i++)
{
puts("Vvedite familiyu");
scanf("%s",&note[i].name);
puts("Vvedite znak");
scanf("%d",&note[i].zodiak);
puts("Vvedite den' rozdenya v formate DD MM GGGG");
scanf("%d %d %d",&note[i].bday[0],&note[i].bday[1],&note[i].bday[2]);
system("cls");
}
}
void output(void)
{
puts("|---------------------|-----------|---------------|");
puts("|       Familiya      |  Zodiak   |Den' rozhdeniya|");
puts("|---------------------|-----------|---------------|");
for (int i=0; i<N;i++)
printf("|%21s|%11d|%2d.%2d.%4d |\n",note[i].name,note[i].zodiak,note[i].bday[0],note[i].bday[1],note[i].bday[2]);
printf("|-------------------------------------------------|\n");
}
void sort(void)
begin
 
  for j:=1 to N-1 do
    for i:=1 to N-j do
     if(m[i].bday[2]) > (m[i+1].bday[2]) then
     begin
      m[i]=buf[i];
      buf[i]=buf[i+1];
      buf[i+1]=m[i];
     end;
 
   for j:=1 to N-1 do
    for i:=1 to N-j do
     if (m[i].bday[2])=(m[i+1].bday[2]) then
      if (m[i].bday[1]) > (m[i+1].bday[1]) then
     begin
      buf[1]:=m[i];
      m[i]:=m[i+1];
      m[i+1]:=buf[1]
     end;
 
   for j:=1 to N-1 do
    for i:=1 to N-j do
     if (m[i].bday[2])=(m[i+1].bday[2]) then
      if (m[i].bday[1]) = (m[i+1].bday[1]) then
       if (m[i].bday[0]) > (m[i+1].bday[0]) then
     begin
      buf[1]:=m[i];
      m[i]:=m[i+1];
      m[i+1]:=buf[1]
     end;
end
 
 
void search()
{
puts("VVedite familiyu");
 
 scanf(name);
  for i:=1 to k do
   if m[i].name=fam then
    begin
     puts("Фамилия:',m[i].f:14,'  ');
     puts("Знак зодиака:',m[i].zodiak:14,' ');
     puts("Дата рождения:");
      for j:=1 to 3 do
       printf(m[i].bday[j],'.');
    end
  else
   puts("Неверно");
 
end;
 
 
void main()
{
    int i;
    struct znak
input();
puts("Ishodnaya tablica");
output();
puts("Vyberete deystvie");
puts("1 - sortirovka");
puts("2 - poisk");
int i=0;
scanf("%d", &i);
switch(i)
{
case 1:sort();puts("otsortirivannaya");output();break;
case 2:search();
}
fflush(stdin);
char c=getchar();
}
 Комментарий модератора 
Не надо дублировать темы!
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
12.05.2011, 20:52     Описать запись с именем ZNAK #7
Надо:
C++
1
2
scanf("%s",note[i].name);
scanf("%d",note[i].zodiak);
Margo93
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 7
12.05.2011, 21:00  [ТС]     Описать запись с именем ZNAK #8
проблема в том,что при компиляции множество ошибок,глаза разбегаются,не могу никак от Паскаля отвыкнуть...по ходу исправляю , но не справляюсь все равно(
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
12.05.2011, 21:02     Описать запись с именем ZNAK #9
Margo93, сделайте полностью, потом мы исправим ошибки.

Добавлено через 1 минуту
Кстати неправильно я написал. Надо:
C++
1
scanf("%s",note[i].zodiak);
Почему bday состоит из 20 элементов, если используются только 3?
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
12.05.2011, 21:12     Описать запись с именем ZNAK #10
Да тут ошибок вагон.
:=
if ( = ) then
и т.д.
Margo93
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 7
12.05.2011, 21:14  [ТС]     Описать запись с именем ZNAK #11
пока вот..
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
 #include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define N 8
struct znak
{
char name[30];
char zodiak[100];
int bday[3];
};
struct znak note[N];
 
void input(void)
{
for (int i=0; i<N;i++)
{
puts("Vvedite familiyu");
scanf("%s",note[i].name);
puts("Vvedite znak");
scanf("%s",note[i].zodiak);
puts("Vvedite den' rozdenya v formate DD MM GGGG");
scanf("%d %d %d",&note[i].bday[0],&note[i].bday[1],&note[i].bday[2]);
system("cls");
}
}
void output(void)
{
puts("|---------------------|-----------|---------------|");
puts("|       Familiya      |  Zodiak   |Den' rozhdeniya|");
puts("|---------------------|-----------|---------------|");
for (int i=0; i<N;i++)
printf("|%21s|%11d|%2d.%2d.%4d |\n",note[i].name,note[i].zodiak,note[i].bday[0],note[i].bday[1],note[i].bday[2]);
printf("|-------------------------------------------------|\n");
}
void sort(void)
{
    {
  for j=1 to N-1 do
    for i=1 to N-j do
     if(m[i].bday[2]) > (m[i+1].bday[2]) then
     
      m[i]=buf[i];
      buf[i]=buf[i+1];
      buf[i+1]=m[i];
    }
 
    {for j=1 to N-1 do
    for i=1 to N-j do
     if (m[i].bday[2])=(m[i+1].bday[2]) then
      if (m[i].bday[1]) > (m[i+1].bday[1]) then
    }
    {
      buf[1]=m[i];
      m[i]=m[i+1];
      m[i+1]=buf[1];
    }
    {
   for j=1 to N-1 do
    for i=1 to N-j do
     if (m[i].bday[2])==(m[i+1].bday[2]) then
      if (m[i].bday[1]) == (m[i+1].bday[1]) then
       if (m[i].bday[0]) > (m[i+1].bday[0]) then
    }      
       {
      buf[1]=m[i];
      m[i]=m[i+1];
      m[i+1]=buf[1];
     }
}
}
 
void search()
puts("VVedite familiyu");
 
 scanf(name);
  for i=1 to k do
   if m[i].name==fam then
   {
     puts("Фамилия:',m[i].f:14,'  ');
     puts("Знак зодиака:',m[i].zodiak:14,' ');
     puts("Дата рождения:");
      for j=1 to 3 do
       printf(m[i].bday[j],'.');
   }
  else
   puts("Неверно");
 
}
 
 
void main()
{
    int i,j;
    struct znak
input();
puts("Ishodnaya tablica");
output();
puts("Vyberete deystvie");
puts("1 - sortirovka");
puts("2 - poisk");
int i=0;
scanf("%d", &i);
switch(i)
{
case 1:sort();
    puts("otsortirivannaya");
    output();
    break;
case 2:search();
}
fflush(stdin);
char c=getchar();
return 0;
}
продолжаю исправлять...
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
12.05.2011, 21:16     Описать запись с именем ZNAK #12
Margo93, в си массивы индексируются с нуля, а не с единицы.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
12.05.2011, 21:18     Описать запись с именем ZNAK #13
Цитата Сообщение от Margo93 Посмотреть сообщение
C
1
puts("Фамилия:',m[i].f:14,' ');
После неправильной кавычки даже здесь форматирование сбилось
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2011, 23:25     Описать запись с именем ZNAK
Еще ссылки по теме:

Описать структуру с именем ZNAK C++

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

Или воспользуйтесь поиском по форуму:
Margo93
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 7
12.05.2011, 23:25  [ТС]     Описать запись с именем ZNAK #14
mimicria,спасибо,я исправила это..описалась.
Ребята,исправьте кто-нибудь пожалуйста до конца,голова уже кругом едет,всю ночь перед учебой сидела писала Паскаль и на СИ пыталась переделать...

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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define N 8
struct znak
{
char name[30];
char zodiak[100];
int bday[3];
};
struct znak note[N];
 
void input(void)
{
for (int i=0; i<N;i++)
{
puts("Vvedite familiyu");
scanf("%s",note[i].name);
puts("Vvedite znak");
scanf("%s",note[i].zodiak);
puts("Vvedite den' rozdenya v formate DD MM GGGG");
scanf("%d %d %d",&note[i].bday[0],&note[i].bday[1],&note[i].bday[2]);
system("cls");
}
}
void output(void)
{
puts("|---------------------|-----------|---------------|");
puts("|       Familiya      |  Zodiak   |Den' rozhdeniya|");
puts("|---------------------|-----------|---------------|");
for (int i=0; i<N;i++)
printf("|%21s|%11d|%2d.%2d.%4d |\n",note[i].name,note[i].zodiak,note[i].bday[0],note[i].bday[1],note[i].bday[2]);
printf("|-------------------------------------------------|\n");
}
void sort(void)
{
    {
  for j=1 to N-1 do
    for i=1 to N-j do
     if(m[i].bday[2]) > (m[i+1].bday[2]) then
     
      m[i]=buf[i];
      buf[i]=buf[i+1];
      buf[i+1]=m[i];
    }
 
    {for j=1 to N-1 do
    for i=1 to N-j do
     if (m[i].bday[2])=(m[i+1].bday[2]) then
      if (m[i].bday[1]) > (m[i+1].bday[1]) then
    }
    {
      buf[1]=m[i];
      m[i]=m[i+1];
      m[i+1]=buf[1];
    }
    {
   for j=1 to N-1 do
    for i=1 to N-j do
     if (m[i].bday[2])==(m[i+1].bday[2]) then
      if (m[i].bday[1]) == (m[i+1].bday[1]) then
       if (m[i].bday[0]) > (m[i+1].bday[0]) then
    }      
       {
      buf[1]=m[i];
      m[i]=m[i+1];
      m[i+1]=buf[1];
     }
}
}
 
void search()
puts("VVedite familiyu");
 
 scanf(name);
  for i=1 to k do
   if m[i].name==fam then
   {
     puts("Фамилия:",m[i].f:14,'  ');
     puts("Знак зодиака:",m[i].zodiak:14,' ');
     puts("Дата рождения:");
      for j=1 to 3 do
       printf(m[i].bday[j],'.');
   }
  else
   puts("Неверно");
 
}
}
 
 
void main()
{
    int i,j;
    struct znak
input();
puts("Ishodnaya tablica");
output();
puts("Vyberete deystvie");
puts("1 - sortirovka");
puts("2 - poisk");
int i=0;
scanf("%d", &i);
switch(i)
{
case 1:sort();
    puts("otsortirivannaya");
    output();
    break;
case 2:search();
}
fflush(stdin);
char c=getchar();
return 0;
}
Добавлено через 45 минут
Помогите пожалуйста хоть кто-нибудь...=(очень прошу...

Добавлено через 1 час 3 минуты
Помогите пожалуйста...=(
Yandex
Объявления
12.05.2011, 23:25     Описать запись с именем ZNAK
Ответ Создать тему
Опции темы

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