#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>
#include <stdio.h>
#pragma warning(disable:4996)
using namespace std;
struct Bus {
string place;
string time;
int price;
};
void prіntByPlace(string place, FILE* p) {
setlocale(LC_ALL, "ukr");
cout << "Список знайдених рейсів:\n";
Bus b;
setlocale(LC_ALL, "C");
fread(&b, sizeof(Bus), 1, p);
while (!feof(p)) {
if (place == b.place) {
cout << b.place << "\n";
cout << b.time << "\n";
cout << b.price << "\n";
}
fread(&b, sizeof(Bus), 1, p);
}
}
void printByTime(string time, FILE* p) {
setlocale(LC_ALL, "ukr");
cout << "Список знайдених рейсів:\n";
Bus b;
setlocale(LC_ALL, "C");
fread(&b, sizeof(Bus), 1, p);
while (!feof(p)) {
if (time == b.time) {
cout << b.place << "\n";
cout << b.time << "\n";
cout << b.price << "\n";
}
fread(&b, sizeof(Bus), 1, p);
}
}
void prіntByPrice(double price, FILE* p) {
setlocale(LC_ALL, "ukr");
cout << "Список знайдених рейсів:\n";
Bus b;
setlocale(LC_ALL, "C");
fread(&b, sizeof(Bus), 1, p);
while (!feof(p)) {
if (price == b.price) {
cout << b.place << "\n";
cout << b.time << "\n";
cout << b.price << "\n";
}
fread(&b, sizeof(Bus), 1, p);
}
}
int main() {
FILE *f;
Bus myBus;
if (f = fopen("bus_routes.dat", "r")) {
setlocale(LC_ALL, "ukr");
system("cls");
cout << "Список рейсів:\n";
f = fopen("bus_routes.dat", "rb");
setlocale(LC_ALL, "C");
int m = fread(&myBus, sizeof(Bus), 1, f);
while (!feof(f)) {
cout << myBus.place << "\n";
cout << myBus.time << "\n";
cout << myBus.price << "\n";
int m = fread(&myBus, sizeof(Bus), 1, f);
}
fclose(f);
cout << endl << endl;
int choice, price;
string place, time;
while (true) {
setlocale(LC_ALL, "ukr");
cout << "Оберіть дію \n1 - пошук рейсів за назвою міста\n";
cout << "2 - пошук рейсів за часом відправлення\n";
cout << "3 - пошук рейсів за ціною білета\n";
cout << "4 - завершити пошук\n";
cin >> choice;
f = fopen("bus_routes.dat", "rb");
switch (choice) {
case 1:
cout << "Назва міста: ";
cin >> place;
prіntByPlace(place, f);
fclose(f);
break;
case 2:
cout << "Час відправлення: ";
cin >> time;
printByTime(time, f);
fclose(f);
break;
case 3:
cout << "Ціна білета: ";
cin >> price;
prіntByPrice(price, f);
fclose(f);
break;
case 4:
fclose(f);
return 0;
}
}
}
else {
setlocale(LC_ALL, "ukr");
cout << "Errоr: файл не знайдено";
}
return 0;
}
Asked
Active
Viewed 19 times
0
-
И заодно https://ru.stackoverflow.com/q/833980/195342 – Harry Nov 08 '23 at 18:18