/ Published in: C++
Glavni kod programa iz strukturi podataka zadatak 3, simulacija ljecnicke ordinacija, napravljen pomocu dvije implementacije
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <cstdlib> #include <iostream> #include <ctime> #include "biblioteka_vrijeme.cc" #include "red_pokazivaci.h" //#include "red_polje.h" using namespace std; int n; void generiranje(r *pacijenti){ srand(time(0)); cout<<"Koliko parova zelite generirati? (1-10000)"<<endl; cin>>n; tpopis novi; for(int i=0;i<n;i++){ novi.rb=i+1; novi.x=((rand()%10001)/1000)+1; novi.y=((rand()%10001)/1000)+1; novi.p=(rand()%4)+1; enqueueq(novi,pacijenti); } }; void ispis(r *pacijenti){ vrijeme_pocetak(); cout<<"Ispis svih pacijenata"<<endl; tpopis tekuci; if(isemptyq(pacijenti)) cout<<"red je prazan"<<endl; while(!isemptyq(pacijenti)){ tekuci=frontq(pacijenti); dequeueq(pacijenti); cout<<"pacijent br....."<<tekuci.rb<<endl; cout<<"cekanje:........"<<tekuci.x<<" min"<<endl; cout<<"u ordinaciji:..."<<tekuci.y<<" min"<<endl; cout<<"prioritet:......"<<tekuci.p<<endl; cout<<"-----------------------------------"<<endl; } vrijeme_kraj(); cout<<"Vrijeme izvodenja funkcije u sekundama: "<<vrijeme_proteklo()/1000<<endl; }; void nula(tpopis *polje){ for(int i=0;i<n;i++){ polje[i].rb=0; polje[i].x=0; polje[i].y=0; polje[i].p=0; } n=0; } void modifikacija(r *pacijenti){ vrijeme_pocetak(); tpopis ordinacija[10000]; int brojac=0; while(!isemptyq(pacijenti)){ ordinacija[brojac]=frontq(pacijenti); brojac++; dequeueq(pacijenti);} //sortiranje bubble sort bool zamjena=true; for(int i=n-1;i>0&&zamjena; i--){ zamjena=false; for(int j=0;j<i;j++){ if(ordinacija[j].p<ordinacija[j+1].p){ tpopis pom=ordinacija[j]; ordinacija[j]=ordinacija[j+1]; ordinacija[j+1]=pom; zamjena=true; } if(ordinacija[j].p==ordinacija[j+1].p){ if(ordinacija[j].x<ordinacija[j+1].x){ tpopis pom=ordinacija[j]; ordinacija[j]=ordinacija[j+1]; ordinacija[j+1]=pom; zamjena=true; } } } } for(int i=0;i<n;i++) enqueueq(ordinacija[i],pacijenti); cout<<"Ispis svih pacijenata"<<endl; tpopis tekuci; if(isemptyq(pacijenti)) cout<<"red je prazan"<<endl; while(!isemptyq(pacijenti)){ tekuci=frontq(pacijenti); dequeueq(pacijenti); cout<<"pacijent br....."<<tekuci.rb<<endl; cout<<"cekanje:........"<<tekuci.x<<" min"<<endl; cout<<"u ordinaciji:..."<<tekuci.y<<" min"<<endl; cout<<"prioritet:......"<<tekuci.p<<endl; cout<<"-----------------------------------"<<endl; } vrijeme_kraj(); cout<<"Vrijeme izvodenja funkcije u sekundama: "<<vrijeme_proteklo()/1000<<endl; nula(ordinacija); } int main(int argc, char *argv[]) { int izbor; r *pacijenti; pacijenti=new r; initq(pacijenti); do{ cout<<"Odaberite: "<<endl; cout<<"1 za generiranje pacijenata"<<endl; cout<<"2 za simulaciju"<<endl; cout<<"3 za modifikaciju"<<endl; cout<<"9 za kraj programa"<<endl; cin>>izbor; switch(izbor){ case 1: generiranje(pacijenti); break; case 2: ispis(pacijenti);break; case 3: modifikacija(pacijenti);break; case 9: return 0; default: break; }} while(1); system("PAUSE"); return EXIT_SUCCESS; }