Advertisement
Guest User

Untitled

a guest
Sep 21st, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.97 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <sstream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. // STRUCTS
  9. struct Slider
  10. {
  11.     string  name;       // Vardas
  12.     int     startTime;  // Starto laikas sekundemis
  13.     int     finishTime; // Finisho laikas sekundemis
  14.     int     doTime;     // Per kiek laiko iveike
  15. };
  16.  
  17. // FUNCTIONS DECLARATIONS
  18. int GetSliderIndex(string name, Slider sliders[], int maxlenght);
  19. void SaveResults(string filename, Slider sliders[], int maxlenght);
  20. void SortArrayByTime(Slider sliders[], int maxlenght);
  21.  
  22. // MAIN
  23. int main()
  24. {
  25.     ifstream in("U2.txt");
  26.     if(in.is_open() && in.good())
  27.     {
  28.         int max_sliders = 0,
  29.             finished_sliders = 0;
  30.  
  31.         in >> max_sliders;
  32.  
  33.  
  34.  
  35.         if(1 <= max_sliders <= 30)
  36.         {
  37.             cout << max_sliders << endl;
  38.             Slider
  39.                 sliders[max_sliders];
  40.             string
  41.                 buffer;
  42.  
  43.             int h, m, s;
  44.             for(int l = 0; l < max_sliders; l++)
  45.             {
  46.                 getline(in, buffer);
  47.                 if(!buffer.empty())
  48.                 {
  49.                     // Vardo isgavimas nukerpant gala
  50.                     sliders[l].name = buffer.substr(0, 20);
  51.  
  52.                     // Laiko isgavimas i kintamuosius su string stream
  53.                     istringstream time_buffer(buffer.substr(20, buffer.length()));
  54.                     time_buffer >> h >> m >> s;
  55.                     sliders[l].startTime = h*60*60 + m*60 + s;
  56.  
  57.                     cout << "Vardas: " << sliders[l].name << endl;
  58.                     cout << "Start time " << sliders[l].startTime << endl;
  59.                 }
  60.                 else l--;
  61.             }
  62.  
  63.             in >> finished_sliders;
  64.             if(1 <= finished_sliders <= 30)
  65.             {
  66.                 for(int l = 0; l < finished_sliders; l++)
  67.                 {
  68.                     getline(in, buffer);
  69.                     if(!buffer.empty())
  70.                     {
  71.                         string name = buffer.substr(0, 20);
  72.                         int index = GetSliderIndex(name, sliders, max_sliders);
  73.  
  74.                         if(index != -1)
  75.                         {
  76.                             istringstream time_buffer(buffer.substr(20, buffer.length()));
  77.                             time_buffer >> h >> m >> s;
  78.                             sliders[index].finishTime = h*60*60 + m*60 + s;
  79.                             sliders[index].doTime = sliders[index].finishTime - sliders[index].startTime;
  80.  
  81.                             //cout << sliders[index].name << " per " << sliders[index].doTime << endl;
  82.                         }
  83.                     }
  84.                     else l--;
  85.                 }
  86.                 SortArrayByTime(sliders, finished_sliders);
  87.                 SaveResults("U2Rez.txt", sliders, finished_sliders);
  88.             }
  89.         }
  90.     }
  91.     else cout << "Klaida atidarant faila U2.txt" << endl;
  92.     return 0;
  93. }
  94.  
  95.  
  96. // FUNCTIONS
  97. int GetSliderIndex(string name, Slider sliders[], int maxlenght)
  98. {
  99.     for(int i = 0; i < maxlenght; i++)
  100.     {
  101.         if(sliders[i].name == name) return i;
  102.     }
  103.     return -1;
  104. }
  105. void SaveResults(string filename, Slider sliders[], int maxlenght)
  106. {
  107.     for(int s = 0; s < maxlenght; s++)
  108.     {
  109.         cout << sliders[s].name << " per " << sliders[s].doTime << endl;
  110.     }
  111.  
  112.     /*ofstream out(filename.c_str());
  113.     if(out.is_open() && out.good())
  114.     {
  115.         for(int s = 0; s < maxlenght; s++)
  116.         {
  117.  
  118.         }
  119.     }
  120.     else cout << "Klaida atidarant faila " << filename << endl;
  121.     out.close();*/
  122. }
  123. void SortArrayByTime(Slider sliders[], int maxlenght)
  124. {
  125.     for(int a = 0; a < maxlenght; a++)
  126.     {
  127.         for(int b = a; b < maxlenght; b++)
  128.         {
  129.             if(sliders[a].doTime > sliders[b].doTime)
  130.             {
  131.                 Slider cpy;
  132.                 cpy = sliders[b];
  133.  
  134.                 sliders[b] = sliders[a];
  135.                 sliders[a] = cpy;
  136.             }
  137.         }
  138.     }
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement