Habsburg

SP_zd1_listapolje_h

Nov 15th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.24 KB | None | 0 0
  1. #ifndef LISTA_POLJE_H
  2. #define LISTA_POLJE_H
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. bool is_Array = true;
  7.  
  8. namespace polje {
  9.     ///---------------STRUKTURE-------------///////
  10.     struct tgenre{
  11.         string genre;
  12.         string subGenre;
  13.     };
  14.    
  15.     struct tgame{
  16.         string key;
  17.         string name;
  18.         string dev;
  19.         tgenre genre;
  20.         int PEGI;
  21.     };
  22.    
  23.     struct tlista{
  24.         tgame game[100];
  25.         int pointer;
  26.         tlista() : pointer(-1) {}
  27.     };
  28.     ///------------------------------------///////
  29.    
  30.     ///-------------VARIJABLE--------------///////
  31.    
  32.     const string notDef = "Funkcija za ovaj odabir nije definirana";
  33.     const string isEmp = "Polje je prazno";
  34.    
  35.     ///------------------------------------///////
  36.    
  37.     ///---------------FUNKCIJE-------------///////
  38.     int FirstL(tlista P);
  39.     int EndL(tlista P);
  40.     int NextL(int n, tlista P);
  41.     int Previous(int n, tlista P);
  42.     int Locate(string key, tlista P);
  43.     void InsertL(tlista &element, int n, tlista P);
  44.     void DeleteL(int n, tlista P);
  45.     tgame RetreiveL(int n, tlista P);
  46.     void DeleteAllL(tlista P);
  47.     void InitL(tlista P);
  48.     ///-----------------------------------///////
  49.    
  50.    
  51.    
  52.     ///---------------TIJELA FUNKCIJA---------///////
  53.     int FirstL(tlista P) {
  54.         if (P.pointer <= 0) {
  55.             cout << isEmp;
  56.             return 0;               //0 jer nije greška niti dobar odabir
  57.         }
  58.         return EndL(P);
  59.     }
  60.    
  61.     int EndL(tlista P) {
  62.         return P.pointer;
  63.     }
  64.    
  65.     int NextL(int n, tlista P) {
  66.         if (P.pointer <= 0) {
  67.             cout << isEmp;
  68.             return 0;                   //0 jer nije greška niti dobar odabir
  69.         } else if (n < 0 || n >= P.pointer ) {
  70.             cout << notDef;
  71.             return -1;                                  //Vraca grešku
  72.         } else {
  73.             return n+1;
  74.         }
  75.     }
  76.    
  77.     int PreviousL(int n, tlista P){
  78.         if (P.pointer <= 0) {
  79.             cout << isEmp;
  80.             return 0;                   //0 jer nije greška niti dobar odabir
  81.         } else if (n <= 0 || n > P.pointer) {
  82.             cout << notDef;
  83.             return -1;                  //Vraca grješku
  84.         } else {
  85.             return n-1;
  86.         }
  87.     }
  88.    
  89.     int Locate(string key, tlista P){
  90.         if (P.pointer <= 0) {
  91.             cout << isEmp;
  92.             return 0;                   //0 jer nije greška niti dobar odabir
  93.         }
  94.        
  95.         bool found = false;
  96.        
  97.         for (int i = 0 ; i < P.pointer-1 && !found ; i++) {     //Može se i ovak riješiti "bool operator==(tlista lista1, tlista lista2);"
  98.             if (P.game[i].key == key) {
  99.                 return i;
  100.                 found = true;
  101.             }
  102.         }
  103.         if(!found) return EndL(P);              //Ako nije naðen, vraæa vrijednost pokazivaèa
  104.     }
  105.    
  106.     void InsertL(tgame element, int n, tlista P) {
  107.         if(P.pointer <= 0) {
  108.             cout << isEmp;
  109.             return;
  110.         } else if (n < 0 || n > P.pointer) {
  111.             cout << notDef;
  112.             return;
  113.         }
  114.        
  115.         for(int i = EndL(P) ; i > n; i--) {
  116.             swap(P.game[i], P.game[i-1]);
  117.         }
  118.         P.game[n] = element;
  119.         P.pointer++;
  120.     }
  121.    
  122.     void DeleteL(int n, tlista P){
  123.         if (P.pointer <= 0) {
  124.             cout << isEmp;
  125.             return;      
  126.         } else if(n >= P.pointer || n < 0) {
  127.             cout << notDef;
  128.             return;
  129.         }
  130.        
  131.         for(int i = n ; i < P.pointer-1; i++) {
  132.             P.game[i] = P.game[i+1];
  133.         }
  134.         P.pointer--;
  135.     }
  136.    
  137.     tgame RetreiveL(int n, tlista P){
  138.         if (n >= FirstL(P) && n < P.pointer) {
  139.             return P.game[n];
  140.         } else {
  141.             cout << notDef;
  142.         }
  143.     }
  144.    
  145.     void DeleteAllL(tlista P){
  146.         P.pointer = 0;
  147.     }
  148.    
  149.     void InitL(tlista P){
  150.         P.pointer = 0;
  151.     }
  152. }
  153.  
  154. ///------------------------------------///////
  155. #endif // LISTA_POLJE_H
Advertisement
Add Comment
Please, Sign In to add comment