1  #include <iostream>
  2  #include <fstream>
  3  #include <string>
  4  #include <windows.h>
  5  
  6  using namespace std;
  7  
  8  int N;
  9  
 10  struct adatok{
 11      int h; // óra
 12      int p; //perc
 13      int m; //másodperc
 14      string r; //rendszám
 15  } a[1000];
 16  
 17  void kiir(int x)
 18  {
 19      cout << x << ". feladat" << endl;
 20  }
 21  
 22  void F1()
 23  {
 24      ifstream be;
 25      be.open("jarmu.txt");
 26      int i=0;
 27      while(!be.eof())
 28      {
 29          be >> a[i].h;
 30          be >> a[i].p;
 31          be >> a[i].m;
 32          be >> a[i].r;
 33          i++;
 34      }
 35      N=i;
 36  
 37      be.close();
 38  }
 39  
 40  void F2()
 41  {
 42      int x = a[N-1].h+1; //utolsó elem órája + 1, mert egész óráig dolgoztak
 43      int y = a[0].h;  //első elem órája, mert egész órakor kezdték
 44      cout << x-y << " orat dolgoztak legalabb." << endl;
 45      //8kor kezdték és 14ig tartott, ha feltételezzük, hogy nem dolgoztak munkaidőn kívül
 46  }
 47  
 48  void F3()
 49  {
 50      cout << a[0].h << " ora: " << a[0].r << endl;
 51      for(int i=0; i<N-1 ; i++)
 52      {
 53          if(a[i].h!=a[i+1].h)
 54          {
 55              cout << a[i+1].h << " ora: " << a[i+1].r << endl;
 56          }
 57      }
 58  }
 59  
 60  void F4()
 61  {
 62      // substr(x,y) - kivesz egy részletet a stringből: az x karaktertől kezdve, y darabot
 63  
 64      int b=0, k=0, m=0, sz=0;
 65      for(int i=0; i<N-1 ; i++)
 66      {
 67          if(a[i].r.substr(0,1)=="B") b++;
 68          else if(a[i].r.substr(0,1)=="K") k++;
 69               else if(a[i].r.substr(0,1)=="M") m++;
 70                    else sz++;
 71      }
 72      cout << b <<" busz, " << k <<" kamion, " << m <<" motor es " << sz <<" szemelygepkocsi haladt el az elenorzo pont elott." << endl;
 73  }
 74  
 75  void F5()
 76  {
 77      int max=0, index=0;
 78      for(int i=0; i<N-1 ; i++)
 79      {
 80          if((a[i+1].h*3600+a[i+1].p*60+a[i+1].m)-(a[i].h*3600+a[i].p*60+a[i].m)>max)
 81              {
 82                  index=i;
 83                  max=(a[i+1].h*3600+a[i+1].p*60+a[i+1].m)-(a[i].h*3600+a[i].p*60+a[i].m);
 84              }
 85      }
 86      cout << a[index].h << ":" << a[index].p << ":" << a[index].m << " - " << a[index+1].h << ":" << a[index+1].p << ":" << a[index+1].m << endl;
 87  }
 88  
 89  void F6()
 90   {
 91       string x;
 92       cout << "Kerem a keresett rendszamot, ismeretlen betuit '*' jellel helyettesitve: ";
 93       getline(cin,x);
 94       int azonos;
 95       int db=0;
 96  
 97       for(int i=0; i<N; i++)
 98       {
 99           azonos=0;
100           for(int j=0;j<x.length();j++)
101           {
102                if(a[i].r[j]==x[j]||x[j]=='*')
103                {
104                    azonos++;
105                }
106           }
107           if(azonos==x.length())
108           {
109               cout << a[i].r << endl;
110               db++;
111           }
112       }
113       if(db==0) cout << "Nincs találat!" << endl;
114   }
115  
116  void F7()
117  {
118      ofstream ki;
119      ki.open("vizsgalt.txt");
120      int j=0;
121      if(a[0].h<10) ki << "0" << a[0].h << " ";
122      else ki << a[0].h << " ";
123      if(a[0].p<10) ki << "0" << a[0].p << " ";
124      else ki << a[0].p << " ";
125      if(a[0].m<10) ki << "0" << a[0].m << " ";
126      else ki << a[0].m << " ";
127      ki << a[0].r << endl;
128      for(int i=1; i<N; i++)
129      {
130          if( (a[i].h*3600+a[i].p*60+a[i].m) - (a[j].h*3600+a[j].p*60+a[j].m) >= 300 )
131  //azért >=300, mert abban a pillanatban, amint lejár a 300 másodperc(=5 perc), rögtön képesek egy új jármüvet ellenőrizni
132          {
133               if(a[i].h<10) ki << "0" << a[i].h << " ";
134               else ki << a[i].h << " ";
135               if(a[i].p<10) ki << "0" << a[i].p << " ";
136               else ki << a[i].p << " ";
137               if(a[i].m<10) ki << "0" << a[i].m << " ";
138               else ki << a[i].m << " ";
139               ki << a[i].r << endl;
140               j=i;
141           }
142      }
143      ki.close();
144  }
145  
146  int main()
147  {
148      setlocale(LC_ALL,"hun");
149      F1();
150      kiir(2);
151      F2();
152      kiir(3);
153      F3();
154      kiir(4);
155      F4();
156      kiir(5);
157      F5();
158      kiir(6);
159      F6();
160      F7();
161      return 0;
162  }