Advertisement
eimkasp

Struct rikiavimas

Jan 14th, 2012
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string.h>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. //void nuskaitymas(int &i);
  9. //void rikiavimas (int &i);
  10. //int bRik[500];
  11.  
  12. struct finisas {
  13.         int startNr;
  14.         int LaikasS[3];
  15.         int LaikasF[3];
  16.         string vardas;
  17.         string pavarde;
  18.  
  19. } uzdavinys [520], temp;
  20.  
  21. void Rikiuoti(int i);
  22. bool Raktas(finisas a, finisas b);
  23. void spausdinti(int i);
  24.  
  25. int main() {
  26.     int nrF;
  27.     int L[3];
  28.     int i = 0;
  29.     ifstream fds("Startas.txt");
  30.     ifstream fdf("Finisas.txt");
  31.     while(!fds.eof()) {
  32.         fds >> uzdavinys[i].startNr >> uzdavinys[i].vardas >> uzdavinys[i].pavarde >> uzdavinys[i].LaikasS[0] >> uzdavinys[i].LaikasS[1] >> uzdavinys[i].LaikasS[2];
  33.         i++;
  34.     }
  35.     i--;
  36.     i--;
  37.     for (int n = 0; n <= i; n++) {
  38.         fdf >> nrF >> L[0] >> L[1] >> L[2];
  39.         for (int j = 0; j <= i; j++) {
  40.             if(nrF == uzdavinys[j].startNr) {
  41.                 uzdavinys[j].LaikasF[0] = L[0];
  42.                 uzdavinys[j].LaikasF[1] = L[1];
  43.                 uzdavinys[j].LaikasF[2] = L[2];
  44.                 break;
  45.             }
  46.         }
  47.     }
  48.    
  49.     Rikiuoti(i);
  50.     spausdinti(i);
  51.     cin >> i;
  52. }
  53.  
  54. void Rikiuoti(int i) {
  55.     for(int j = 0; j < i; j++) {
  56.         for (int n = 0; n < i; n++) {
  57.             if (Raktas(uzdavinys[j],uzdavinys[n])) {
  58.                 temp = uzdavinys[n] ;
  59.                 uzdavinys[n] = uzdavinys[j];
  60.                 uzdavinys[j] = temp;
  61.             }
  62.         }
  63.     }
  64.     for (int j = 0; j <= i; j++) {
  65.         //cout << uzdavinys[j].startNr << endl;
  66.     }
  67. }
  68.  
  69. bool Raktas(finisas a, finisas b) {
  70.     if (((a.LaikasS[0]*3600 + a.LaikasS[1]*60 + a.LaikasS[2]) - (a.LaikasF[0]*3600 + a.LaikasF[1]*60 + a.LaikasF[2])) < ((b.LaikasS[0]*3600 + b.LaikasS[1]*60 + b.LaikasS[2]) - (b.LaikasF[0]*3600 + b.LaikasF[1]*60 + b.LaikasF[2])) ||
  71.         ((a.LaikasS[0]*3600 + a.LaikasS[1]*60 + a.LaikasS[2]) - (a.LaikasF[0]*3600 + a.LaikasF[1]*60 + a.LaikasF[2])) == ((b.LaikasS[0]*3600 + b.LaikasS[1]*60 + b.LaikasS[2]) - (b.LaikasF[0]*3600 + b.LaikasF[1]*60 + b.LaikasF[2])) && (a.vardas> b.vardas)
  72.         )
  73.         {
  74.             return true;
  75.     }}
  76.  
  77.  
  78. void spausdinti(int i) {
  79.     for (int n = 0; n <= i; n++) {
  80.         cout << uzdavinys[n].startNr << " " << uzdavinys[n].vardas << " " << (uzdavinys[n].LaikasF[0]*3600 + uzdavinys[n].LaikasF[1]*60 + uzdavinys[n].LaikasF[2]) - (uzdavinys[n].LaikasS[0]*3600 + uzdavinys[n].LaikasS[1]*60 + uzdavinys[n].LaikasS[2]) << " " << uzdavinys[n].LaikasS[0] << endl;
  81.         //cout << uzdavinys[n].LaikasF[0] << " " << uzdavinys[n].LaikasF[1] <<  " " << uzdavinys[n].LaikasF[2] << endl;
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement