/ Published in: C++
URL: /
Glavni program za 3. zadaću iz SP
Expand |
Embed | Plain Text
#include <cstdlib> #include <iostream> #include <ctime> #include "red_pokazivaci.h" //#include "red_polje.h" using namespace std; int n; clock_t vrijeme1,vrijeme2; //blok funkcija za ra����¯�¿�½unanje vremena// double vrijeme_pocetka(){ vrijeme1=clock(); return vrijeme1; }; double vrijeme_kraja(){ vrijeme2=clock(); return vrijeme2; }; double vrijeme_proteklo(){ return vrijeme2-vrijeme1; }; void generiranje(q*pacijenti){ srand(time(0)); cout<<"Koliko pacijenata zelite prikazati u simulaciji? (1-10000)"<<endl; cin>>n; tpacijent novi; for(int i=0;i<n;i++){ novi.rbp=i+1; novi.x=((rand()%10001)/1000)+1; novi.y=((rand()%10001)/1000)+1; novi.z=(rand()%4)+1; enqueueq(novi,pacijenti); } }; void primanje_pacijenata(q *pacijenti){ vrijeme_pocetka(); //po����¯�¿�½etak mjerenja trajanja izvo����¯�¿�½enja programa// cout<<"Ispis svih pacijenata"<<endl; tpacijent tekuci; if(isemptyq(pacijenti)) cout<<"Red je prazan"<<endl; for(int i=0;i<n;i++){ tekuci=frontq(pacijenti); dequeueq(pacijenti); cout<<"Pacijent pod rednim brojem....."<<tekuci.rbp<<endl; cout<<"Vrijeme cekanja:........"<<tekuci.x<<" min"<<endl; cout<<"u ordinaciji:..."<<tekuci.y<<" min"<<endl; cout<<"*************************"<<endl; enqueueq(tekuci,pacijenti); } vrijeme_kraja(); cout<<"Ukupno vrijeme trajanja izvodjenja programa: "<<vrijeme_proteklo()/1000<<endl; }; void primanje_prioriteti(q *pacijenti){ vrijeme_pocetka(); tpacijent ord[10000]; int brojac=0; while(!isemptyq(pacijenti)){ ord[brojac]=frontq(pacijenti); brojac++; dequeueq(pacijenti);} bool zamjena=true; for(int i=n-1;i>0&&zamjena; i--){ zamjena=false; for(int j=0;j<i;j++){ if(ord[j].z>ord[j+1].z){ tpacijent pom=ord[j]; ord[j]=ord[j+1]; ord[j+1]=pom; zamjena=true; } if(ord[j].z==ord[j+1].z){ if(ord[j].x<ord[j+1].x){ tpacijent pom=ord[j]; ord[j]=ord[j+1]; ord[j+1]=pom; zamjena=true; } } } } for(int i=0;i<n;i++) enqueueq(ord[i],pacijenti); cout<<"Stanje reda"<<endl; tpacijent tekuci; if(isemptyq(pacijenti)) cout<<"red je prazan"<<endl; while(!isemptyq(pacijenti)){ tekuci=frontq(pacijenti); dequeueq(pacijenti); cout<<"pacijent br....."<<tekuci.rbp<<endl; cout<<"cekanje:........"<<tekuci.x<<" min"<<endl; cout<<"u ordinaciji:..."<<tekuci.y<<" min"<<endl; cout<<"prioritet:......"<<tekuci.z<<endl; cout<<"***********************"<<endl; } enqueueq(tekuci,pacijenti); vrijeme_kraja(); cout<<"Vrijeme trajanja u sekundama: "<<vrijeme_proteklo()/1000<<endl; } int main() { cout<<"I----------------------------------------------------------I"<<endl; cout<<"I Sveuciliste u Zagrebu I"<<endl; cout<<"I Fakultet organizacije i informatike I"<<endl; cout<<"I I"<<endl; cout<<"I Zadaca iz kolegija: I"<<endl; cout<<"I Strukture podataka I"<<endl; cout<<"I I"<<endl; cout<<"I SIMULACIJA REDA U CEKAONICI I"<<endl; cout<<"I I"<<endl; cout<<"I Izradio: Ivan Kovic I"<<endl; cout<<"I Broj indeksa: 40624 I"<<endl; cout<<"I I"<<endl; cout<<"I Varazdin, 2011. I"<<endl; cout<<"I----------------------------------------------------------I"<<endl<<endl; int izbor; q *pacijenti; pacijenti=new q; initq(pacijenti); cout<<endl; do{ cout<<"I----------------------------------------------------------I"<<endl; cout<<"I GLAVNI IZBORNIK: I"<<endl; cout<<"I----------------------------------------------------------I"<<endl; cout<<"I 1. Generiranje 'n' pacijenata I"<<endl; cout<<"I 2. Primanje pacijenata prema vremenu dolaska I"<<endl; cout<<"I 3. Primanje pacijenata prema prioritetu I"<<endl; cout<<"I 0. Izlaz iz programa I"<<endl; cout<<"I----------------------------------------------------------I"<<endl; cout<<" Unesite broj zeljene kategorije: "<<endl; cin>>izbor; switch(izbor){ case 1: generiranje(pacijenti); break; case 2: primanje_pacijenata(pacijenti);break; case 3: primanje_prioriteti(pacijenti);break; default: break; }} while(izbor!=0); system("PAUSE"); return 0; }
You need to login to post a comment.
