Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Очень простая программа с "IF" Как довести до ума программу на С++ ? #include <iostream> using namespace std; void lang(); main() { int a, kilo, funt; https://www.cyberforum.ru/ cpp-beginners/ thread768416.html sizeof( char * ) & sizeof(char) C++
Здравствуйте, не могу понять почему sizeof(char *) = 4 а sizeof(char) = 1. Ну с последним ясно , а вот с первым непойму... Может кто-то обьяснит(((
C++ Найти количество слов, которые начинаются и заканчиваются одной и той же буквой Проблема( https://www.cyberforum.ru/ cpp-beginners/ thread768412.html C++ Перечисляемый тип. Структуры https://www.cyberforum.ru/ cpp-beginners/ thread768401.html
Доброго вечера всем :) Посмотрите пожалуйста код. Правильно ли я написал. 1. ПЕРЕЧИСЛЯЕМЫЙ ТИП (ТЕКСТ ЗАДАНИЯ) Создать тип данных для обозначения года в 12-летнем цикле по старояпонскому календарю. Года носят названия крысы,коровы,тигра,зайца,дракона,змеи,лошади,овцы, обезьяны,курицы,собаки и свиньи. Написать функции для ввода и вывода месяца и года по старояпонскому календарю. //lab1...
C++ Необходимо вычислить yij = f (xi, zj). В этих задачах x (i = 1,2, ., n) и z (j = 1,2, ., m)
Необходимо вычислить yij = f (xi, zj). В этих задачах x (i = 1,2, ..., n) и z (j = 1,2, ..., m) являются элементами одномерных массивов вещественных чисел, которые содержат соответственно n и m элементов. Перед составлением алгоритма следует определить количество значений функции, которые будут получены в результате решения задачи, т.е. количество значений функции от каждого аргумента. Общее...
C++ Дано действительное число а. Найти среди чисел 1, 1+1/2, 1, 1+1/2+1/3, . первое, большее заданного числа а Дано действительное число а. Найти среди чисел 1, 1+1/2, 1, 1+1/2+1/3, ... первое, большее заданного числа а. https://www.cyberforum.ru/ cpp-beginners/ thread768398.html
C++ Создать функцию, возвращающую корни квадратного уравнения ax2 + b х + с = 0 https://www.cyberforum.ru/ cpp-beginners/ thread768395.html
Создать функцию, возвращающую корни квадратного уравнения ax2 + bх + с = 0, где a, b и с –известные коэффициенты уравнения или сообщение о том, что корней нет. Использовать функцию для вывода корней следующих уравнений: 4x^2 – 5х + 1 = 0, 13x^2 + 2x + 5 = 0, x^2 - 8x + 4 = 0
Создать функцию, возвращающую корень линейного уравнения ax + b = 0 C++
Создать функцию, возвращающую корень линейного уравнения ax + b = 0, где a и b –известные коэффициенты уравнения. Использовать функцию для вывода корней следующих уравнений: 5x + 1 = 0, –3x + 4 = 0, 2x – 7 = 0, 4x – 5 = 2х + 1, 5cx +6d = 0, где с и d – известные числа.
C++ Перевод в разные системы счисления Начал писать программу, которая переводит с разные системы счисления. Пока еще функционал не полностью реализован(нельзя перевести наоборот и плюс не переводит 16-ую систему). Но суть в том что у меня если я ввожу не цифру, то у меня происходит бесконечный цикл, хотя я прописал в условии до какого момента остановить его.. не понятно... и еще почему при вводе `N` программа продолжает работать...... https://www.cyberforum.ru/ cpp-beginners/ thread768390.html C++ Создать функцию, возвращающую знак числа – символ ‘+’ (плюс) или ‘–‘ (минус) https://www.cyberforum.ru/ cpp-beginners/ thread768389.html
Создать функцию, возвращающую знак числа – символ ‘+’ (плюс) или ‘–‘ (минус). Создайте функцию, которая целое число из интервала выводит на экран в текстовом формате (ноль, один, два, …). Введите число в интервале , выведите его же на экран, используя две определенные Вами функции.
В заданном массиве A вычислить две суммы элементов, расположенных выше и ниже побочной диагонали C++
В заданном массиве A(N,N) вычислить две суммы элементов, расположенных выше и ниже побочной диагонали.
C++ Вычислить матрицу С, являющуюся суммой матриц А и В Вычислить матрицу С(N,N), являющуюся суммой матриц А(N,N) и В(N,N). Матрица А задана, а элементы матрицы B вычисляются по формуле b i j = { a i j , ecли a ij >=0, {1, если a ij < 0. https://www.cyberforum.ru/ cpp-beginners/ thread768384.html
 Аватар для Starscream
57 / 45 / 14
Регистрация: 04.11.2012
Сообщений: 106
22.01.2013, 00:26 0

Создание структуры Date - C++ - Ответ 4036360

22.01.2013, 00:26. Показов 928. Ответов 4
Метки (Все метки)

Ответ

я в прошлой задаче (про животных) тоже застрял на сортировке , проблема была в считывание данных из файла в новый массив структур (те для каждого животного нужно вынуть информацию из файла в определенном месте а как сделать это незнаю ) + например переменная под хранения возраста была int а при с читывании чисел из файла проблема возникает (какоето другое число считывается)

Добавлено через 13 минут
Вот жалкая попытка создать функциию для сортировки мб пригодится (застрял уже на считывание инфы из файла)
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
void Get_Sort_Info()
{
    ifstream read_file("data_Animal.txt");
    system("cls");
 
    _MENU:;
 
    int _Operation;
    cout << " 1 - Сортировать по возрасту " << endl;
    cout << " 2 - Сортировать по половому признаку " << endl;
    cout << " 3 - Сортировать по наличию хозяина " << endl;
    cout << " 4 - Сортировать по имени " << endl;
 
    cout << " Ваш выбор : "; cin >> _Operation;
 
//=============================//
 
    int _AmountAnimal = 0;
    char Buffer;
    for(int i = 0 ; !read_file.eof() ; i++) /* находим количество животных */
    {
        Buffer = read_file.get();
        if((Buffer == '>') || (Buffer == '<'))
            _AmountAnimal++;
        if(read_file.eof())
            read_file.close();
    }
 
    Animal *Arr_Animal = new Animal[_AmountAnimal]; /* создаем массив структур чтобы записать инфо о каждом животном */
    char _1Buffer;
    ifstream read_file_2("data_Animal.txt");
 
    for(int i = 0 ; i <= _AmountAnimal - 1 ; ) /* крутим животных */
    {
        _1Buffer = read_file_2.get();
        if((_1Buffer == '<') || (_1Buffer == '>'))
        {
        for(int j = 0 ; ; j++)
        {
        _1Buffer = read_file_2.get();
        cout << _1Buffer;
        
        if(_1Buffer == ':')
        {
            for(int q = 0; ;q++)
            {
                _1Buffer = read_file_2.get();
                if(_1Buffer == '/') break;
                Arr_Animal[i]._Age[q] = _1Buffer;
            }
        }
        
        if(_1Buffer == '/')
        {
            _1Buffer = read_file_2.get();
            switch(_1Buffer)
            {
            case '0': Arr_Animal[i].floor = false; break ;
            case '1': Arr_Animal[i].floor = true ; break ;
            }
            _1Buffer = read_file_2.get();
        }
 
        if(_1Buffer == '\\')
        {
            _1Buffer = read_file_2.get();
            switch(_1Buffer)
            {
            case '0': Arr_Animal[i].Owner = false; break ;
            case '1': Arr_Animal[i].Owner = true ; break ;
            }
            _1Buffer = read_file_2.get();
        }
 
        if(_1Buffer == '|')
            for(int z = 0 ; ; z++)
            {
                _1Buffer = read_file_2.get();
                if(_1Buffer == '_') break;
                Arr_Animal[i].Name[z] = _1Buffer;
            }
            break;
        }
        i++;
        }
        
    }
 
//=============================//
 
    switch(_Operation)
    {
    case 1:  system("cls")  ; goto Sort_Age   ; break ;
    case 2:  system("cls")  ; goto Sort_floor ; break ;
    case 3:  system("cls")  ; goto Sort_Owner ; break ; 
    case 4:  system("cls")  ; goto Sort_Name  ; break ;
    default: system("cls")  ; goto _MENU      ; break ;
    }
 
//===========================//
Sort_Age:;
 
//===========================//
Sort_floor:;
 
//===========================//
Sort_Owner:;
 
//===========================//
Sort_Name:;
 
//===========================//
 
    delete [] Arr_Animal;
}
также изменил лог в файле вот пример
Кликните здесь для просмотра всего текста
<***************************LOG ANIMAL******************************
* Информация о живтоном for_reading_log:3/1\0|Кот_

* Возраст животного : 3 лет
* Имя животного : Кот
* Пол животного : мужской
* Есть ли у живтоного хозяин : нет
<***************************LOG ANIMAL******************************
* Информация о живтоном for_reading_log:6/1\1|Собака_

* Возраст животного : 6 лет
* Имя животного : Собака
* Пол животного : мужской
* Есть ли у живтоного хозяин : да


Не по теме:

ну и вот весь код мб кто поможет найти и исправить ошибку с записью инфы из файла


Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <Windows.h>
#include <cstring>
#include <fstream>
using namespace std;
 
void Get_amount_floor();
void Get_Info_in_file();
 
struct Animal
{
 
public:
    void Set_Age(int Value);
    void Set_floor(bool f);
    void Set_Owner(bool O);
    void Set_Name();
    void Get_info(ofstream &out);
    friend void Get_Sort_Info();
    char _Age[3]; /* возраст для сортировки */
private:
    int Age;
    bool floor;      /* 1 - м , 0 - ж                     */
    bool Owner;      /* 1 - есть хозяин , 0 - нет хозяина */
    char Name[64];
    
};
 
//===========================================================================//
 
void main()
{
    system("chcp 1251->text");
    
    ofstream out_file_0("data_Animal.txt"  , ios::out | ios::app) ; /* хранится инфо о животных       */
    //ifstream in_file_0("data_Animal.txt");                            /* считывание инфо о животных     */              
 
MENU:;
    int Operation;
    cout << " 1 - Создать животного " << endl;
    cout << " 2 - Подсчитать количество животных с заданным полом " << endl;
    cout << " 3 - Сохранить информацию о созданном животном в файл " << endl;
    cout << " 4 - Считать информацию о животных из файла " << endl;
    cout << " 5 - Сортировать записи " << endl;
    cout << " 6  - Выход из программы " << endl << endl;
 
    cout << " Ваш выбор : "; cin >> Operation;
 
    switch(Operation)
    {
    case 1: goto CreateAnimal               ; break;
    case 2: goto AmountAnimal_floor         ; break;
    case 3: goto Write_Info_Animal_in_file  ; break;
    case 4: goto Read_Info_Animal_from_file ; break;
    case 5: goto Sort_Animal                ; break;
 
    case 6: exit(1); break;
    default: system("cls") ; goto MENU; break;
    }
 
//===========================================================================//
 
CreateAnimal:;
             
    system("cls");
    Animal New_animal;
    int Age;
    bool f , o ;
    cout << "Введите возраст животного : "                       ; cin >> Age ; New_animal.Set_Age(Age);
    cout << "Введите пол животного ( 1 - м || 0 - ж ) : "        ; cin >> f   ; New_animal.Set_floor(f);
    cout << "Есть ли у животного хозяин ( 1 - да || 0 - нет ) : "; cin >> o   ; New_animal.Set_Owner(o);
                                                                              ; New_animal.Set_Name()  ;
    MessageBox(0," Животное успешно создано " , "Success",MB_OK) ; 
    system("cls") ;
    goto MENU ;
 
//===========================================================================//
// Подсчет количества животных с заданным полом                              //
 
AmountAnimal_floor:;
    Get_amount_floor();
    system("cls");
    goto MENU;
//                                                                           //
//===========================================================================//
// Запись информации о созданом животном в файл                              //
 
Write_Info_Animal_in_file:;
    New_animal.Get_info(out_file_0);
    MessageBox(0,"Запись успешно сделана","Success",MB_OK);
    system("cls");
    goto MENU;
 
//                                                                           //
//===========================================================================//
// Считать информацию о животном из файла                                    //
 
Read_Info_Animal_from_file:;
    Get_Info_in_file();
    MessageBox(0,"Считывание информации прошло успешно ","Success",MB_OK);
    system("cls");
    goto MENU;
 
//                                                                           //
//===========================================================================//
// сортировать записи согласно заданному критерию                            //
 
Sort_Animal:;
    Get_Sort_Info();
 
//                                                                           //
//===========================================================================//
 
    
    MessageBox(0,"Завершение программы","Message",MB_OK);
    exit(0);
}
 
 
//===========================================================================//
// Методы                                                                    //
//===========================================================================//
 
void Animal::Set_Age(int Value)
{
    Age = Value;
}
 
void Animal::Set_floor(bool f)
{
    floor = f;
}
 
void Animal::Set_Owner(bool O)
{
    Owner = O;
}
 
void Animal::Set_Name()
{
    cout << " Введите имя животного : ";
    cin.getline(Name,63);
    cin >> Name;
}
 
void Animal::Get_info(ofstream &out)
{
    if(floor)
    {
        out << "<***************************LOG ANIMAL******************************" << endl;
    }
    else
    {
        out << ">***************************LOG ANIMAL******************************" << endl;
    }
 
    char buffer[1000];
    sprintf(buffer ," * Информация о живтоном for_reading_log:%d/%d\\%d|" , Age , floor , Owner);
    for(int i = 0 ; i <= strlen(buffer) - 1 ; i++) out << buffer[i];
    for(int i = 0 ; i <= strlen(Name) - 1 ; i++) out << Name[i]; out << '_'; out << endl << endl;
 
    out << "*\t\t Возраст животного : " << Age << " лет " << endl;
 
    out << "*\t\t Имя животного : ";
    for(int i = 0 ; i <= strlen(Name) - 1 ; i++)
    out << Name[i];
    out << endl;
 
    if(floor)
        out << "*\t\t Пол животного : мужской " << endl;
    else
        out << "*\t\t Пол животного : женский " << endl;
 
    if(Owner)
        out << "*\t\t Есть ли у живтоного хозяин : да " << endl;
    else
        out << "*\t\t Есть ли у живтоного хозяин : нет " << endl;
}
 
void Get_amount_floor()
{
ifstream read_floor("data_Animal.txt");
 
    char buffer;
    int man = 0 , woman = 0;
    for(int i = 0 ; !read_floor.eof() ; i++)
    {
        read_floor >> buffer;
        if(buffer == '<')
            man++;
        if(buffer== '>')
            woman++;
    }
    
    char str[100];
    sprintf(str," Количество животных мужского пола = %d \n Количество животных женского пола = %d "  , man , woman);
    MessageBox(0, str , "" , MB_OK  );
}
 
void Get_Info_in_file()
{
    ifstream file("data_Animal.txt");
    system("cls");
    char buff;
 
    for(int i = 0 ; !file.eof() ; i++)
    {
        buff = file.get();
        cout << buff;
    }
}
 
void Get_Sort_Info()
{
    ifstream read_file("data_Animal.txt");
    system("cls");
 
    _MENU:;
 
    int _Operation;
    cout << " 1 - Сортировать по возрасту " << endl;
    cout << " 2 - Сортировать по половому признаку " << endl;
    cout << " 3 - Сортировать по наличию хозяина " << endl;
    cout << " 4 - Сортировать по имени " << endl;
 
    cout << " Ваш выбор : "; cin >> _Operation;
 
//=============================//
 
    int _AmountAnimal = 0;
    char Buffer;
    for(int i = 0 ; !read_file.eof() ; i++) /* находим количество животных */
    {
        Buffer = read_file.get();
        if((Buffer == '>') || (Buffer == '<'))
            _AmountAnimal++;
        if(read_file.eof())
            read_file.close();
    }
 
    Animal *Arr_Animal = new Animal[_AmountAnimal]; /* создаем массив структур чтобы записать инфо о каждом животном */
    char _1Buffer;
    ifstream read_file_2("data_Animal.txt");
 
    for(int i = 0 ; i <= _AmountAnimal - 1 ; ) /* крутим животных */
    {
        _1Buffer = read_file_2.get();
        if((_1Buffer == '<') || (_1Buffer == '>'))
        {
        for(int j = 0 ; ; j++)
        {
        _1Buffer = read_file_2.get();
        cout << _1Buffer;
        
        if(_1Buffer == ':')
        {
            for(int q = 0; ;q++)
            {
                _1Buffer = read_file_2.get();
                if(_1Buffer == '/') break;
                Arr_Animal[i]._Age[q] = _1Buffer;
            }
        }
        
        if(_1Buffer == '/')
        {
            _1Buffer = read_file_2.get();
            switch(_1Buffer)
            {
            case '0': Arr_Animal[i].floor = false; break ;
            case '1': Arr_Animal[i].floor = true ; break ;
            }
            _1Buffer = read_file_2.get();
        }
 
        if(_1Buffer == '\\')
        {
            _1Buffer = read_file_2.get();
            switch(_1Buffer)
            {
            case '0': Arr_Animal[i].Owner = false; break ;
            case '1': Arr_Animal[i].Owner = true ; break ;
            }
            _1Buffer = read_file_2.get();
        }
 
        if(_1Buffer == '|')
            for(int z = 0 ; ; z++)
            {
                _1Buffer = read_file_2.get();
                if(_1Buffer == '_') break;
                Arr_Animal[i].Name[z] = _1Buffer;
            }
            break;
        }
        i++;
        }
        
    }
 
//=============================//
 
    switch(_Operation)
    {
    case 1:  system("cls")  ; goto Sort_Age   ; break ;
    case 2:  system("cls")  ; goto Sort_floor ; break ;
    case 3:  system("cls")  ; goto Sort_Owner ; break ; 
    case 4:  system("cls")  ; goto Sort_Name  ; break ;
    default: system("cls")  ; goto _MENU      ; break ;
    }
 
//===========================//
Sort_Age:;
 
//===========================//
Sort_floor:;
 
//===========================//
Sort_Owner:;
 
//===========================//
Sort_Name:;
 
//===========================//
 
    delete [] Arr_Animal;
}

Правда там черт ногу сломит )

Вернуться к обсуждению:
Создание структуры Date C++
0
Заказать работу у эксперта
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2013, 00:26
Готовые ответы и решения:

Создание класса Date.Помогите сделать!
Создать класс Date для работы с датой в формате &quot;год.месяц.день&quot;. Дата представляется структурой с...

Создание структуры.
Помогите разобраться с задачей.. Создайте структуру – vector. Структура должна содержать поинтер...

Создание структуры
Обьявить структуру &quot;студент&quot;. Структура должна содержать фамилию, имя студента и его средний балл....

Создание структуры)))
Нужна помощь и советы людей которые знают))) Помогите решить задачи! и дайте советы по быстрому...

4
22.01.2013, 00:26
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2013, 00:26
Помогаю со студенческими работами здесь

Создание структуры
Здравствуйте!!!Помогите написать практическую работу на тему &quot;Создание структуры. Поиск информации...

Создание структуры Город
Создать структуру Город, имеющую поля типа int, double, char, bool, статический строковый массив...

Создание структуры программы
Приветствую всех! Подскажите такой вопрос: имеется граф из 5 вершин, где вершина представляет...

Динамическое создание структуры
У меня есть h файл в котором описаны структуры. Можно ли его подключить к проекту динамически? То...

0
Новые блоги и статьи
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
Объекты и их имена
hw_wired 28.01.2025
Введение: Основы объектного подхода и их роль в информатике В современном мире информационных технологий объектный подход стал фундаментальным принципом организации и обработки информации. Этот. . .
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru