Return to Snippet

Revision: 53907
at December 3, 2011 06:05 by mlcorak


Initial Code
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
#include "racunanje_vremena.cpp"
struct cpacijent{
	int cekanje;
    int obrada; 
    int rbr; 
    int gotov;
}pacijent[10000] , tmp;

typedef cpacijent elementtype;

#include "red_cirkularno_polje.h"
//#include "red_pokazivaci.h"

void generiranje (int i, int n, elementtype pacijent[]){
for (i = 0 ; i < n ; i++){ 
     pacijent[i].cekanje = rand()%1000 +1;
     pacijent[i].obrada = rand()%1000 +1;
     pacijent[i].rbr = i + 1;
     pacijent[i].gotov = 0;
     cout << pacijent[i].rbr << "\t\t" << pacijent[i].cekanje << " \t\t" << pacijent[i].obrada << "\t\t\t" << endl;
     }
}
int main(){
    vrijeme_pocetak();
	srand((unsigned)time(NULL));
	int n , i , br = 0 , br2 = 0 , k = 1 , j;
	queue *red1;
	red1 = new queue;

		
InitQ(red1); 

		
        cout << "*****************************************" << endl;
		cout << "*\t\tDOBRODOSLI\t\t*" << endl;
		cout << "*   Program simulira rad hitne sluzbe   *" << endl;
		cout << "*****************************************" << endl;
	
 do{
 cout << "\nSimulaciju sa koliko pacjenata zelite R:(max 10000)? ";
 cin >> n;
 if (n>10000 || n<0) cout<<"\nUnos mora bi u rasponu izmedu 0-10000. Ponovite unos";
 } while (n>10000 || n<0);
             
 cout << "\n***************************************************************";
 cout << "\nBroj_pacjenta\tCekanje\t\tVrijeme_obrade\t\tHitnost"<< endl;

generiranje (i,n,pacijent);

cout << "\n***************************************************************\n";
cout<<"Pacjenti kako dolaze na hitnu smijestaju se  u jedan \n red "<<endl;
cout << "\n***************************************************************\n\n";            
for(i = 0 ; i < n; i++){
      if (pacijent[i].gotov == 0){ 
                              if(IsEmptyQ(red1)){ 
                                                         while(br < pacijent[i].cekanje){ 
							                                      br++;   
                                                                  br2++;
                                                                  }
                                             br=0;
                                             EnQueueQ(pacijent[i] , red1);
                                             cout << pacijent[i].rbr << ". pacijent ulazi u red " << endl;
				}
            }

				
    cout << "Proteklo " << br2 << " vremenskih jedinica." << endl; 
    
    if (k > 1) k--; 

    tmp = FrontQ(red1); 
    DeQueueQ(red1); 
    
    cout << tmp.rbr << ". pacijent ulazi u ordinaciju." << endl;

    if (IsEmptyQ(red1)) cout<<"Red je prazan."<<endl; 
    else cout << "Na celu reda  je " << FrontQ(red1).rbr <<". pacijent " << endl;
    
    
    tmp.gotov = 1; 
    
    for(j = 0 ; j < tmp.obrada ; j++){ 
					br++;
					br2++;
					if((i + k < n) && (br == pacijent[i+k].cekanje)){
							EnQueueQ(pacijent[i+k] , red1);
							pacijent[i+k].gotov=1;
							cout << "Nakon " << j+1 << ". jedinice vremena, "<<i+k+1 << ". pacijent ulazi u red." <<endl;

						br = 0; 
						k++; 
                    }
				}
				cout << tmp.rbr << ". pacijent izlazi iz ordinacije" << endl;
				cout << "Proteklo jedinica: " << br2 << endl << endl;
    }

vrijeme_kraj();
cout<<"Stvarno vrijeme trajanja programa je "<<vrijeme_proteklo() <<"milisekundi"<<endl;
    system ("pause");
	return 0;
}

Initial URL


Initial Description
glavni program, a,b,d dio

Initial Title
A,B,D dio glavnog programa

Initial Tags


Initial Language
C++