/ Published in: C++
glavni program, a,b,d dio
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#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; }