Return to Snippet

Revision: 53830
at December 2, 2011 23:41 by davor


Initial Code
#include <iostream>
#include <cstdlib>
#include <ctime>
#include "biblioteka_vrijeme.cpp"

using namespace std;

struct tpodaci{
    int broj_pacijenta; 
	int vrijeme_cekanja;
    int vrijeme_pregleda;
    int hitnost_intervencije; 
    int pregledan;
}polje[10000] , tmp;

typedef tpodaci elementtype;

//#include "red_polje.h"
#include "red_pokazivac.h"

int main(){
    vrijeme_pocetak(); 
	srand((unsigned)time(NULL));
	int n;
    int i;
    int br = 0;
    int br2 = 0;
    int k = 1;
    int j;
	
	red *red1 , *red2, *red3, *red4; 
	red1 = new red;
	red2 = new red;
	red3 = new red;
	red4 = new red;
		
InitQ(red1); 
InitQ(red2);
InitQ(red3);
InitQ(red4);
		
cout << " Simulacija rada lijecnicke ordinacije " << endl;
	
cout << "\nUnesite broj pacijenata za posjetu lijecniku: ";
cin >> n;
         
cout << "\nBr. pacijenta\tVrijeme cekanja\tVrijeme pregleda\tHitnost intervencije"<< endl;

int a;
for (a = 0 ; a < n ; a++){ 
     polje[a].vrijeme_cekanja = rand()%1000 +1; 
     polje[a].vrijeme_pregleda = rand()%1000 +1;
     polje[a].hitnost_intervencije = rand()%4 + 1; 
     polje[a].broj_pacijenta = a + 1; 
     polje[a].pregledan = 0; 
     cout << polje[a].broj_pacijenta << "\t\t" << polje[a].vrijeme_cekanja << " \t\t" << polje[a].vrijeme_pregleda << "\t\t\t" << polje[a].hitnost_intervencije << endl;
     }

cout<<" Slanje pacijenata u red prema hitnosti intervencije. "; 
cout<<"Red 1 - Kriticni slucaj \nRed 2 - Rizicni slucaj\nRed 3 - Slucaj niskog rizika\nRed 4 - Nije hitan slucaj";
       
for(i = 0 ; i < n; i++){

  if (polje[i].hitnost_intervencije == 1 && polje[i].pregledan == 0){ 
    if(IsEmptyQ(red1)){ 
      while(br < polje[i].vrijeme_cekanja){ 
      br++;   
      br2++;   
      }
    br=0;
    EnQueueQ(polje[i] , red1); 
    cout << polje[i].broj_pacijenta << ". pacijent ulazi u red 1." << endl;
		}
   }
   if (polje[i].hitnost_intervencije == 2 && polje[i].pregledan == 0){ 
    if(IsEmptyQ(red2)){ 
      while(br < polje[i].vrijeme_cekanja){ 
      br++;   
      br2++;
      }
    br=0;
    EnQueueQ(polje[i] , red2); 
    cout << polje[i].broj_pacijenta << ". pacijent ulazi u red 2." << endl;
		}
   }
   if (polje[i].hitnost_intervencije == 3 && polje[i].pregledan == 0){ 
    if(IsEmptyQ(red3)){ 
      while(br < polje[i].vrijeme_cekanja){ 
      br++;  
      br2++;
      }
    br=0;
    EnQueueQ(polje[i] , red3); 
    cout << polje[i].broj_pacijenta << ". pacijent ulazi u red 3." << endl;
		}
   }
   if (polje[i].hitnost_intervencije == 4 && polje[i].pregledan == 0){ 
    if(IsEmptyQ(red4)){ 
      while(br < polje[i].vrijeme_cekanja){ 
      br++;    
      br2++;
      }
    br=0;
    EnQueueQ(polje[i] , red4);
    cout << polje[i].broj_pacijenta << ". pacijent ulazi u red 4." << endl;
		}
  }
				
    cout << "Proteklo je " << br2 << " vremena." << endl; 
    
if (k > 1) k--; 
    if (IsEmptyQ(red1)){ 
       if (IsEmptyQ(red2)){ 
          if (IsEmptyQ(red3)){ 
             tmp = FrontQ(red4);
             DeQueueQ(red4);
               }
          else{
          tmp = FrontQ(red3);
          DeQueueQ(red3); 
            }
          }
       else{
       tmp = FrontQ(red2); 
       DeQueueQ(red2); 
         }
       }
    else{
    tmp = FrontQ(red1); 
    DeQueueQ(red1); 
      }
    
    cout << tmp.broj_pacijenta << ". pacijent ulazi u ordinaciju." << endl;

    if (IsEmptyQ(red1)) cout<<"Red 1 je prazan."<<endl;  
    else cout << "Na celu reda 1 je " << FrontQ(red1).broj_pacijenta <<". pacijent " << endl; 
    
    if (IsEmptyQ(red2)) cout << "Red 2 je prazan" << endl;
    else cout << "Na celu reda 2 je " << FrontQ(red2).broj_pacijenta <<". pacijent "<< endl;

    if (IsEmptyQ(red3)) cout << "Red 3 je prazan" << endl;
    else cout << "Na celu reda 3 je " << FrontQ(red3).broj_pacijenta <<". pacijent "<< endl;  
    
    if (IsEmptyQ(red4)) cout << "Red 4 je prazan" << endl;
    else cout << "Na celu reda 4 je " << FrontQ(red4).broj_pacijenta <<". pacijent "<< endl;
    
    tmp.pregledan = 1; 
    
    for(j=0; j<tmp.vrijeme_pregleda; j++){ 
    br++;
    br2++;
    
    if((i + k < n) && (br == polje[i+k].vrijeme_cekanja)){ 
          if (polje[i+k].hitnost_intervencije == 1){ 
          EnQueueQ(polje[i+k] , red1);
          polje[i+k].pregledan=1;
          cout << "Nakon " << j+1 << ". vremena, "<<i+k+1 << ". pacijent ulazi u red 1." <<endl;
				}
          if (polje[i+k].hitnost_intervencije == 2){ 
          EnQueueQ(polje[i+k] , red2);
          polje[i+k].pregledan=1;
          cout << "Nakon " << j+1 << ". vremena, "<< i+k+1<< ". pacijent ulazi u red 2." <<endl;
				}
          if (polje[i+k].hitnost_intervencije == 3){ 
          EnQueueQ(polje[i+k] , red3);
          polje[i+k].pregledan=1;
          cout << "Nakon " << j+1 << ". vremena, "<< i+k+1<< ". pacijent ulazi u red 3." <<endl;
				}
          if (polje[i+k].hitnost_intervencije == 4){
          EnQueueQ(polje[i+k] , red4);
          polje[i+k].pregledan=1;
          cout << "Nakon " << j+1 << ". vremena, "<< i+k+1<< ". pacijent ulazi u red 4." <<endl;
				}
          br = 0; 
          k++; 
            }
          }
          cout << tmp.broj_pacijenta << ". pacijent izlazi iz ordinacije" << endl;
          cout << "Proteklo vremena: " << br2 << endl << endl;
    }

while(!IsEmptyQ(red4)){
    cout <<FrontQ(red4).broj_pacijenta<< ". pacijent ulazi u ordinaciju." << endl;
    cout<<"Red 1 je prazan."<<endl;
    cout<<"Red 2 je prazan."<<endl;
    cout<<"Red 3 je prazan"<<endl;
    tmp = FrontQ(red4);
    DeQueueQ(red4);
    if (IsEmptyQ(red4)) cout << "Red 4 je prazan" << endl;
    else cout << "Na celu reda 4 je " << FrontQ(red4).broj_pacijenta << endl;
    cout <<tmp.broj_pacijenta<< ". pacijent izlazi iz ordinacije" << endl;
    cout << "Proteklo vremena: " << br2+tmp.vrijeme_pregleda << endl << endl;
};
vrijeme_kraj(); 
cout<<"Stvarno vrijeme trajanja programa je: "<<vrijeme_proteklo()<<endl;
    system ("pause");
	return 0;
}

Initial URL


Initial Description
zad c: modifikacija

Initial Title
zad c: modifikacija

Initial Tags


Initial Language
C++