0
#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;
}

0 Answers0