03.03.2021, 10:22. Показов 417. Ответов 0
Есть функция (int displaying()). Она отображает содержимое txt файла в консоли. Необходимо добавить сортировку пузырьком перед выводом строк на экран. Файл с кодом (ShoeShop.txt) прикреплен к теме.
На всякий случай сам код:
| 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
| #include <iostream>
#include <string>
#include <conio.h>
#include <windows.h>
#include <fstream>
#include <locale>
#pragma warning(disable : 4996)
using namespace std;
#define SIZELST 100
#define FNAME "ShoeStore.txt"
#define COL 80
#define ROW 20
typedef struct
{
char code[6];
char name[31];
char country[21];
char fabricName[21];
char fabricAdress[21];
char transitionTime[21];
char availability[4];
int col;
double prise;
}
SStore;
SStore stud[SIZELST]; // Массив структур
int nst = 0; // Число введенных структур
// ПРОТОТИПЫ ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ
int menu(); // Главное меню
int recording(); // Ввод исходных данных
int displaying(); // Вывод содержимого файла
int searching(); // Поиск по критерию
int deleting(); // Удаление всех данных из файла
int main(int args, char* argv[])
{
setlocale(LC_CTYPE, "RUS");
while (true)
{
switch (menu())
{
case 1: {recording(); break; }
case 2: {displaying(); break; }
case 3: {searching(); break; }
case 0: {return 0; break; }
default: {cout << "\n Выбранный пункт отсутствует!\n"; }
}
cout << "\n Нажмите на любую клавишу для продолжения";
_getch();
system("cls");
}
return 0;
}
int menu() // === МЕНЮ ===
{
system("color 70");
cout << "========================================================================================================================\n";
cout << "======================================= ИНФОРМАЦИОННАЯ СИСТЕМА - ОБУВНОЙ МАГАЗИН =======================================\n";
cout << "========================================================================================================================\n\n\n";
cout << "Выберите операцию: \n" << endl;
cout << "\n" << endl;
cout << "1 - ДОБАВИТЬ ИНФОРМАЦИЮ " << endl;
cout << "\n" << endl;
cout << "2 - ПРОСМОТР ВСЕЙ ИНФОРМАЦИИ " << endl;
cout << "\n" << endl;
cout << "3 - ПОИСК ИНФОРМАЦИИ ПО ЗАДАННОМУ КРИТЕРИЮ " << endl;
cout << "\n" << endl;
cout << "4 - УДАЛЕНИЕ ДАННЫХ ИЗ ТЕКСТОВОГО ФАЙЛА " << endl;
cout << "\n" << endl;
cout << "0 - ВЫХОД " << endl;
cout << "\n\n========================================================================================================================\n";
cout << "============================= ПУЛЬТ УПРАВЛЕНИЯ - ИСПОЛЬЗУЙТЕ КЛАВИШИ 1 - 2 - 3 - 4 - 0 =================================\n";
cout << "========================================================================================================================\n";
int i;
cin >> i;
return i;
}
int recording() // === ЗАПИСЬ ИНФОРМАЦИИ В ФАЙЛ ===
{
system("color 74");
ofstream outFil(FNAME, ofstream::app);
// ОТКРЫТИЕ ФАЙЛА & ПРОВЕРКА ФАЙЛА НА ОТКРЫТИЕ
if (!outFil)
{
cout << "Файл не открыт!" << FNAME;
_getch();
return 1;
}
system("cls");
cout << "\n=============================================== ДОБАВЛЕНИЕ ДАННЫХ В ФАЙЛ ===============================================\n\n\n";
cout << " ----------------------------------------------------------------------------------\n";
cout << " | При добавлении данных в текстовый файл соблюдайте следующие правила! |\n";
cout << " | 1) Используйте Английские слова. |\n";
cout << " | 2) Слова должны начинаться с заглавной буквы. |\n";
cout << " | ПРИМЕР | R752 - Shoes - 32 - 8640 - Italy - Puma - Wall Street - 10 Days - Yes |\n";
cout << " ----------------------------------------------------------------------------------\n\n\n";
cout << "Введите число товара: " << endl;
cin >> nst;
for (int j = 0; j < nst; j++)
{
cin.ignore();
cout << "Введите Артикул: \n";
cin >> stud[j].code;
cout << "Введите Наименование Товара: \n";
cin >> stud[j].name;
cin.ignore();
cout << "Введите Количество товара: \n";
cin >> stud[j].col;
cin.ignore();
cout << "Введите Стоимость товара: \n";
cin >> stud[j].prise;
cin.ignore();
cout << "Введите Город Производителя: \n";
cin.getline(stud[j].country, 20);
cout << "Введите Название Фабрики: \n";
cin.getline(stud[j].fabricName, 20);
cout << "Введите Адрес Фабрики: \n";
cin.getline(stud[j].fabricAdress, 20);
cout << "Введите Срок Поставки Обуви в магазин: \n";
cin.getline(stud[j].transitionTime, 20);
cout << "Введите Наличие товара: \n";
cin >> stud[j].availability;
cin.ignore();
outFil << stud[j].code << " | "
<< stud[j].name << " | "
<< stud[j].col << " | "
<< stud[j].prise << " | "
<< stud[j].country << " | "
<< stud[j].fabricName << " | "
<< stud[j].fabricAdress << " | "
<< stud[j].transitionTime << " | "
<< stud[j].availability << "\n\n";
}
_getch();
return 0;
}
int displaying() // === ВЫВОД ДАННЫХ ИЗ ФАЙЛА НА ЭКРАН ===
{
system("color 71");
setlocale(LC_CTYPE, "RUS");
string textline;
char matr[ROW][COL];
int count = -1;
// ОТКРЫТИЕ ФАЙЛА & ПРОВЕРКА ФАЙЛА НА ОТКРЫТИЕ
ifstream inFile(FNAME, ofstream::app);
if (!inFile)
{
cout << "Файл не открыт!" << FNAME;
_getch();
return 1;
}
// ВЫВОД СОДЕРЖИМОГО ФАЙЛА НА ЭКРАН & ЧТЕНИЕ ФАЙЛА В МАТРИЦУ
system("cls");
cout << "\n============================================= СОДЕРЖИМОЕ ФАЙЛА С ДАННЫМИ ===============================================\n\n\n";
cout << " ---------------------------------------------\n";
cout << " | Здесь находится вся информация о товарах |\n";
cout << " | ИНФОРМАЦИОННОЙ СИСТЕМЫ - ОБУВНОЙ МАГАЗИН. |\n";
cout << " ---------------------------------------------\n\n";
while (getline(inFile, textline))
{
count++;
strcpy(matr[count], textline.c_str());
cout << "\n\n" << matr[count];
}
_getch();
return 0;
}
int searching() // === ПОИСК ДАННЫЕ ИЗ ТЕКСТОВОГО ФАЙЛА ПО КРИТИЮ ===
{
system("color 71");
setlocale(LC_CTYPE, "RUS");
string textline;
string needle;
bool founded = false;
// ВЫВОД СОДЕРЖИМОГО ФАЙЛА НА ЭКРАН ПО КРИТЕРИЮ & ЧТЕНИЕ ФАЙЛА В МАТРИЦУ
system("cls");
ifstream inFile(FNAME);
cout << "\n======================================================== ПОИСК =========================================================\n\n\n";
cout << " ---------------------------------------------------------\n";
cout << " | Здесь осуществляется поиск товаров по критериям. |\n";
cout << " | Для этого необходимо вписать критерий и нажать Enter. |\n";
cout << " ---------------------------------------------------------\n\n\n";
cout << "Введите критерий: \n" << endl;
cin >> needle;
cout << "\n";
while (getline(inFile, textline))
{
if (textline.find(needle) != string::npos)
{
cout << textline << "\n" <<endl;
founded = true;
}
}
if (!founded)
{
cout << "Данных по критерию не найдено!" << endl;
}
_getch();
return 0;
} |
|