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 }