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  }