/ Published in: C++
Glavni program
Expand |
Embed | Plain Text
#include <cstdlib> #include <iostream> #include <ctime> #include "biblioteka_vrijeme.cc" #include "red_polje.h" using namespace std; int br; void generiranje_zapisa(tred *pac){ srand(time(0)); cout<<"Koliko zapisa pacijenata zelite generirati? (1-10000)"<<endl; cin>>br; tcekaonica zapis; for(int i=0;i<br;i++){ zapis.br_pac=i+1; zapis.xvrij_prot=(rand()%16)+1; zapis.yvrij_prot_u_ord=(rand()%16)+1; zapis.prioritet=(rand()%4)+1; EnQueueQ(zapis,pac); } } void ispis(tred *pac){ vrijeme_pocetak(); cout<<"Ispis pacijenata"<<endl; tcekaonica tekuci; if(IsEmptyQ(pac)) cout<<"Red je prazan"<<endl; while(!IsEmptyQ(pac)){ tekuci=FrontQ(pac); DeQueueQ(pac); cout<<"Broj izgeneriranih pacijenata: "<<tekuci.br_pac<<endl; cout<<"Vrijeme provedeno u cekaonici: "<<tekuci.xvrij_prot<<" min"<<endl; cout<<"Vrijeme provedeno u ordinaciji: "<<tekuci.yvrij_prot_u_ord<<" min"<<endl; cout<<"Prioritet (1-4): "<<tekuci.prioritet<<endl; cout<<"--------------------------------"<<endl; } vrijeme_kraj(); cout<<"Vrijeme izvodenja funkcije: "<<vrijeme_proteklo()/1000<<" sekundi"<<endl; } void zero(tcekaonica *polje){ for(int i=0;i<br;i++){ polje[i].br_pac=0; polje[i].xvrij_prot=0; polje[i].yvrij_prot_u_ord=0; polje[i].prioritet=0; } br=0; } void modifikacija_prioritet(tred *pac){ if(IsEmptyQ(pac)) {cout<<"Red je prazan"<<endl; return;} vrijeme_pocetak(); tcekaonica p[10000]; int brojac=0; while(!IsEmptyQ(pac)){ p[brojac]=FrontQ(pac); brojac++; DeQueueQ(pac); } //sortiranje zamjenom bool zamjena=true; for(int i=br-1;i>0&&zamjena; i--){ zamjena=false; for(int j=0;j<i;j++){ if(p[j].prioritet<p[j+1].prioritet){ tcekaonica pom=p[j]; p[j]=p[j+1]; p[j+1]=pom; zamjena=true; } if(p[j].prioritet==p[j+1].prioritet){ if(p[j].xvrij_prot<p[j+1].xvrij_prot){ tcekaonica pom=p[j]; p[j]=p[j+1]; p[j+1]=pom; zamjena=true; } } } } for(int i=0;i<br;i++) EnQueueQ(p[i],pac); cout<<"Ispis pacijenata"<<endl; tcekaonica tekuci; if(IsEmptyQ(pac)) cout<<"Red je prazan"<<endl; while(!IsEmptyQ(pac)){ tekuci=FrontQ(pac); DeQueueQ(pac); cout<<"Broj izgeneriranih pacijenata: "<<tekuci.br_pac<<endl; cout<<"Vrijeme provedeno u cekaonici: "<<tekuci.xvrij_prot<<" min"<<endl; cout<<"Vrijeme provedeno u ordinaciji: "<<tekuci.yvrij_prot_u_ord<<" min"<<endl; cout<<"Prioritet (1-4): "<<tekuci.prioritet<<endl; cout<<"--------------------------------"<<endl; } vrijeme_kraj(); cout<<"Vrijeme izvodenja funkcije: "<<vrijeme_proteklo()/1000<<" sekundi"<<endl; zero(p); } int main(){ int izbor; tred *pac; pac=new tred; InitQ(pac); do{ cout<<"1. Generiranje zapisa pacijenata"<<endl; cout<<"2. Ispis svih pacijenata"<<endl; cout<<"3. Ispis pacijenata s obzirom na prioritet"<<endl; cout<<"9. Izlaz iz programa"<<endl; cin>>izbor; switch(izbor){ case 1: generiranje_zapisa(pac); break; case 2: ispis(pac); break; case 3: modifikacija_prioritet(pac); break; case 9: break; } }while(izbor!=9); system("pause"); return 0; }
You need to login to post a comment.
