/ Published in: C++
moj glavni main program
Expand |
Embed | Plain Text
#include<iostream> #include<ctime> #include "red_polje.h" using namespace std; queue *red=new queue; queue *cekaonica=new queue; atp_red elem; int suma=0; int prvi() { int n=0; cout<<"Koliko brojeva zelite izgenerirati: "; cin>>n; suma+=n; srand(time(NULL)); for (int i=0;i<n;i++) { elem.x=rand()%10000+1; elem.y=rand()%10000+1; EnQueueQ(elem,red); } cout<<"Izgenerirano je "<<n<<" slucajnih brojeva!"<<endl; return 0;} int Vrijeme(int vrijeme) { cout<<"Vrijeme potrebno za pregled svih pacijenata: "<<vrijeme<<" sec."<<endl; cout<<"Prosjecno vrijeme cekanje pacijenta u cekaonici: "<<vrijeme/suma<<" sec."<<endl; return 0;} int drugi() { cout <<"----------------------------------------------"<<endl; int stanje_cekaonica=0, cekanje=0, puo=0, vrijeme=0; bool ordinacija=false; int polje[suma]; if (IsEmptyQ(red)) { cout<<"Cekaonica je prazna!"<<endl; return 0;} InitQ(cekaonica); for (int j=1;j<=suma;j++) { elem=FrontQ(red); stanje_cekaonica++; DeQueueQ(red); elem.prioritet=short(rand()%4+1); elem.i=j; vrijeme+=elem.x; polje[j-1]=cekanje; cout<<"Pacijent br. "<<elem.i<<" ulazi u kliniku."<<endl; cout<<"Prioritet pacijenta: "; if (elem.prioritet==1) cout<<"Kriticni slucaj!"<<endl; else if (elem.prioritet==2) cout<<"rizicni slucaj!"<<endl; else if (elem.prioritet==3) cout<<"slucaj niskog rizika!"<<endl; else if (elem.prioritet==4) cout<<"nije hitan slucaj!"<<endl; if (stanje_cekaonica>1) { for (int k=1;k<stanje_cekaonica;k++) { atp_red elem2=FrontQ(cekaonica), pom; DeQueueQ(cekaonica); if (elem.i==elem2.i) continue; if (elem2.prioritet<elem.prioritet||(elem2.prioritet==elem.prioritet&&elem2.i<elem.i)) { pom=elem2; elem2=elem; elem=pom;} EnQueueQ(elem2,cekaonica);}} if (elem.i<1||elem.i>suma) continue; if (!ordinacija) { if (elem.i!=1) cout<<"Pacijent br. "<<puo<<" izlazi iz ordinacije i odlazi kuci."<<endl; if (stanje_cekaonica>1) cout<<"Pacijent br. "<<elem.i<<" ima najveci prioritet u cekaonici!"<<endl; int ceka=cekanje-polje[elem.i-1]; if (ceka<0) ceka=0; cout<<"Pacijent br. "<<elem.i<<" ulazi u ordinaciju."<<endl; cout<<"Pacijent br. "<<elem.i<<" je cekao u redu: "<<ceka<<" sec."<<endl; puo=elem.i; if (stanje_cekaonica<=1) InitQ(cekaonica); cout<<"Broj pacijenata u cekaonici: "<<--stanje_cekaonica<<endl<<endl; cekanje-=elem.y;} else EnQueueQ(elem,cekaonica); cekanje+=elem.x; if (cekanje<0) cekanje=0; if (cekanje>elem.y) ordinacija=false; else { ordinacija=true; vrijeme+=(elem.x-elem.y);}} InitQ(red); for (int j=0;j<stanje_cekaonica;) { elem=FrontQ(cekaonica); DeQueueQ(cekaonica); if (stanje_cekaonica>1) { for (int k=1;k<stanje_cekaonica;k++) { atp_red elem2=FrontQ(cekaonica), pom; DeQueueQ(cekaonica); if (elem.i==elem2.i) continue; if (elem2.prioritet<elem.prioritet||(elem2.prioritet==elem.prioritet&&elem2.i<elem.i)) { pom=elem2; elem2=elem; elem=pom;} EnQueueQ(elem2,cekaonica);}} if (elem.i<1||elem.i>suma)continue; if (stanje_cekaonica>1) { cout<<"Pacijent br. "<<puo<<" izlazi iz ordinacije i odlazi kuci"<<endl; cout<<"Pacijent br. "<<elem.i<<" ima najveci prioritet u cekaonici"<<endl;} int ceka=cekanje-polje[elem.i-1]; if (ceka<0) ceka=0; cout<<"Pacijent br. "<<elem.i<<" ulazi u ordinaciju."<<endl; cout<<"Pacijent br. "<<elem.i<<" je cekao u redu: "<<ceka<<" sec."<<endl; puo=elem.i; if (stanje_cekaonica<=1) InitQ(cekaonica); cout<<"Broj pacijenata u cekaonici: "<<--stanje_cekaonica<<endl<<endl; cekanje+=elem.x; vrijeme+=elem.y;} cout<<"Pacijent br. "<<elem.i<<" izlazi iz ordinacije i odlazi kuci"<<endl; Vrijeme(vrijeme); suma=0; cout <<"----------------------------------------------"<<endl; return 0;} int main (){ int izbor=0; bool ponovi=true; InitQ(red); do { cout <<endl<<"----------IZBORNIK----------"<<endl; cout <<"1. Generiranje N parova slucajnih brojeva"<<endl; cout <<"2. Simulacija tijeka pacijenata u cekaonici i ordinaciji"<<endl; cout <<"9. Izlaz iz programa"<<endl; cout <<"Unesite broj zeljene opcije: "; cin >>izbor; switch (izbor){ case 1: prvi();break; case 2: drugi();break; case 9: ponovi=false;break; default: cout <<"Unijeli ste krivi broj!"<<endl;} }while(ponovi); system("pause"); return 0; }
You need to login to post a comment.
