| m_munka_n_napraC++.cpp |
|
1 // https://odorpeter.hu/
2
3 #include <iostream> // cin cout
4 #include <iomanip> // setw()
5 #include <map> // "szótár" (map) adattípushoz
6 #include <vector> // vektor (vector) adattípushoz
7 #include <fstream> // szöveges fájlok kezelése
8
9 using namespace std;
10
11 void inicializalas(map<string,int> &m)
12 {
13 m["hétfő"] = 0;
14 m["kedd"] = 0;
15 m["szerda"] = 0;
16 m["csütörtök"] = 0;
17 m["péntek"] = 0;
18 }
19
20 void map_feltoltes(map<string,int> &m)
21 {
22 cout << "------------------------------------------------------\n";
23 cout << " Az 5 munka beosztása óránként \n";
24 cout << "------------------------------------------------------\n";
25
26 vector<string> temp;
27 vector<vector<string>> be;
28 string nap;
29 ifstream fbe;
30 fbe.open("m_munka_n_napra.txt");
31 int i=0;
32 while(fbe>>nap)
33 {
34 cout << setw(10) << nap << " ";
35 if(nap!="-")
36 {
37 m[nap]++;
38 }
39 // csak a szép kiírás miatt
40 i++;
41 if(i==5)
42 {
43 cout << endl;
44 i=0;
45 }
46 }
47 fbe.close();
48 }
49
50 void map_print(map<string,int> &m)
51 {
52 string key;
53 int value;
54 cout << "------------------------------------------------------\n";
55 cout << " Az egyes napokon hány munka kerül sorra az ötből \n";
56 cout << "------------------------------------------------------\n";
57
58 //az alábbi for ciklus megoldás C++17 vagy magasabb fordító esetén működik
59 //a map a key alapján rendezett: csütörtök "előbb van", mint hétfő...
60 /*
61 for(auto [key,value]:m) // it, mint iterator...
62 {
63 cout << setw(10) << key << ": " << setw(3) << value << endl;
64 }
65 */
66 //ami bitosan működik az a következő:
67 //itt elem -- > pl. m["csütörtök"] és a
68 //first a "csütürtök". azaz a kulcs, a second a kulcshoz tartozó érték (value)
69 for(auto elem:m)
70 {
71 cout << setw(10) << elem.first << ": " << setw(3) << elem.second << endl;
72 }
73 }
74
75 int main()
76 {
77 setlocale(LC_ALL, "hun");
78
79 map<string,int> napok;
80 // map<string,int> :: iterator it;
81 inicializalas(napok);
82 map_feltoltes(napok);
83 map_print(napok);
84
85 return 0;
86 }
87