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