﻿#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <sstream>

using namespace std;

struct egyjarmu {

    int ora, perc, mperc;
    string rendszam;

} jarmu[1000];

///függvények
int jarmuideje (egyjarmu j) {
///megadja egy jármü idejét másodpercben, 5. feladathoz
    return (j.ora*60+j.perc)*60+j.mperc;

}

string ir(int ertek) {
///7. feladathoz
stringstream szam;
if(ertek < 10) {

    szam << 0;

}
    szam << ertek;
return szam.str();
}

int main()
{
    setlocale(LC_ALL, "hun");
    ///1. feladat: Adatok beolvasása
    ifstream be;
    be.open("jarmu.txt");
    if(be.fail()) {

        cout << "A fájl nem nyitható meg";
        cin.get();
        exit(1);

    }
    int i=0;
    while(be >> jarmu[i].ora >> jarmu[i].perc >> jarmu[i].mperc >> jarmu[i].rendszam){

        i++;
    }
    int db=i;
    be.close();

    ///2. feladat: munkaidõ hossza
    cout << "2. feladat" << endl;
    cout << "A munkaidõ hossza: " << jarmu[db-1].ora-jarmu[0].ora+1 << " óra" << endl;

    ///3. feladat: ellenõrzés
    cout << "3. feladat" << endl;
    int aktora=-1;
    for(int i=0; i<db; i++) {

        if (jarmu[i].ora>aktora){
        aktora=jarmu[i].ora;
			cout << aktora << " óra: " << jarmu[i].rendszam << endl;
		}
    }

    ///4. feladat: Típusok
    cout << "4. feladat" << endl;
    int busz=0, motor=0, kamion=0;
    for(int i=0; i<db; i++) {

        if(jarmu[i].rendszam[0]=='B') busz++;
        if(jarmu[i].rendszam[0]=='K') motor++;
        if(jarmu[i].rendszam[0]=='M') kamion++;

    }
    cout << "Busz: " << busz << endl;
    cout << "Kamion: " << motor << endl;
    cout << "Motor: " << kamion << endl;
    cout << "Személygépkocsi: " << db-(busz+motor+kamion) << endl;

    ///5. feladat: Leghoszabb forgalommmentes idõszak
    cout << "5. feladat" << endl;
    int maxido=0, j=0;
    for(int i=0; i<db-1; i++) {
        if(jarmuideje(jarmu[i+1])-jarmuideje(jarmu[i])>maxido) {

            maxido=jarmuideje(jarmu[i+1])-jarmuideje(jarmu[i]);
            j=i;
        }
    }
    cout << "A leghoszabb forgalommentes idõszak: " << jarmu[j].ora << ":" << jarmu[j].perc << ":" << jarmu[j].mperc << "-" << jarmu[j+1].ora << ":" << jarmu[j+1].perc << ":" << jarmu[j+1].mperc << endl;

    ///6. feladat: Rendszám keresés
    cout << "6. feladat" << endl;
    string keresettRendszam;
    cout << "Adjon meg egy rendszámot: ";
    cin >> keresettRendszam;

     for(int i=0; i<db; i++) {
        bool van=false; ///A rendszámok közötti különbséget jelzi.
        int j=0;
        while(!van && j!=7) {

            if(keresettRendszam[j]!='*') {

                if(keresettRendszam[j]!=jarmu[i].rendszam[j]) van=true;

            }

            j++;
        }

        if(!van)  cout << jarmu[i].rendszam << endl;

     }
    ///7. feladat: Ellenõrzött jármûvek
    cout << "7. feladat" << endl;
    ofstream ki;
    ki.open("vizsgalt.txt");
    if(ki.fail()) {

        cout << "A fájl megnyítása nem sikerült";
        cin.get();
        exit(-1);

    }
    int ellenorzesiido=-300;
     int k=0;
     while(k<db){

        if(jarmuideje(jarmu[k])>=ellenorzesiido) {

            //cout << jarmu[k].rendszam << endl;
            ellenorzesiido=jarmuideje(jarmu[k])+300;
            ki << ir(jarmu[k].ora) << " " << ir(jarmu[k].perc) << " " << ir(jarmu[k].mperc) << " " << jarmu[k].rendszam << endl;
        }

        k++;
     }
    ki.close();
    cin.get();
    return 0;
}
