uikolas

C++ Strukturos 2

Jan 14th, 2012
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.82 KB | None | 0 0
  1. /*
  2. Jonaitis Jonas      20          2 20 12
  3. Petraitis Petras    5       2 12 25
  4. Kazimieras Kazys    12      2 33  14
  5. */
  6.  
  7. #include <iostream>
  8. #include <fstream>
  9. #include <string>
  10.  
  11. using namespace std;
  12.  
  13. struct Protokolas{
  14.     string pav;
  15.     string vard;
  16.     int nr;
  17.     int val;
  18.     int min;
  19.     int sek;
  20. };
  21.  
  22. void Skaityti(Protokolas A[], int & n);
  23.  
  24. void Irasymas(Protokolas A[], int n);
  25.  
  26. void Automatinis(Protokolas A[], int n);
  27.  
  28. bool Raktas(Protokolas A, Protokolas B);
  29. void Rikiavimas(Protokolas A[], int n);
  30.  
  31. int main(){
  32.  
  33.     Protokolas A[100];
  34.     int n = 0;
  35.  
  36.     Skaityti(A, n);
  37.     Irasymas(A, n);
  38.  
  39.     return 0;
  40. }
  41.  
  42. void Skaityti(Protokolas A[], int & n){
  43.     ifstream FD("Protokolas.txt");
  44.     while(!FD.eof()){
  45.         FD >> A[n].pav >> A[n].vard >> A[n].nr >> A[n].val >> A[n].min >> A[n].sek;
  46.         n++;
  47.     }
  48.     FD.close();
  49. }
  50.  
  51. void Irasymas(Protokolas A[], int n){
  52.     ofstream FR("Rezultatai.txt");
  53.     FR << "Pradiniai duomenys:" << endl; cout << "Pradiniai duomenys:" << endl;
  54.     for(int i = 0; i < n; i++){
  55.         FR << A[i].vard << " " << A[i].pav << "  " << A[i].nr << "   " << A[i].val << ":" << A[i].min << ":" << A[i].sek << endl;
  56.         cout << A[i].vard << " " << A[i].pav << "  " << A[i].nr << "   " << A[i].val << ":" << A[i].min << ":" << A[i].sek << endl;
  57.     }
  58.     FR << endl; cout << endl;
  59.     FR << "Po pervarkymu:" << endl; cout << "Po pervarkymu:" << endl;
  60.     Automatinis(A, n);
  61.     Rikiavimas(A, n);
  62.     for(int i = 0; i < n; i++){
  63.         FR << A[i].vard << " " << A[i].pav << "  " << A[i].nr << "   " << A[i].val << ":" << A[i].min << ":" << A[i].sek << endl;
  64.         cout << A[i].vard << " " << A[i].pav << "  " << A[i].nr << "   " << A[i].val << ":" << A[i].min << ":" << A[i].sek << endl;
  65.     }
  66.     FR.close();
  67. }
  68.  
  69. /////////////////////////////////////////////////////////////////////////////////////////////
  70. void Automatinis(Protokolas A[], int n){
  71.     for(int i = 0; i < n; i++){
  72.         A[i].val += 1;
  73.         A[i].min += 20;
  74.         A[i].sek += 15;
  75.     }
  76. }
  77.  
  78. bool Raktas(Protokolas A, Protokolas B){
  79.     //if ((A.val > B.val) && (A.min > B.min) && (A.sek > B.sek)){
  80.     if ((A.val > B.val) || (A.min > B.min) || (A.sek > B.sek)){
  81.         return true;
  82.     } else {
  83.         return false;
  84.     }
  85. }
  86.  
  87. void Rikiavimas(Protokolas A[], int n){
  88.     int mini;
  89.     Protokolas b;
  90.     for(int i = 0; i < n - 1; i++){
  91.         mini = i;
  92.         for(int j = i + 1; j < n; j++)
  93.             if (Raktas(A[j], A[mini]))
  94.                 mini = j;
  95.                 b = A[i];
  96.                 A[i] = A[mini];
  97.                 A[mini] = b;
  98.     }
  99. }
  100. /////////////////////////////////////////////////////////////////////////////////////////////
  101.  
  102. //rikiuoja pagal pavardes
  103. bool Raktas(Protokolas A, Protokolas B){
  104.     //if ((A.val > B.val) && (A.min > B.min) && (A.sek > B.sek)){
  105.     //if ((A.val > B.val) || (A.min > B.min) || (A.sek > B.sek)){
  106.     if (
  107.         (A.val > B.val) || (A.min > B.min) || (A.sek > B.sek)
  108.         &&
  109.         (A.val == B.val) || (A.min == B.min) || (A.sek == B.sek)
  110.         && (A.pav > B.pav)
  111.         )
  112.         return true;
  113.     else
  114.         return false;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment