Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 05.11.2018
Сообщений: 7
1

Структуры и Файлы

02.12.2018, 23:31. Просмотров 257. Ответов 2
Метки нет (Все метки)

Есть такое задание:
Написать программу, которая реализует географический справочник. В справочнике содержится следующая информация: название страны и площади страны, названия рек и длины рек, названия озер и глубины озер. Реализовать вывод всей информации из справочника, поиск по названию. Реализовать поиск по площади, длине или глубине, при этом должна быть возможность ввести некоторое пороговое значение (например, вывести названия всех рек, длина которых не менее 3000 км).
Я написал решение с помощью Структур. Но ни как не могу разобраться с файлами. Может кто подскажет как это можно сделать

Добавлено через 3 минуты
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
#include"pch.h"
#include <iostream>
#include "windows.h"
#include "string.h"
using namespace std;
 
struct directoryc          // Шаблон структури 
{
    char country[20];      // Країна 
    int area;              // Площа
};
 
struct directoryr
{
    char river[20];        // Річка
    int length;            // Довжина річки
};
 
struct directoryl
{
    char lake[20];         // Озеро
    int depth;             // Глибина озера
};
directoryc g_c[30];
directoryr g_r[30];
directoryl g_l[30];
int n_c = 0, n_r = 0, n_l = 0;
int i, j, c, r, l;
char choice;
char name[20];
int names, X;
 
void PosK_N();
void PosK_P();
void PosR_N();
void PosR_D();
void PosO_N();
void PosO_G();
void PosK_X();
void PosR_X();
void PosO_X();
 
int main()
{
    SetConsoleCP(1251);    // Для кирилиці
    SetConsoleOutputCP(1251);
 
    cout << "Введіть кількість описуваних країн: ";
    cin >> c;
    for (i = 0;i < c;i++)        // Заповнюємо масив структур
    {
        cout << "Країна № " << n_c + 1 << endl;
        cout << "Вкажіть назву країни: ";
        cin >> g_c[n_c].country;
        cout << "Вкажіть площу країни:  ";
        cin >> g_c[n_c].area;
        n_c++;
    }
 
    cout << "Введіть кількість описуваних річок: ";
    cin >> r;
    for (i = 0;i < r;i++)
    {
        cout << "Країна № " << n_r + 1 << endl;
        cout << "Вкажіть назву річки: ";
        cin >> g_r[n_r].river;
        cout << "Вкажіть довжину річки:  ";
        cin >> g_r[n_r].length;
        n_r++;
    }
 
    cout << "Введіть кількість описуваних озер: ";
    cin >> l;
    for (i = 0;i < l;i++)
    {
        cout << "Озеро № " << n_l + 1 << endl;
        cout << "Вкажіть назву озера: ";
        cin >> g_l[n_l].lake;
        cout << "Вкажіть глибину озера:  ";
        cin >> g_l[n_l].depth;
        n_l++;
    }
    
do {
     cout << "Яку функцію ви хочете пиконати?" << endl;
     cout << "1-Пошук країни за назвою...\n2-Пошук країни за площею...\n3-Пошук річки за назвою...\n4-Пошук річки за довжиною...\n5-Пошук озера за назвою...\n6-Пошук озера за глибиною...\n7-Вивести країни площа яких не перевищює Х...\n8-Вивести річки довжина яких не перевищує Х...\n9-Вивести озера глибина яких не перевищую Х...\n0-Вихід" << endl;
     cin >> choice;
     switch (choice) 
     {
     case '1':
         PosK_N();
        break;
    case '2':
        PosK_P();
        break;
    case '3':
        PosR_N();
        break;
    case '4':
        PosR_D();
        break;
    case '5':
        PosO_N();
        break;
    case '6':
        PosO_G();
        break;
    case '7':
        PosK_X();
        break;
    case '8':
        PosR_X();
        break;
    case '9':
        PosO_X();
        break;
    case '0':
        exit(0);
        break;
    default:
        cout << "Неправильний вибір\n";
        break;
    }
}
while (choice != '0');
 
    return 0;
    system("pause");
}
 
void PosK_N()
{
    cout << "Введіть назву країни\n";
    cin >> name;
    for (int i = 0; i < c;i++) {
        if (_stricmp(name, g_c[i].country) == 0) {
            cout << "Назва країни: " << g_c[i].country << "\n";
            cout << "Площа країни: " << g_c[i].area << "\n";
            cout << "##########################\n";
        }
        else
            cout << "Країна з такою назвою не знайдена\n";
    }
}
void PosK_P()
{
    cout << "Введіть площу країни\n";
    cin >> names;
    for (int i = 0; i < c;i++) {
        if (names == g_c[i].area) {
            cout << "Назва країни: " << g_c[i].country << "\n";
            cout << "Площа країни: " << g_c[i].area << "\n";
            cout << "##########################\n";
        }
        else
            cout << "Країна з такою площею не знайдена\n";
    }
}
void PosR_N()
{
    cout << "Введіть назву річки\n";
    cin >> name;
    for (int i = 0; i < r;i++) {
        if (_stricmp(name, g_r[i].river) == 0) {
            cout << "Назва річки: " << g_r[i].river << "\n";
            cout << "Довжина річки: " << g_r[i].length << "\n";
            cout << "##########################\n";
        }
        else
            cout << "Річка з такою назвою не знайдена\n";
    }
}
void PosR_D()
{
    cout << "Введіть довжину річки\n";
    cin >> names;
    for (int i = 0; i < r;i++) {
        if (names == g_r[i].length) {
            cout << "Назва річки: " << g_r[i].river << "\n";
            cout << "Довжина річки: " << g_r[i].length << "\n";
            cout << "##########################\n";
        }
        else
            cout << "Річки з такою довжиною не знайдена\n";
    }
}
void PosO_N()
{
    cout << "Введіть назву озера\n";
    cin >> name;
    for (int i = 0; i < l;i++) {
        if (_stricmp(name, g_l[i].lake) == 0) {
            cout << "Назва озера: " << g_l[i].lake << "\n";
            cout << "глибина озера: " << g_l[i].depth << "\n";
            cout << "##########################\n";
        }
        else
            cout << "Озера з такою назвою не знайдена\n";
    }
}
void PosO_G()
{
    cout << "Введіть глибину озера\n";
    cin >> names;
    for (int i = 0; i < l;i++) {
        if (names == g_l[i].depth) {
            cout << "Назва озера: " << g_l[i].lake << "\n";
            cout << "Глибина озера: " << g_l[i].depth << "\n";
            cout << "##########################\n";
        }
        else
            cout << "Озера з такою глибиною не знайдена\n";
    }
}
void PosK_X()
{
    cout << "Введіть значення Х\n";
    cin >> X;
    for (int i = 0; i < c;i++) {
        if (g_c[i].area <= X) {
            cout << "Назва країни: " << g_c[i].country << "\n";
            cout << "площа країни: " << g_c[i].area << "\n";
            cout << "##########################\n";
        }
    }
}
void PosR_X()
{
    cout << "Введіть значення Х\n";
    cin >> X;
    for (int i = 0; i < r;i++) {
        if (g_r[i].length <= X) {
            cout << "Назва річки: " << g_r[i].river << "\n";
            cout << "Довжина річки: " << g_r[i].length << "\n";
            cout << "##########################\n";
        }
    }
}
void PosO_X()
{
    cout << "Введіть значення Х\n";
    cin >> X;
    for (int i = 0; i < l;i++) {
        if (g_l[i].depth <= X) {
            cout << "Назва озера: " << g_l[i].lake << "\n";
            cout << "Глибина озера: " << g_l[i].depth << "\n";
            cout << "##########################\n";
        }
    }
}
Вот собственно что у меня получилось. Если кому пригодится то код полностью рабочий.
Но это со структурой. Подскажите как решить это с помощью файлов. Буду очень благодарен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2018, 23:31
Ответы с готовыми решениями:

Структуры и файлы
Помогу решить проблему. С записью в файл все нормально, но когда считываю с файла возникает ошибка...

Структуры и файлы
Создать файл &lt;&lt;point&gt;&gt;, который содержит параметры для 12 точек в пространстве. Параметрами каждой...

Структуры и файлы
Помогите почему-то не происходит очистка файла при записи новых данных. #include &lt;iostream&gt;...

Файлы + структуры
Люди, помогите очень нужна омощб к завтрашнему дню!!! Нужно написать вот такую программу: Для...

2
441 / 329 / 171
Регистрация: 01.07.2015
Сообщений: 1,162
03.12.2018, 00:04 2
Цитата Сообщение от Blatnoy Посмотреть сообщение
Подскажите как решить это с помощью файлов
Заменить все in/out потоки на файловые. Или в чем проблема?
0
314 / 256 / 136
Регистрация: 08.04.2013
Сообщений: 1,128
03.12.2018, 07:50 3
А теперь подумайте как сократить вашу писанину вдвое, чтоб была такой же работоспособной
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2018, 07:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Структуры и файлы
Таблица содержит данные о налогоплательщиках: фамилию, имя, годовой доход. Вывести данные о налоге,...

Структуры и файлы
Всем доброго времени суток, есть такая задача, дан файл, который содержит ФИО, курс, группа и...

Структуры и файлы
Короче, такая шляпа. Препод сказал, что бы я разбил по файлам структуры. И, сделал я структуру в...

Файлы,структуры
Написать программу обработки файла, состоящего из структур. Предусмотреть вывод на экран...

Файлы и структуры
Дана информация о шести студентах. Структура имеет вид: фамилия, рост, вес, цвет волос. Вывести...

Структуры и файлы
Ребята, спасите!!! Используя структурный тип данных, создать базу данных и организовать с ней...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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