|
cegesauto201905_C++.cpp
|
|
1 #include <iostream> // cout cin parancsok
2 #include <fstream> // fájlkezelés
3 #include <vector> // vector adattípushoz
4 #include <string> // to_string (integer--->string konverzió)
5 #include <iomanip> // setfill setw függvények
6
7 using namespace std;
8
9 struct gepjarmu
10 {
11 int nap;
12 string ido;
13 string rsz;
14 int id;
15 int km;
16 int ki_be;
17 };
18
19 void F1(vector<gepjarmu> &forg)
20 {
21 ifstream fbe;
22 fbe.open("autok.txt");
23 gepjarmu temp;
24 while(fbe>>temp.nap&&fbe>>temp.ido&&fbe>>temp.rsz&&fbe>>temp.id&&fbe>>temp.km&&fbe>>temp.ki_be)
25 {
26 forg.push_back(temp);
27 }
28 fbe.close();
29 /*
30 for(auto temp:forg)
31 {
32 cout << temp.nap << " " << temp.ido << " " << temp.rsz << " " << temp.id << " " << temp.km << " " << temp.ki_be << endl;
33 }
34 */
35 }
36
37 void F2(vector<gepjarmu> forg)
38 {
39 cout << "2. feladat" << endl;
40 int i=forg.size()-1; // utolsó vectorbeli elem indexe
41 while(forg[i].ki_be!=0)
42 {
43 i--;
44 }
45 cout << forg[i].nap << ". nap rendszám: " << forg[i].rsz << endl;
46 }
47
48 void F3(vector<gepjarmu> forg)
49 {
50 cout << "3. feladat" << endl;
51 int nap;
52 cout << "Nap: ";
53 cin >> nap;
54
55 cout << "Forgalom a(z) " << nap << ". napon:" << endl;
56
57 for(auto elem:forg)
58 {
59 if(elem.nap==nap)
60 {
61 cout << elem.ido << " " << elem.rsz << " " << elem.id << " ";
62 if(elem.ki_be==0) cout << "ki";
63 else cout << "be";
64 cout << endl;
65 }
66 }
67 }
68
69 void F4(vector<gepjarmu> forg)
70 {
71 cout << "4. feladat" << endl;
72 int ki_db=0;
73 int be_db=0;
74 for(auto elem:forg)
75 {
76 if(elem.ki_be==0) ki_db++;
77 else be_db++;
78 }
79 printf("A hónap végén %d autót nem hoztak vissza.\n",(ki_db-be_db));
80 }
81
82 void F5(vector<gepjarmu> forg)
83 {
84 cout << "5. feladat" << endl;
85 int megtettkm[10];
86 string rendszam;
87 bool elso=true;
88 int km;
89 for(int i=0;i<10;i++)
90 {
91 rendszam="CEG30"+to_string(i); // 1 ---> "1"
92 for(auto elem:forg)
93 {
94 if(elem.rsz==rendszam)
95 {
96 if(elso)
97 {
98 km=elem.km;
99 elso=false;
100 }
101 else
102 {
103 megtettkm[i]=elem.km-km;
104 }
105 }
106 }
107 elso=true;
108 }
109 for(int i=0;i<10;i++)
110 {
111 cout << "CEG30"+to_string(i) << " " << megtettkm[i] << " km" << endl;
112 }
113 }
114
115 void F6(vector<gepjarmu> forg)
116 {
117 cout << "6. feladat" << endl;
118 int max_km=0;
119 bool elso=true;
120 int km, max_id;
121 for(int i=500;i<600;i++)
122 {
123 for(auto elem:forg)
124 {
125 if(elem.id==i)
126 {
127 if(elso==true)
128 {
129 km=elem.km;
130 elso=false;
131 }
132 else
133 {
134
135 if(elem.km-km>max_km)
136 {
137 max_km=elem.km-km;
138 max_id=i;
139 }
140 elso=true;
141 }
142 }
143 }
144 elso=true;
145 }
146 printf("Leghosszabb út: %d km, személy: %d\n",max_km,max_id);
147 }
148
149 void F7(vector<gepjarmu> forg)
150 {
151 cout << "7. feladat" << endl;
152 string rsz;
153 cout << "Rendszám: ";
154 cin >> rsz;
155 ofstream fki;
156 fki.open(rsz+"_menetlevel.txt");
157 for(auto elem:forg)
158 {
159 if(elem.rsz==rsz)
160 {
161 fki << elem.id << "\t" << setfill('0') << setw(2) << elem.nap << "\t" << elem.ido << "\t" << setfill('0') << setw(5) << elem.km << " km\t";
162 if(elem.ki_be==1) fki << endl;
163 }
164 }
165 fki.close();
166 cout << "Menetlevél kész." << endl;
167
168 }
169
170 int main()
171 {
172 setlocale(LC_ALL,"");
173 vector<gepjarmu> forgalom;
174 forgalom.reserve(500);
175 F1(forgalom);
176 F2(forgalom);
177 F3(forgalom);
178 F4(forgalom);
179 F5(forgalom);
180 F6(forgalom);
181 F7(forgalom);
182 return 0;
183 }